微信公众号--消息回复
?
消息回復(fù)
使用微信進行接口實現(xiàn)消息自動回復(fù),要在微信公眾號中進行服務(wù)器配置和編寫對應(yīng)的服務(wù)器代碼響應(yīng)微信端的請求。
服務(wù)器配置
l? 公眾平臺官網(wǎng)登錄之后,找到“基本配置”菜單欄
?
?
?
l? 填寫配置
?
?
現(xiàn)在選擇提交肯定是驗證token失敗,因為還需要完成代碼邏輯編寫。
服務(wù)端代碼編寫
服務(wù)器配置時,微信服務(wù)器會向填寫的url地址發(fā)送Get請求來驗證服務(wù)器的合法性,邏輯流程圖如下
?
?
以PHP語言為例,編寫驗證服務(wù)器合法性的示例代碼如下:
<?php
?
$signature = isset($_GET["signature"])?$_GET["signature"]:'';
$signature = isset($_GET["msg_signature"])?$_GET["msg_signature"]:$signature; //如果存在加密驗證則用加密驗證段
$timestamp = isset($_GET["timestamp"])?$_GET["timestamp"]:'';
$nonce = isset($_GET["nonce"])?$_GET["nonce"]:'';
?
$token = 'your token';
$tmpArr = array($token, $timestamp, $nonce,$str);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
?
if( $tmpStr == $signature ){
??? $echoStr = $_GET["echostr"];
??? die($echoStr);
}else{
??? die('no access');
}
回復(fù)代碼
根據(jù)以上的描述,正確填寫服務(wù)器配置后,微信會將接收到的圖文等信息自動轉(zhuǎn)發(fā)到配置的服務(wù)器地址中。圖文等消息回復(fù)流程如下,核心邏輯為解析微信端post過來的xml消息數(shù)據(jù),根據(jù)解析的消息類型,根據(jù)消息類型返回處理結(jié)果。
?
?
查詢官方wiki 開頭強調(diào): 假如服務(wù)器無法保證在五秒內(nèi)處理回復(fù),則必須回復(fù)“success”或者“”(空串),否則微信后臺會發(fā)起三次重試。
解釋一下為何有這么奇怪的規(guī)定。發(fā)起重試是微信后臺為了盡可以保證粉絲發(fā)送的內(nèi)容開發(fā)者均可以收到。如果開發(fā)者不進行回復(fù),微信后臺沒辦法確認開發(fā)者已收到消息,只好重試。
真的是這樣子嗎?嘗試一下收到消息后,不做任何回復(fù)。在日志中查看到微信后臺發(fā)起了三次重試操作,日志截圖如下:
?
三次重試后,依舊沒有及時回復(fù)任何內(nèi)容,系統(tǒng)自動在粉絲會話界面出現(xiàn)錯誤提示“該公眾號暫時無法提供服務(wù),請稍后再試”。
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/SLchuck/p/8530955.html
總結(jié)
以上是生活随笔為你收集整理的微信公众号--消息回复的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查电脑IP
- 下一篇: js中函数的参数为函数的情况即回调函数