# php7-wxwork-finance-sdk **Repository Path**: wghzhida/php7-wxwork-finance-sdk ## Basic Information - **Project Name**: php7-wxwork-finance-sdk - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-15 - **Last Updated**: 2021-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wxwork_finance_sdk_wrapper 企业微信-会话内容存档PHP扩展 ## 依赖 企业微信提供的sdk; PHP VERSION >= 7.0 openssl扩展 ## 安装步骤及要求 ``` $INSATLL_PATH_PATH/bin/phpize # ./configure --with-php-config=$INSTALL_PHP_PATH/php-config --with-wxwork-finance-sdk=$WXWORK_FINANCE_C_SDK_PATH make && make install ``` ###### 具体操作 - 修改 config.m4 文件内的 sdk路径为绝对路径 ``` vim config.m4 # 第 22 行 和 第 28 行,共三处路径,需修改 # config.m4 line 22 => /root/wxwork-finance-sdk/WeWorkFinanceSdk_C.h 改成你的路径 # config.m4 line 22 => /root/wxwork-finance-sdk/libWeWorkFinanceSdk_C.so 改成你的路径 # config.m4 line 28 => /root/wxwork-finance-sdk 改成你的路径 ``` - 执行命令编译安装扩展 ``` # 执行过程请将全部路径替换为绝对路径【原因:替换成绝对路径我编译安装就可以成功了】 /usr/bin/phpize ./configure --with-php-config=/usr/bin/php-config --with-wxwork-finance-sdk=/root/wxwork-finance-sdk/ make && make install ``` - 添加 PHP扩展 > php.ini 增加 extension=wxwork_finance_sdk.so 通过 `phpinfo()` 函数,查看 `php.ini` 的位置,如我的 `php.ini` 的位置 `/etc/php/7.4/fpm/php.ini` ,然后添加 ``` vim /etc/php/7.4/fpm/php.ini ``` 进入编辑模式,查找 关键词 `/extension=` ,回车 就可以跳到 模块设置那里了,大概在 951行 ``` # 添加 wxwork_finance_sdk 扩展,951 行【你的可能跟我不一样】 extension=wxwork_finance_sdk.so ``` 重启 php-fpm ``` systemctl restart php-fpm ``` 再查看 `phpinfo()` ,应该就可以看到 `wxwork_finance_sdk`扩展了 > 填坑笔记【现在不用看,出现了如我所说的问题再回来看这里就好了】: > > 我在另外一台 Ubuntu 上,在 `/etc/php/7.4/fpm/php.ini` 添加了 `extension=wxwork_finance_sdk.so` ,重启 php-fpm 后 `phpinfo()` 也能 看到 扩展 `wxwork_finance_sdk` 安装成功了,但是 用 `php -m` 却看不到 模块 `wxwork_finance_sdk`, 调用时报错 类`WxworkFinanceSdk` 不存在! > > 我当时的处理办法: > 在 `/etc/php/7.4/cli/php.ini` 也添加了 `extension=wxwork_finance_sdk.so` ,并重启 php-fpm,再用 `php -m`和 `phpinfo()` 就都能看到 `wxwork_finance_sdk` 了 ## API ```php WxworkFinanceSdkExcption::__construct(); ``` ```php WxworkFinanceSdk::__construct(string $corpId, string $secret, array $options); string $corpId 企业号 string $secret 秘钥 array $options = [ // 可选参数 'proxy_host' => string, 'proxy_password' => string, 'timeout' => 10, // 默认超时时间为10s ] ``` ```php string WxworkFinanceSdk::getChatData(int $seq, int $limit); * 拉取聊天数据 $seq 起始位置 $limit 获取条数 ``` ```php bool WxworkFinanceSdk::downloadMedia(string $sdkfileid, string $saveTo) * 下载资源 $sdkfileid 资源id。来自chat 中的数据sdkfileid $saveTo 本地保存的路径 ``` ```php array WxworkFinanceSdk::getMediaData(string $sdkfileid, string $indexBuf=''); * 拉取静态资源数据,用于可以支持追加模式的三方存储平台 返回的数据结构体 $ret = [ 'data' => '' // string 返回的数据 'nextIndex' => 'ddd' // string 获取下一段数据的句柄 'isFinished' => int // 1 数据已拉取完毕 ]; ``` * 感谢 @zhanzhaopeng1 PR ```php string WxworkFinanceSdk::decryptData(string $randomKey, string $encryptStr); * 解密数据 $randomKey 通过openssl解密后的key $encryptStr chats 的加密数据 ``` ## 问题 1. free(): invalid pointer * 定位intl扩展的冲突问题. php -m |grep intl 建议重新编译php 取消intl扩展 ## 示例 wxwork_finance_sdk.php * 遇到问题可以加我的麻花藤号 5687046 打赏一下的话就更好了~ Alipay