您现在的位置: 365建站网 > 建站教程 > 微信公众平台开发 > 25.6.1更新互动记录

25.6.1更新互动记录

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

项目的群发功能是使用客服接口实现的,而客服接口发送消息有48小时互动限制,上次互动超过48小时后则无法再向该用户发送消息。因此在程序中,需要记录用户最后一次互动的时间。相应的代码如下所示。

 1 //响应
 2 public function responseMsg()
 3 {
 4     $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
 5     if (!empty($postStr)){
 6         $this->logger("R ".$postStr);
 7         $postObj = simpleXML_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
 8         $RX_TYPE = trim($postObj->MsgType);
 9 
10         if (($postObj->MsgType == "event") && ($postObj->Event == "subscribe" || $postObj->Event == "unsubscribe" || $postObj->Event == "TEMPLATESENDJOBFINISH")){
11             //过滤关注、取消关注事件、模板消息等事件
12         }else{
13             //更新互动记录
14             Db::name('user')->where('openid',strval($postObj->FromUserName))->setField('heartbeat', time());
15         }
16         //消息类型分离
17         switch ($RX_TYPE)
18         {
19             case "event":
20                 $result = $this->receiveEvent($postObj);
21                 break;
22             case "text":
23                 $result = $this->receiveText($postObj);
24                 break;
25             default:
26                 $result = "unknown msg type: ".$RX_TYPE;
27                 break;
28         }
29         $this->logger("T ".$result);
30         echo $result;
31     }else {
32         echo "";
33         exit;
34     }
35 }

对于一些特别的事件,需要进行过滤处理,比如关注、取消关注以及发送模板消息后的上报。其他的正常用户互动接收到以后,则更新该用户的hearbeat的时间戳。

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


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