365体育备用网址报道20.8.1设置客服类型_365体育备用网址官网资讯

登录微信公众平台企业号后台,依次进入“服务中心”-“企业客服”,如图20-37所示。

图20-37选择客服类型
选择“外部客户服务”,点击右侧启用链接进入配置页面,如图20-38所示。

图20-38设置客服列表和回调接口
在配置页面中,选择企业号通讯录中的部门或成员做为客服列表。然后设置服务回调接口。
回调接口代码如下。

 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     public function responseMsg()
25     {
26         $sReqMsgSig = $_GET['msg_signature'];
27         $sReqTimeStamp = $_GET['timestamp'];
28         $sReqNonce = $_GET['nonce'];
29         $sReqData = $GLOBALS["HTTP_RAW_POST_DATA"];
30         $sMsg = "";  // 解析之后的明文
31         $this->logger(" DE \r\n".$sReqData);
32         $errCode = $this->DecryptMsg($sReqMsgSig, $sReqTimeStamp, $sReqNonce, $sReqData, $sMsg);
33         $this->logger(" RR \r\n".$sMsg);
34         $postObj = simpleXML_load_string($sMsg, 'SimpleXMLElement', LIBXML_NOCDATA);
35         //客服模式
36         if (isset($postObj->AgentType)){
37             $sRespData = trim($postObj->PackageId);
38             $this->logger(" RT \r\n".$sRespData);
39             //解析出openid,调用服务号客服接口发送消息
40             echo $sRespData;
41         }
42     }
43 
44     //日志记载
45     public function logger($log_content)
46     {
47         if($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){ //LOCAL
48             $max_size = 500000;
49             $log_filename = "log.xml";
50             if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}
51             file_put_contents($log_filename, date('Y-m-d H:i:s').$log_content."\r\n", FILE_APPEND);
52         }
53     }
54 }
55 
56 $wechatObj = new wechatCallbackapiTest($token, $encodingAesKey, $corpId);
57 $wechatObj->logger(' http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].(empty($_SERVER['QUERY_STRING'])?"":("?".$_SERVER['QUERY_STRING'])));
58 
59 if (!isset($_GET['echostr'])) {
60     $wechatObj->responseMsg();
61 }else{
62     $wechatObj->valid();
63 }

上述代码解读如下。
第9~21行:验证URL有效的函数。先取GET参数,然后计算出失误码,如果失误码为0则验证URL胜利。
第23~42行:响应消息的函数。先取GET参数以及POST数据,将取得的XML数据进行解密,然后推断是否为客服模式,并提取其中的PackageId参数进行回显。

------分隔线----------------------------

公布评论 (84人察看0条评论)
请自觉遵守互联网相关的政策法规,严禁公布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换宝马会国际娱乐
最新评论