企业微信会话内容存档PHP版SDK编译详细步骤

感谢这位老哥编写的SDK:

https://github.com/pangdahua/php7-wxwork-finance-sdkhttps://github.com/pangdahua/php7-wxwork-finance-sdkReadme.md讲太简单,可能会有坑,我这里借花献佛,把详细步骤写一下:

1、将github上下载源代码包,再从企微官网API下载C版本的最新sdk,一起上传到服务器,

进入到该目录。

https://wwcdn.weixin.qq.com/node/wework/images/sdk_20201116.rarhttps://wwcdn.weixin.qq.com/node/wework/images/sdk_20201116.rar

目录大概是这个样子的,注意红框两个文件就是企微官网c版sdk,必不可少。

2、找到服务器上 phpize php-config目录$PHP_PATH,根据目录进行编译:

$PHP_PATH/bin/phpize
        
./configure --with-php-config=$PHP_PATH/php-config --with-wxwork-finance-sdk=./
       
make 
make test
make install

如果make test通过,那就基本没问题了。如果以上有问题,可能原因:

(1)php版本不对,php8版本arginfo不再是可选。

(2)php不是编译安装的,导致编译器版本不一致。

3、php.ini 增加 extension=wxwork_finance_sdk.so

4、重启php-fpm、Nginx,不然扩展不生效。

测试一下:

<?php
//phpinfo(); //phpinfo显示扩展已加载,也可能是无效的,必须用extension_loaded测试
var_dump(extension_loaded('wxwork_finance_sdk'));

或者服务器端:

php -m

以上配置成功环境参数如下:

宝塔linux面板,centos 7.9,php 7.4,nginx 1.20 

拉取企微会话消息demo:

<?php
try {
	$obj = new WxworkFinanceSdk("xxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxxxxxxx");
	// 私钥,必须注意对应的公钥的版本,我这里设置了两个
    // 还有文本格式是Unix,在Windows编辑器下需要特别注意
	$privateKey5 = '-----BEGIN RSA PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END RSA PRIVATE KEY-----'; 

    $privateKey6 = '-----BEGIN RSA PRIVATE KEY-----
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----END RSA PRIVATE KEY-----'; 

	$chats = json_decode($obj->getChatData(0, 10), true);
	foreach ($chats['chatdata'] as $val) {
		echo '公钥版本号:'.$val['publickey_ver'];
		// @param1为需要解密的数据(base64),@param2为解密后的数据,@param3为私钥
        // @param4为对应的密钥格式(PKCS1开头:begin rsa private key,PKCS8开头:begin private key),都可以,只要@param4选择了正确的私钥读取参数
        openssl_private_decrypt(base64_decode($val['encrypt_random_key']), $decryptRandKey, $privateKey6, OPENSSL_PKCS1_PADDING);
		var_dump($decryptRandKey);
		echo "<hr/>";
		$msg = $obj->decryptData($decryptRandKey, $val['encrypt_chat_msg']);
		echo $msg;
		//$obj->downloadMedia($sdkFileId, "/media.mp4");
	}

}catch(\WxworkFinanceSdkException $e) {
    var_dump($e->getMessage(), $e->getCode());
}
/**
 * openssl_pkey_get_private这个函数可用来判断私钥是否是可用的,可用,返回资源
 * @return bool
 */
function getPrivateKey($privateKey)
{
	return openssl_pkey_get_private($privateKey);
}
/**
 * openssl_pkey_get_public这个函数可用来判断公钥是否是可用的,可用,返回资源
 * @return bool
 */
function getPublicKey($publicKey)
{
	return openssl_pkey_get_public($publicKey);
}

评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

才 神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值