企业微信回调配置
前期准备:
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 否则也会有同样报错。
上述是小编对于企业微信的回调配置做出一些经验,内容可能不是很完整,还望网友们指出。