最近開始做CMS后台與微信公眾號的整合,在做被動回復消息時,按照官方文檔的XML格式回復消息,總是提示“該公眾號提供的服務出現故障,請稍后再試”。但是通過微信提供的接口調試工具看我的接口貌似也沒什么問題,給出的提示也是請求成功。
最后認真學習了其它網友的方案,才發現官方文檔上提供的XML格式有問題,稍微修改后就可以正常的收到自定義的被動消息回復了,如果有和我類似情況的朋友,一定要注意下面XML格式啊。
我的后台是PHP,核心代碼很簡單。
$HTTP_RAW_POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA']) ? $GLOBALS['HTTP_RAW_POST_DATA'] : file_get_contents("php://input");
$post_obj = simplexml_load_string($HTTP_RAW_POST_DATA, 'SimpleXMLElement', LIBXML_NOCDATA);
$msg_type = $post_obj->MsgType;
switch ($msg_type) {
case 'text':
$keyword = trim($post_obj->Content);
$msg_tpl = '<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content></xml>';
$result = sprintf($msg_tpl,$post_obj->FromUserName, $post_obj->ToUserName, time(), '歡迎訪問大江小浪!');
echo $result;
return;
break;
default:
# code...
break;
}
下面是能夠正常回復的效果。
本文為作者原創,如果您覺得本文對您有幫助,請隨意打賞,您的支持將鼓勵我繼續創作。
參考資料:
1、微信公眾平台 被動回復消息
2、php版微信開發之接收消息,自動判斷及回復相應消息的方法
3、微信開發被動回復消息:該公眾號暫時無法提供服務,請稍后再試
4、微信被動回復用戶消息