首页 课程中心 问答&分享 读书 公众号框架 HUI H.JS 开放源 登录 & 注册
 《微信公众号开发权威教程》

当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。我们需要对接收的XML进行解析获取关键数据: 发送者的openId 消息类型、消息内容等。


获取客户发送的消息

增加构造函数获取消息,测试消息接收。完整代码:

<?php
define("TOKEN"    , "wxtest2016");
$wechatObj = new weChat();
//接收消息的一个测试
$data = "客户的消息类型为: {$wechatObj->msgType}, 
客户的openId: {$wechatObj->openId}, 
我方公众号的openId: {$wechatObj->ourOpenId}, 
客户的消息内容:{$wechatObj->postObj->Content}
";
file_put_contents('log.txt', $data);
class weChat{
    public $postObj;      //接收到的xml对象
    public $openId;       //客户的openId
    public $ourOpenId;    //我方公众号的openId
    public $msgType;      //客户消息的类型
    //构造函数用于接收消息
    public function __construct(){
        if(!empty($GLOBALS["HTTP_RAW_POST_DATA"])){
	    //将xml转换成对象
	    libxml_disable_entity_loader(true);
	    $this->postObj      = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
	    $this->openId       = $this->postObj->FromUserName;
	    $this->ourOpenId    = $this->postObj->ToUserName;
	    $this->msgType      = $this->postObj->MsgType;
        }
    }
}


上传并测试

微信扫描开发者测试公众号,回复消息即可。如果成功log.txt文本中会保存接收到的客户消息信息。


遇到问题使用接口调试工具

调试地址: http://mp.weixin.qq.com/debug


书籍目录  (请点击阅读)