From dc027fb324fcf471212647c5bcbd3f2ea9ebc3ec Mon Sep 17 00:00:00 2001 From: zhaopeng053 Date: Thu, 24 Dec 2020 15:30:13 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=96=B0=E5=A2=9EgetMediaData=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wxwork_finance_sdk.c | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/wxwork_finance_sdk.c b/wxwork_finance_sdk.c index 3e72b53..c4a4464 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -208,6 +208,41 @@ PHP_METHOD(WxworkFinanceSdk, downloadMedia) RETURN_TRUE; } +PHP_METHOD(WxworkFinanceSdk, getMediaData) +{ + zend_string *sdk_filedid, *index_buf; + + if (zend_parse_parameters(ZEND_NUM_ARGS(), "SS", &sdk_filedid, &index_buf) == FAILURE) { + return; + } + + zval *this = getThis(); + zend_class_entry *ce = Z_OBJCE_P(this); + + zval *proxy_host_zval = zend_read_property(ce, this, "_proxy_host", sizeof("_proxy_host") - 1, 0, NULL); + zval *proxy_password_zval = zend_read_property(ce, this, "_proxy_password", sizeof("_proxy_password") - 1, 0, NULL); + zval *timeout_zval = zend_read_property(ce, this, "_timeout", sizeof("_timeout") - 1, 0, NULL); + + MediaData_t *media_data = NewMediaData(); + if (NULL == media_data) { + zend_error(E_ERROR, "There is not enough memory!"); + return; + } + + int ret = GetMediaData(sdk, ZSTR_VAL(index_buf), ZSTR_VAL(sdk_filedid), Z_STRVAL_P(proxy_host_zval), Z_STRVAL_P(proxy_password_zval), zval_get_long(timeout_zval), media_data); + if (0 != ret) { + zend_throw_exception(wxwork_finance_sdk_exception_ce, "GetMediaData error", ret); + return; + } + + array_init(return_value); + add_assoc_string(return_value, "data", GetData(media_data)); + add_assoc_string(return_value, "nextIndex", GetOutIndexBuf(media_data)); + add_assoc_bool(return_value, "isFinished", IsMediaDataFinish(media_data) == 1 ? 1 : 0); + + FreeMediaData(media_data); +} + /* }}} */ static const zend_function_entry wxwork_finance_sdk_class_methods[] = { @@ -215,6 +250,7 @@ static const zend_function_entry wxwork_finance_sdk_class_methods[] = { PHP_ME(WxworkFinanceSdk, getChatData, NULL, ZEND_ACC_PUBLIC) PHP_ME(WxworkFinanceSdk, decryptData, NULL, ZEND_ACC_PUBLIC) PHP_ME(WxworkFinanceSdk, downloadMedia, NULL, ZEND_ACC_PUBLIC) + PHP_ME(WxworkFinanceSdk, getMediaData, NULL, ZEND_ACC_PUBLIC) PHP_FE_END }; @@ -336,7 +372,7 @@ PHP_RINIT_FUNCTION(wxwork_finance_sdk) PHP_RSHUTDOWN_FUNCTION(wxwork_finance_sdk) { DestroySdk(sdk); - + return SUCCESS; } /* }}} */ From f896e067bfe714422b99ee8d8d958a340f616fc6 Mon Sep 17 00:00:00 2001 From: zhaopeng053 Date: Thu, 24 Dec 2020 15:57:28 +0800 Subject: [PATCH 2/6] update return --- wxwork_finance_sdk.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/wxwork_finance_sdk.c b/wxwork_finance_sdk.c index c4a4464..550fda0 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -235,11 +235,12 @@ PHP_METHOD(WxworkFinanceSdk, getMediaData) return; } - array_init(return_value); + /*array_init(return_value); add_assoc_string(return_value, "data", GetData(media_data)); add_assoc_string(return_value, "nextIndex", GetOutIndexBuf(media_data)); add_assoc_bool(return_value, "isFinished", IsMediaDataFinish(media_data) == 1 ? 1 : 0); - + */ + RETURN_STRINGL(GetData(media_data), GetDataLen(media_data)); FreeMediaData(media_data); } From 41a43dfe345c16bc91a9561e6629f07aa0a2461c Mon Sep 17 00:00:00 2001 From: zhaopeng053 Date: Thu, 24 Dec 2020 18:11:27 +0800 Subject: [PATCH 3/6] update return --- wxwork_finance_sdk.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wxwork_finance_sdk.c b/wxwork_finance_sdk.c index 550fda0..ccf353f 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -235,12 +235,12 @@ PHP_METHOD(WxworkFinanceSdk, getMediaData) return; } - /*array_init(return_value); - add_assoc_string(return_value, "data", GetData(media_data)); + array_init(return_value); + add_assoc_stringl(return_value, "data", GetData(media_data), GetDataLen(media_data)); add_assoc_string(return_value, "nextIndex", GetOutIndexBuf(media_data)); add_assoc_bool(return_value, "isFinished", IsMediaDataFinish(media_data) == 1 ? 1 : 0); - */ - RETURN_STRINGL(GetData(media_data), GetDataLen(media_data)); + + //RETURN_STRINGL(GetData(media_data), GetDataLen(media_data)); FreeMediaData(media_data); } From f801fcc78ad70434e5b7439cae720c5d5c9e8be0 Mon Sep 17 00:00:00 2001 From: zhaopeng053 Date: Mon, 28 Dec 2020 17:35:46 +0800 Subject: [PATCH 4/6] format code --- wxwork_finance_sdk.c | 1 - 1 file changed, 1 deletion(-) diff --git a/wxwork_finance_sdk.c b/wxwork_finance_sdk.c index ccf353f..92b984a 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -373,7 +373,6 @@ PHP_RINIT_FUNCTION(wxwork_finance_sdk) PHP_RSHUTDOWN_FUNCTION(wxwork_finance_sdk) { DestroySdk(sdk); - return SUCCESS; } /* }}} */ From d14cc5290886073739693cf55627c4a42b1e4f54 Mon Sep 17 00:00:00 2001 From: zhaopeng053 Date: Mon, 28 Dec 2020 18:01:30 +0800 Subject: [PATCH 5/6] fix bug --- wxwork_finance_sdk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wxwork_finance_sdk.c b/wxwork_finance_sdk.c index 3892cd0..4a830bb 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -258,7 +258,7 @@ PHP_METHOD(WxworkFinanceSdk, getMediaData) return; } - int ret = GetMediaData(sdk, ZSTR_VAL(index_buf), ZSTR_VAL(sdk_filedid), Z_STRVAL_P(proxy_host_zval), Z_STRVAL_P(proxy_password_zval), zval_get_long(timeout_zval), media_data); + int ret = GetMediaData(wecom_sdk, ZSTR_VAL(index_buf), ZSTR_VAL(sdk_filedid), Z_STRVAL_P(proxy_host_zval), Z_STRVAL_P(proxy_password_zval), zval_get_long(timeout_zval), media_data); if (0 != ret) { zend_throw_exception(wxwork_finance_sdk_exception_ce, "GetMediaData error", ret); return; From 51ed0b64cad517c4b5bee8d5863cc878a55fc602 Mon Sep 17 00:00:00 2001 From: zhaopeng053 Date: Mon, 28 Dec 2020 18:04:38 +0800 Subject: [PATCH 6/6] fix bug --- wxwork_finance_sdk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/wxwork_finance_sdk.c b/wxwork_finance_sdk.c index 4a830bb..0764d23 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -258,6 +258,7 @@ PHP_METHOD(WxworkFinanceSdk, getMediaData) return; } + WeWorkFinanceSdk_t *wecom_sdk = wxwork_finance_internal_get_sdk(this); int ret = GetMediaData(wecom_sdk, ZSTR_VAL(index_buf), ZSTR_VAL(sdk_filedid), Z_STRVAL_P(proxy_host_zval), Z_STRVAL_P(proxy_password_zval), zval_get_long(timeout_zval), media_data); if (0 != ret) { zend_throw_exception(wxwork_finance_sdk_exception_ce, "GetMediaData error", ret);