PHP-企业微信服务器回调配置
2022-10-24 15:45:48
261
{{single.collect_count}}

企业微信回调配置

前期准备:
1.必须使用外网能够访问得到的URL(不能是本地服务器且URL要有备案)
2.需要使用官方推荐的“加解密库及返回码”(php)下载地址如下:https://github.com/sbzhu/weworkapi_php/tree/master/callback
3.要借助微信企业号接口调试工具: http://qydev.weixin.qq.com/debug

基础准备如果没有问题后,我们需要进入企业微信后台的应用程序如下图所示:

我们从上图可以看到
在这里插入图片描述
注:在测试回调配置前我们首先不需要填写URL,回调测试结束后再将URL放进去,在进行保存。
我们将测试回调的文件放在网站目录中,并取名叫callback.php来进行测试。
callback文件代码如下:

<?php//这里的Getmessage_Wechat.class.php其实就是官网推荐的WXBizMsgCrypt.phprequire_once "Getmessage_Wechat.class.php";define(EncodingAesKey,"应用程序回调配置的EncodingAesKey");define(Token,"应用程序回调配置的Token");define(CorpId,"企业微信id号");$wechatObj = new WXBizMsgCrypt(Token,EncodingAesKey,CorpId);if (!isset($_GET['echostr'])) {echo "没有进入到回调配置!";}else{//接受验证数据$sVerifyMsgSig = $_GET["msg_signature"];$sVerifyTimeStamp = $_GET["timestamp"];$sVerifyNonce = $_GET["nonce"];$sVerifyEchoStr = $_GET["echostr"]; $sEchoStr = "";$errCode = $wechatObj ->VerifyURL($sVerifyMsgSig, $sVerifyTimeStamp, $sVerifyNonce, $sVerifyEchoStr, $sEchoStr);//回调验证判断if ($errCode == 0) { echo $sEchoStr;} else { print("ERR: " . $errCode . "\n\n"); }}?>

此时借助“微信企业号接口调试工具” http://qydev.weixin.qq.com/debug来进行调试。如下图所示:
在这里插入图片描述
URL:必须使用外网能够访问得到的URL(不能是本地服务器且URL要有备案)
Token:企业微信应用程序->设置api中的信息
EncodingAesKey:企业微信应用程序->设置api中的信息
ToUserName: 企业id
EchoStr:想要输出的数据。用来检验回调内容是否成功,是否正确。

全部填完后点击“检查问题”。
在这里插入图片描述
如若EchoStr与返回结果一致,没有报错信息。
此时就可以再次回到“接受消息服务器配置”页面如图下所示:点击“保存”此时就会显示“保存成功”的页面啦!

在这里插入图片描述

在这里插入图片描述
但是小编在实际操作的过程中还是遇到很多坎坷的。其中遇到最多的回调报错就是提示:“echostr校验失败,请您检查是否正确解密并输出明文echostr”。

在这里插入图片描述
这里其实最主要的是要看我们在调试工具中的EchoStr的内容和返回结果内容是否一致,如果不一致就会有类似报错。那么是什么原因会导致这种结果的错误呢?可能原因如下:

1.要注意将PHP另存为无BOM头的UTF-8格式

2 是 EchoStr参数获取不要加 urldecode转换 (要命的是官方提供的示例就加了url转换,所以出错)即改成

$sVerifyEchoStr = $_GET["echostr"];// 并不是 $sVerifyEchoStr = urldecode($_GET["echostr"]);

3.注意 PHP网页中 前面调试 OK后,到最后一步时,要把前面所有的 echo 或 print 代码去掉,要保证最后输出的只有 $sEchoStr 否则也会有同样报错。

上述是小编对于企业微信的回调配置做出一些经验,内容可能不是很完整,还望网友们指出。

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}