# php7-wxwork-finance-sdk **Repository Path**: it1/php7-wxwork-finance-sdk ## Basic Information - **Project Name**: php7-wxwork-finance-sdk - **Description**: 企业微信-会话内容存档PHP扩展 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-11-18 - **Last Updated**: 2025-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # wxwork_finance_sdk_wrapper 企业微信-会话内容存档PHP扩展 ## 前言 由于企业微信官方提供的会话内容存档sdk只支持C和java,给用php开发的小伙伴带来了障碍,网上搜了一圈,实际操作了一番,踩了不少坑,这里总结一下 项目引用 https://github.com/pangdahua/php7-wxwork-finance-sdk ## 环境依赖 - 企业微信提供的sdk; - 仅Linux环境(后面编译用的是linux的sdk所以不支持windows环境) - PHP VERSION >= 7.0 - openssl扩展 - centos7 ## 环境搭建 ``` # php的安装目录(根据服务器php安装位置进行调整) INSATLL_PATH_PATH="/php/php-7.2.21" # workwx的php扩展的目录(项目laravel的目录下[例如:/www/demo],workwx扩展放extend下) WXWORK_FINANCE_PATH="/www/demo/extend/workwx/library/src/Api/Struct/Msgaudit" # php扩展的c语言sdk目录 WXWORK_FINANCE_C_SDK_PATH="${WXWORK_FINANCE_PATH}/c_sdk" # 进入workwx的php扩展的目录 cd $WXWORK_FINANCE_PATH # 通过phpize可以建立php的外挂模块 $INSATLL_PATH_PATH/bin/phpize # 配置编译环境(这里踩了一个坑,执行完上面的脚本后,发现没有Msgaudit文件下没有configure,只有configure.ac,这里需要执行autoconf,若出现autoreconf: 未找到命令,则还需要先执行yum -y install autoconf automake libtool后再执行autoconf,执行完在执行下面的脚本) ./configure --with-php-config=$INSATLL_PATH_PATH/bin/php-config --with-wxwork-finance-sdk="${WXWORK_FINANCE_C_SDK_PATH}" # 编译和安装 make && make install # php.ini 增加 extension=wxwork_finance_sdk.so echo extension=wxwork_finance_sdk.so >> $INSATLL_PATH_PATH/etc/php.ini # 重启php-fpm service php-fpm restart ``` ## 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扩展 2. 与swoole的扩展冲突 * 优先加载wxwork_finance_sdk.so 后加载swoole 【@tisswb】 ## 示例 wxwork_finance_sdk.php #### 参考文档 ##### linux安装 https://myblog.blog.csdn.net/article/details/123929950 https://blog.csdn.net/weixin_39527281/article/details/123211654 ##### mac 安装 https://blog.csdn.net/yoyo_liyy/article/details/123967042