2018年04月6日网站服务器迁移完成……

微信公众号 被动回复用户消息函数responseMsg()

微信公众号开发 苏 demo 678℃

responseMsg函数 ,用于返回消息给微信用户。

该函数存在于微信公共号开发平台提供的示例demo中。

应用示例 (开发者模式下
当微信用户关注某一个公众号后,会对服务器发送一个post关注请求,微信服务器会把这个请求以xml格式发送给开发者服务器,开发服务器则接收到xml结构数据消息,进行处理,并再以xml格式返回给微信SERVER.

函数responseMsg()就是在开发者服务器文件wx_sample.php里面,用于处理开发者服务器接收到的xml消息。

1.参数接收

$postStr = $GLOBALS[‘HTTP_RAW_POST_DATA’];

2处理消息

if(!empty($postStr)){

…….

}

else{

echo ”;

exit;

}

 

函数libxml_disable_entity_loader(true) 防xml内部被注入。

$postObj=simplexml_load_string($postStr,’SimpleXMLElement’,LIBXML_NOCDATA); 将传递过来的消息对象化。

同样可以写为$postObj = simplexml_load_string($postStr);

3.消息内容

$fromUsername = $postObj->FromUserName; //获取微信用户名

$toUsername  = $postObj->ToUserName;//获取开发者用户名

$keyword = trim($postObj->Content);//获取用户发送的消息内容

$time = time();

$textTpl      = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";

4.发送消息

if (!empty($keyword)) {
    $msgType    = "text";//消息类型
    $contentStr = "Welcome to wechat world!";//消息具体内容
    $resultStr  = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    echo $resultStr;
} else {
    echo "Input something...";
}

springf() 将$textTpl 里 百分号 %s 替换成我们定义的内容。

补充说明

如果微信用户发送的消息为空,需要返回的消息为

echo "Input something...";

提示用户输入关键词。

 

 

打赏

转载请注明:苏demo的别样人生 » 微信公众号 被动回复用户消息函数responseMsg()

   如果本篇文章对您有帮助,欢迎向博主进行赞助,赞助时请写上您的用户名。
支付宝直接捐助帐号oracle_lee@qq.com 感谢支持!
喜欢 (0)or分享 (0)