From d6cef37802ada6410e3334fb84ad26ed67997c33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=9E=E5=A4=A7=E8=8A=B1?= Date: Thu, 9 Jul 2020 12:59:39 +0800 Subject: [PATCH 01/11] Update wxwork_finance_sdk.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix 资源释放 --- wxwork_finance_sdk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/wxwork_finance_sdk.c b/wxwork_finance_sdk.c index 3e72b53..c5027ad 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -196,6 +196,7 @@ PHP_METHOD(WxworkFinanceSdk, downloadMedia) if (0 != ret) { FreeMediaData(media_data); + fclose(fp); zend_throw_exception(wxwork_finance_sdk_exception_ce, "GetMediaData error", ret); return; } From d08c0c3e556b04b92cc3bb28c23545cb6f7fd8ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=9E=E5=A4=A7=E8=8A=B1?= Date: Fri, 24 Jul 2020 15:14:09 +0800 Subject: [PATCH 02/11] Update README.md --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 583b95a..764a27c 100644 --- a/README.md +++ b/README.md @@ -46,11 +46,17 @@ openssl扩展 ``` ```php - bool WxworkFinanceSdk::downloadMedia(string $fileId, string $savePath = '') + bool WxworkFinanceSdk::downloadMedia(string $sdkfileid, string $saveTo) + * 下载资源 + $sdkfileid 资源id。来自chat 中的数据sdkfileid + $saveTo 本地保存的路径 ``` ```php string WxworkFinanceSdk::decryptData(string $randomKey, string $encryptStr); + * 解密数据 + $randomKey 通过openssl解密后的key + $encryptStr chats 的加密数据 ``` ## 示例 From 7f9354782c1ed6114b9a96497588f57b6bce8b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?PHP-=E5=BA=9E=E5=B0=8F=E9=BE=99?= Date: Sat, 10 Oct 2020 18:14:14 +0800 Subject: [PATCH 03/11] =?UTF-8?q?fix:=20=E5=A4=9A=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E4=B8=8B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wxwork_finance_sdk.c | 56 +++++++++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 14 deletions(-) diff --git a/wxwork_finance_sdk.c b/wxwork_finance_sdk.c index c5027ad..ee0ca74 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -26,7 +26,8 @@ #include "php_ini.h" #include "ext/standard/info.h" #include "php_wxwork_finance_sdk.h" - +#define WXWORK_SDK_G_NAME "_wecomSDK" +#define WXWORK_SDK_G_NAME_SIZE sizeof(WXWORK_SDK_G_NAME) - 1 /* If you declare any globals in php_wxwork_finance_sdk.h uncomment this: ZEND_DECLARE_MODULE_GLOBALS(wxwork_finance_sdk) */ @@ -37,10 +38,19 @@ static int le_wxwork_finance_sdk; static zend_class_entry *wxwork_finance_sdk_ce; static zend_class_entry *wxwork_finance_sdk_exception_ce; -static WeWorkFinanceSdk_t *sdk; +/** +* +*/ +static WeWorkFinanceSdk_t* wxwork_finance_internal_get_sdk(zval *wxwork_class_this) +{ + zval *wecom_sdk_zval = zend_read_property(Z_OBJCE_P(wxwork_class_this), wxwork_class_this, "_wecomSDK", sizeof("_wecomSDK") - 1, 0, NULL); + WeWorkFinanceSdk_t *wecom_sdk = (WeWorkFinanceSdk_t *)Z_PTR_P(wecom_sdk_zval); + + return wecom_sdk; +} /** -* options = [ +options = [ 'proxy_host' => 'http://www.baidu.com', 'proxy_password' => 'helloworld' ] @@ -61,16 +71,18 @@ PHP_METHOD(WxworkFinanceSdk, __construct) return; } - int ret = Init(sdk, corp_id, secret); + zval *this = getThis(); + zend_class_entry *ce = Z_OBJCE_P(this); + // init wecom finance sdk + WeWorkFinanceSdk_t *wecom_sdk = wxwork_finance_internal_get_sdk(this); + + int ret = Init(wecom_sdk, corp_id, secret); if (ret != 0) { zend_throw_exception(wxwork_finance_sdk_exception_ce, "Call WeWorkFinanceSdk_t Init error", ret); return; } - zval *this = getThis(); - zend_class_entry *ce = Z_OBJCE_P(this); - zend_update_property_string(ce, this, "_corpId", sizeof("_corpId") - 1, corp_id); zend_update_property_string(ce, this, "_secret", sizeof("_secret") - 1, secret); @@ -92,6 +104,15 @@ PHP_METHOD(WxworkFinanceSdk, __construct) } } } + +PHP_METHOD(WxworkFinanceSdk, __destruct) +{ + zval *this = getThis(); + WeWorkFinanceSdk_t *wecom_sdk = wxwork_finance_internal_get_sdk(this); + DestroySdk(wecom_sdk); + TRACE("release wecom_sdk"); +} + /** {{{ proto public WxworkFinanceSdk::getChatData(int $seq, int $limit) */ @@ -114,10 +135,13 @@ PHP_METHOD(WxworkFinanceSdk, getChatData) zval *this = getThis(); zend_class_entry *ce = Z_OBJCE_P(this); + WeWorkFinanceSdk_t *wecom_sdk = wxwork_finance_internal_get_sdk(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); - int ret = GetChatData(sdk, (int)seq, (int)limit, Z_STRVAL_P(proxy_host_zval), Z_STRVAL_P(proxy_password_zval), zval_get_long(timeout_zval), chat_data); + + int ret = GetChatData(wecom_sdk, (int)seq, (int)limit, Z_STRVAL_P(proxy_host_zval), Z_STRVAL_P(proxy_password_zval), zval_get_long(timeout_zval), chat_data); if (0 != ret) { zend_throw_exception(wxwork_finance_sdk_exception_ce, "Call WeWorkFinanceSdk_t GetChatData error", ret); return; @@ -161,7 +185,7 @@ PHP_METHOD(WxworkFinanceSdk, decryptData) } /** - {{{ proto WxworkFinanceSdk->getMediaData(string $filedId, string $index='') + {{{ proto WxworkFinanceSdk->downloadMedia(string $filedId, string $saveTo) */ PHP_METHOD(WxworkFinanceSdk, downloadMedia) @@ -191,8 +215,11 @@ PHP_METHOD(WxworkFinanceSdk, downloadMedia) return; } + zval *wecom_sdk_zval = zend_read_property(ce, this, "_wecomSdk", sizeof("_wecomSdk") - 1, 0, NULL); + WeWorkFinanceSdk_t *wecom_sdk = (WeWorkFinanceSdk_t *)Z_PTR_P(wecom_sdk_zval); + do { - int ret = GetMediaData(sdk, GetOutIndexBuf(media_data), 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, GetOutIndexBuf(media_data), 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) { FreeMediaData(media_data); @@ -283,6 +310,9 @@ PHP_MINIT_FUNCTION(wxwork_finance_sdk) REGISTER_INI_ENTRIES(); */ + zval wecom_sdk_zval; + WeWorkFinanceSdk_t* wecom_sdk = NewSdk(); + ZVAL_PTR(&wecom_sdk_zval, wecom_sdk); // define WxworkFinanceSdkException zend_class_entry wxwork_finance_sdk_exception_def; INIT_CLASS_ENTRY(wxwork_finance_sdk_exception_def, "WxworkFinanceSdkException", wxwork_finance_sdk_exception_methods); @@ -299,6 +329,8 @@ PHP_MINIT_FUNCTION(wxwork_finance_sdk) zend_declare_property_string(wxwork_finance_sdk_ce, "_proxy_password", sizeof("_proxy_password") - 1, "", ZEND_ACC_PRIVATE); // request timeout zend_declare_property_long(wxwork_finance_sdk_ce, "_timeout", sizeof("_timeout") - 1, 10, ZEND_ACC_PRIVATE); + // declare wecom finance sdk + zend_declare_property(wxwork_finance_sdk_ce, WXWORK_SDK_G_NAME, WXWORK_SDK_G_NAME_SIZE, &wecom_sdk_zval, ZEND_ACC_PRIVATE); return SUCCESS; } @@ -325,8 +357,6 @@ PHP_RINIT_FUNCTION(wxwork_finance_sdk) ZEND_TSRMLS_CACHE_UPDATE(); #endif - sdk = NewSdk(); - return SUCCESS; } /* }}} */ @@ -336,8 +366,6 @@ PHP_RINIT_FUNCTION(wxwork_finance_sdk) */ PHP_RSHUTDOWN_FUNCTION(wxwork_finance_sdk) { - DestroySdk(sdk); - return SUCCESS; } /* }}} */ From e4b2bdbcc2c537993128fe0f79afba81d2ef77b8 Mon Sep 17 00:00:00 2001 From: pangdahua Date: Sat, 10 Oct 2020 18:17:58 +0800 Subject: [PATCH 04/11] =?UTF-8?q?fix:=20=E5=A4=9A=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E4=B8=8B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- php_wxwork_finance_sdk.h | 3 +++ wxwork_finance_sdk.c | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/php_wxwork_finance_sdk.h b/php_wxwork_finance_sdk.h index 0ae7714..b5dbed3 100644 --- a/php_wxwork_finance_sdk.h +++ b/php_wxwork_finance_sdk.h @@ -73,6 +73,9 @@ static inline void trace(const char *file, int line, const char* function, const va_end(args); } +#define WXWORK_SDK_G_NAME "_wecomSDK" +#define WXWORK_SDK_G_NAME_SIZE sizeof(WXWORK_SDK_G_NAME) - 1 + #endif /* PHP_WXWORK_FINANCE_SDK_H */ /* diff --git a/wxwork_finance_sdk.c b/wxwork_finance_sdk.c index ee0ca74..79a6f57 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -26,8 +26,6 @@ #include "php_ini.h" #include "ext/standard/info.h" #include "php_wxwork_finance_sdk.h" -#define WXWORK_SDK_G_NAME "_wecomSDK" -#define WXWORK_SDK_G_NAME_SIZE sizeof(WXWORK_SDK_G_NAME) - 1 /* If you declare any globals in php_wxwork_finance_sdk.h uncomment this: ZEND_DECLARE_MODULE_GLOBALS(wxwork_finance_sdk) */ From e981e07d8565de789811be89a37e9e5ebd104500 Mon Sep 17 00:00:00 2001 From: pangdahua Date: Sat, 10 Oct 2020 18:20:57 +0800 Subject: [PATCH 05/11] =?UTF-8?q?fix:=20=E5=A4=9A=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E4=B8=8B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 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 79a6f57..260d52e 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -41,7 +41,7 @@ static zend_class_entry *wxwork_finance_sdk_exception_ce; */ static WeWorkFinanceSdk_t* wxwork_finance_internal_get_sdk(zval *wxwork_class_this) { - zval *wecom_sdk_zval = zend_read_property(Z_OBJCE_P(wxwork_class_this), wxwork_class_this, "_wecomSDK", sizeof("_wecomSDK") - 1, 0, NULL); + zval *wecom_sdk_zval = zend_read_property(Z_OBJCE_P(wxwork_class_this), wxwork_class_this, WXWORK_SDK_G_NAME, WXWORK_SDK_G_NAME_SIZE, 0, NULL); WeWorkFinanceSdk_t *wecom_sdk = (WeWorkFinanceSdk_t *)Z_PTR_P(wecom_sdk_zval); return wecom_sdk; From 4e7b3854395c399a6d53c51a30c5e115f70bcb38 Mon Sep 17 00:00:00 2001 From: pangdahua Date: Sat, 10 Oct 2020 18:59:52 +0800 Subject: [PATCH 06/11] =?UTF-8?q?fix:=20=E5=A4=9A=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E4=B8=8B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wxwork_finance_sdk.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/wxwork_finance_sdk.c b/wxwork_finance_sdk.c index 260d52e..13149cd 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -213,8 +213,7 @@ PHP_METHOD(WxworkFinanceSdk, downloadMedia) return; } - zval *wecom_sdk_zval = zend_read_property(ce, this, "_wecomSdk", sizeof("_wecomSdk") - 1, 0, NULL); - WeWorkFinanceSdk_t *wecom_sdk = (WeWorkFinanceSdk_t *)Z_PTR_P(wecom_sdk_zval); + WeWorkFinanceSdk_t *wecom_sdk = wxwork_finance_internal_get_sdk(this); do { int ret = GetMediaData(wecom_sdk, GetOutIndexBuf(media_data), ZSTR_VAL(sdk_filedid), Z_STRVAL_P(proxy_host_zval), Z_STRVAL_P(proxy_password_zval), zval_get_long(timeout_zval), media_data); From cef9717212850c6fdba8042c2dad397c40b660e6 Mon Sep 17 00:00:00 2001 From: pangdahua Date: Sat, 10 Oct 2020 20:02:53 +0800 Subject: [PATCH 07/11] =?UTF-8?q?fix:=20=E5=A4=9A=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E4=B8=8B=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wxwork_finance_sdk.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/wxwork_finance_sdk.c b/wxwork_finance_sdk.c index 13149cd..ee5cb91 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -58,6 +58,8 @@ PHP_METHOD(WxworkFinanceSdk, __construct) char *corp_id, *secret; size_t corp_id_len, secret_len; zval *option_zval = NULL; + zval wecom_sdk_zval; + WeWorkFinanceSdk_t *wecom_sdk; if (zend_parse_parameters(ZEND_NUM_ARGS(), "ss|a", &corp_id, &corp_id_len, &secret, &secret_len, &option_zval) == FAILURE) { zend_error(E_ERROR, "param error"); @@ -72,8 +74,7 @@ PHP_METHOD(WxworkFinanceSdk, __construct) zval *this = getThis(); zend_class_entry *ce = Z_OBJCE_P(this); // init wecom finance sdk - WeWorkFinanceSdk_t *wecom_sdk = wxwork_finance_internal_get_sdk(this); - + wecom_sdk = NewSdk(); int ret = Init(wecom_sdk, corp_id, secret); if (ret != 0) { @@ -81,6 +82,9 @@ PHP_METHOD(WxworkFinanceSdk, __construct) return; } + ZVAL_PTR(&wecom_sdk_zval, wecom_sdk); + zend_update_property(ce, this, WXWORK_SDK_G_NAME, WXWORK_SDK_G_NAME_SIZE, &wecom_sdk_zval); + zend_update_property_string(ce, this, "_corpId", sizeof("_corpId") - 1, corp_id); zend_update_property_string(ce, this, "_secret", sizeof("_secret") - 1, secret); @@ -219,10 +223,10 @@ PHP_METHOD(WxworkFinanceSdk, downloadMedia) int ret = GetMediaData(wecom_sdk, GetOutIndexBuf(media_data), 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) { - FreeMediaData(media_data); - fclose(fp); - zend_throw_exception(wxwork_finance_sdk_exception_ce, "GetMediaData error", ret); - return; + FreeMediaData(media_data); + fclose(fp); + zend_throw_exception(wxwork_finance_sdk_exception_ce, "GetMediaData error", ret); + return; } fwrite(GetData(media_data), GetDataLen(media_data), 1, fp); }while(IsMediaDataFinish(media_data) != 1); @@ -307,9 +311,6 @@ PHP_MINIT_FUNCTION(wxwork_finance_sdk) REGISTER_INI_ENTRIES(); */ - zval wecom_sdk_zval; - WeWorkFinanceSdk_t* wecom_sdk = NewSdk(); - ZVAL_PTR(&wecom_sdk_zval, wecom_sdk); // define WxworkFinanceSdkException zend_class_entry wxwork_finance_sdk_exception_def; INIT_CLASS_ENTRY(wxwork_finance_sdk_exception_def, "WxworkFinanceSdkException", wxwork_finance_sdk_exception_methods); @@ -327,7 +328,7 @@ PHP_MINIT_FUNCTION(wxwork_finance_sdk) // request timeout zend_declare_property_long(wxwork_finance_sdk_ce, "_timeout", sizeof("_timeout") - 1, 10, ZEND_ACC_PRIVATE); // declare wecom finance sdk - zend_declare_property(wxwork_finance_sdk_ce, WXWORK_SDK_G_NAME, WXWORK_SDK_G_NAME_SIZE, &wecom_sdk_zval, ZEND_ACC_PRIVATE); + zend_declare_property_null(wxwork_finance_sdk_ce, WXWORK_SDK_G_NAME, WXWORK_SDK_G_NAME_SIZE, ZEND_ACC_PRIVATE); return SUCCESS; } From e31bddb23d179a0934a89547f163bf0b1763397a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=9E=E5=A4=A7=E8=8A=B1?= Date: Sat, 10 Oct 2020 20:27:41 +0800 Subject: [PATCH 08/11] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 764a27c..5d37a8f 100644 --- a/README.md +++ b/README.md @@ -63,3 +63,7 @@ openssl扩展 wxwork_finance_sdk.php +打赏一下的话就更好了~ + Alipay + + From bedd9f1d8a11ce34c847833ef42817d72c4dfa53 Mon Sep 17 00:00:00 2001 From: pangdahua Date: Sun, 11 Oct 2020 11:05:19 +0800 Subject: [PATCH 09/11] =?UTF-8?q?feta:=20=E5=AE=9A=E4=B9=89=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- php_wxwork_finance_sdk.h | 2 ++ wxwork_finance_sdk.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/php_wxwork_finance_sdk.h b/php_wxwork_finance_sdk.h index b5dbed3..a39c32e 100644 --- a/php_wxwork_finance_sdk.h +++ b/php_wxwork_finance_sdk.h @@ -75,6 +75,8 @@ static inline void trace(const char *file, int line, const char* function, const #define WXWORK_SDK_G_NAME "_wecomSDK" #define WXWORK_SDK_G_NAME_SIZE sizeof(WXWORK_SDK_G_NAME) - 1 +// 默认超时时间 +#define WXWORK_SDK_DEFAULT_TIMEOUT 30 #endif /* PHP_WXWORK_FINANCE_SDK_H */ diff --git a/wxwork_finance_sdk.c b/wxwork_finance_sdk.c index ee5cb91..66fd405 100644 --- a/wxwork_finance_sdk.c +++ b/wxwork_finance_sdk.c @@ -326,7 +326,7 @@ PHP_MINIT_FUNCTION(wxwork_finance_sdk) zend_declare_property_string(wxwork_finance_sdk_ce, "_proxy_host", sizeof("_proxy_host") - 1, "", ZEND_ACC_PRIVATE); zend_declare_property_string(wxwork_finance_sdk_ce, "_proxy_password", sizeof("_proxy_password") - 1, "", ZEND_ACC_PRIVATE); // request timeout - zend_declare_property_long(wxwork_finance_sdk_ce, "_timeout", sizeof("_timeout") - 1, 10, ZEND_ACC_PRIVATE); + zend_declare_property_long(wxwork_finance_sdk_ce, "_timeout", sizeof("_timeout") - 1, WXWORK_SDK_DEFAULT_TIMEOUT, ZEND_ACC_PRIVATE); // declare wecom finance sdk zend_declare_property_null(wxwork_finance_sdk_ce, WXWORK_SDK_G_NAME, WXWORK_SDK_G_NAME_SIZE, ZEND_ACC_PRIVATE); From 817a8fe4ce11e3290f86cb90ee4b1bf050435d96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=9E=E5=A4=A7=E8=8A=B1?= Date: Fri, 27 Nov 2020 17:02:12 +0800 Subject: [PATCH 10/11] Update wxwork_finance_sdk.php --- wxwork_finance_sdk.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wxwork_finance_sdk.php b/wxwork_finance_sdk.php index f57fde9..d90ce22 100644 --- a/wxwork_finance_sdk.php +++ b/wxwork_finance_sdk.php @@ -14,7 +14,7 @@ var_dump($chats); foreach ($chats['chatdata'] as $val) { $decryptRandKey = null; openssl_private_decrypt(base64_decode($val['encrypt_random_key']), $decryptRandKey, $privateKey, OPENSSL_PKCS1_PADDING); - $obj->downloadMedia($sdkFileId, "/tmp/download"); + $obj->downloadMedia($sdkFileId, "/tmp/download/文件新名称.后缀"); } From e0622a0b35558f2da9c6cd4960ce1bcc322522ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BA=9E=E5=A4=A7=E8=8A=B1?= Date: Thu, 10 Dec 2020 09:38:11 +0800 Subject: [PATCH 11/11] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 5d37a8f..1453df1 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,10 @@ openssl扩展 $encryptStr chats 的加密数据 ``` +## 问题 + 1. free(): invalid pointer + * 暂时定位intl扩展的冲突问题. php -m |grep intl 建议重新编译php 取消intl扩展 + ## 示例 wxwork_finance_sdk.php