這篇文章主要介紹了微信公眾平臺消息接口開發(fā)從Hello2BizUser文本到subscribe事件的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比濱海新區(qū)網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式濱海新區(qū)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋濱海新區(qū)地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
一、Hello2BizUser舊事件的處理
在老的關注事件中,用戶關注微信公眾平臺賬號后,系統(tǒng)會幫用戶發(fā)送一條Hello2BizUser的文本給公眾賬號,公眾賬號后臺開發(fā)模式下通過判斷Hello2BizUser這個詞來實現(xiàn)發(fā)送歡迎詞。
代碼樣例如下:
if ($keyword == "Hello2BizUser"){ $contentStr = "創(chuàng)新互聯(lián)"; $resultStr = $this->transmitText($object, $contentStr, $funcFlag); return $resultStr; }
做出基礎接口上的修改,影響會是所有人。一般不會輕易做這樣的改動。
為什么微信要修改這一事件了,這個方法的弊端在于,如果用戶沒有判斷這一事件,那么就不會有歡迎詞,本來這也沒什么關系,不出現(xiàn)歡迎詞也不影響什么。但很多人的程序代碼里面,所有流程直接就是判斷關鍵詞。比如我們曾看到過一家醫(yī)院的微信賬號,用戶發(fā)送掛號的號碼,就顯示前面有多少人排列,但后臺程序沒有做區(qū)分,把Hello2BizUser也當成掛號單發(fā)送過去,返回沒有找到Hello2BizUser這一掛號,不知道前面有多少人,搞得用戶莫名奇妙。還有就是用戶如果主動發(fā)送一個Hello2BizUser過去,那么得到的也是和歡迎詞一樣的內(nèi)容,雖然很少有用戶會去發(fā)這個東西。
另一方面,將用戶關注做成事件,更有利于統(tǒng)計功能的實現(xiàn)。利用這個事件,我們就更能容易的判斷出關注人數(shù)和退訂人數(shù),而原來的Hello2BizUser文本推送判斷是有可能不準確的,因為用戶可以手工發(fā)送,形成虛假關注統(tǒng)計。
二、“subscribe”訂閱事件判斷
subscribe是一種新的事件,我們先需要做事件類型做判斷,我們在官方樣例中增加對這一事件的判斷,修改如下:
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType); switch ($RX_TYPE) { case "text": $resultStr = $this->receiveText($postObj); break; case "event": $resultStr = $this->receiveEvent($postObj); break; default: $resultStr = "unknow msg type: ".$RX_TYPE; break; }
然后在事件接收處理函數(shù)中再判斷訂閱事件 :
private function receiveEvent($object) { $contentStr = ""; switch ($object->Event) { case "subscribe": $contentStr = "您好,歡迎關注方倍工作室。新感覺,新體驗!"; break; } $resultStr = $this->transmitText($object, $contentStr); return $resultStr; }
這樣就完成了“subscribe”的訂閱事件下的處理。
二、完整代碼
<?php define("TOKEN", "方倍工作室"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->responseMsg(); class wechatCallbackapiTest { public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $RX_TYPE = trim($postObj->MsgType); switch ($RX_TYPE) { case "text": $resultStr = $this->receiveText($postObj); break; case "event": $resultStr = $this->receiveEvent($postObj); break; default: $resultStr = "unknow msg type: ".$RX_TYPE; break; } echo $resultStr; }else { echo ""; exit; } } private function receiveText($object) { $funcFlag = 0; $keyword = trim($object->Content); $resultStr = ""; $cityArray = array(); $contentStr = ""; $needArray = false; $illegal = false; $saytome = false; if ($keyword == "Hello2BizUser"){ $contentStr = "歡迎關注方倍工作室,這其實是老的歡迎詞,你關注時收不到了"; $resultStr = $this->transmitText($object, $contentStr, $funcFlag); return $resultStr; }else { } } private function receiveEvent($object) { $contentStr = ""; switch ($object->Event) { case "subscribe": $contentStr = "您好,歡迎關注方倍工作室。新感覺,新體驗!"; break; } $resultStr = $this->transmitText($object, $contentStr); return $resultStr; } private function transmitText($object, $content, $flag = 0) { $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>%d</FuncFlag> </xml>"; $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag); return $resultStr; } } ?>
感謝你能夠認真閱讀完這篇文章,希望小編分享的“微信公眾平臺消息接口開發(fā)從Hello2BizUser文本到subscribe事件的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!
網(wǎng)頁題目:微信公眾平臺消息接口開發(fā)從Hello2BizUser文本到subscribe事件的示例分析
路徑分享:http://aaarwkj.com/article30/igdppo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、定制開發(fā)、網(wǎng)站改版、網(wǎng)站維護、商城網(wǎng)站、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)