课程中心 问答&分享 读书 注册、登录 关闭菜单
《微信公众号开发权威教程》
目录
第一章 课程介绍及环境部署 课程介绍及环境部署 第二章 开发者模式接入及消息回复 2.1 开发者模式接入 2.2 接收客户消息及openId 2.3 回复文本消息 2.4 回复图文消息 2.5 封装slog函数记录接口信息 第三章 获取接口调用凭据 3.1 基础知识 - curl 3.2 获取access token 3.3 获取微信服务器IP地址 第四章 接收事件推送 4.1 关注/取消关注事件 4.2 上报地理位置事件 第五章 菜单创建及菜单点击事件 5.1 接口形式创建自定义菜单 5.2 自定义菜单点击事件的识别 第六章 微信网页开发 6.1 微信网页授权-微信登录 6.2 微信JS-SDK介绍 6.3 微信JS-SDK部署 6.4 分享接口的实现 6.5 图片接口 6.6 音频接口 第七章 素材管理 7.1 新增临时素材 7.2 获取临时素材 7.3 新增永久素材 7.4 获取素材列表及素材总数 7.5 删除永久素材 第八章 微信盖楼游戏 8.1 盖楼游戏原理 8.2 盖楼游戏源码 第九章 天气查询 9.1 百度免费天气API介绍 9.2 微信公众号天气查询开发
2.2 接收客户消息及openId

当普通微信用户向公众账号发消息时,微信服务器将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


CopyRight © 2011 - 2016 Hcoder.net 陕ICP备14004669号-2
客服QQ : 1265928288