您现在的位置: 365建站网 > 建站教程 > 微信公众平台开发 > 20.1.1启用回调模式

20.1.1启用回调模式

此节有 236 人学习过     参与评论

企业号应用有两种模式,普通模式和回调模式。
普通模式下可以通过简单的界面编辑,来设置自动回复以及底部的自定义菜单等功能。类似订阅号或服务号的编辑模式。
回调模式下开发者可通过企业号提供的接口,实现设置自定义菜单、获取成员状态通知以及微信消息转发等功能。回调类似订阅号或服务号的开发者接入模式。
当你开启应用的回调模式时,企业号会要求你填写应用的URL、Token、EncodingAESKey三个参数。
URL是企业应用接收企业号推送请求的访问协议和地址,支持http或https协议。
Token可由企业任意填写,用于生成签名。
EncodingAESKey用于消息体的加密,是AES密钥的Base64编码。
当你提交以上信息时,企业号将发送GET请求到填写的URL上,GET请求携带四个参数,企业在获取时需要做urldecode处理,否则会验证不成功。参数说明如表20-1所示。

表20-1GET参数说明
企业号通过参数msg_signature对请求进行校验,如果确认此次GET请求来自企业号,那么企业号应该对echostr参数解密并原样返回echostr明文(不能加引号,不能带bom头,不能带换行符),则接入验证生效,回调模式才能开启。
后续回调企业时都会在请求URL中带上以上参数(echostr除外),校验方式与首次验证URL一致。
企业号应用启用回调模式的代码如下所示。

 1 require_once("WXBizMsgCrypt.PHP");
 2 $encodingAesKey = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFG";
 3 $token = "FangBei";
 4 $corpId = "wx82e2c31215d9a5a7";
 5 
 6 class wechatCallbackapiTest extends WXBizMsgCrypt
 7 {
 8     //验证URL有效
 9     public function valid()
10     {
11         $sVerifyMsgSig = $_GET["msg_signature"];
12         $sVerifyTimeStamp = $_GET["timestamp"];
13         $sVerifyNonce = $_GET["nonce"];
14         $sVerifyEchoStr = $_GET["echostr"];
15         $sEchoStr = "";
16         $errCode = $this->VerifyURL($sVerifyMsgSig, $sVerifyTimeStamp, $sVerifyNonce, $sVerifyEchoStr, $sEchoStr);
17         if ($errCode == 0) {
18             // 验证URL成功,将sEchoStr返回
19             echo $sEchoStr;
20         }
21     }
22 }
23 
24 $wechatObj = new wechatCallbackapiTest($token, $encodingAesKey, $corpId);
25 if (!isset($_GET['echostr'])) {
26     $wechatObj->valid();
27 }

回调模式启用成功之后如图20-2所示。

图20-2配置回调模式

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (236人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
------分隔线----------------------------
微信公众平台开发目录