回复消息内容

2017-06-19  本文已影响0人  海藻web开发

原理介绍
接收到客户消息后就可以回复可以客户一个消息,实现方法:接收到消息数据后返回给微信服务器一个xml文本即可。Xml格式:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[你好]]></Content>
</xml>
  参数                                            描述

ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType text
Content 文本消息内容

函数封装

//回复文本消息
public function reTextMsg($msg){
    $xml = '<xml><ToUserName><![CDATA['.$this->openId.']]></ToUserName><FromUserName><![CDATA['.$this->ourOpenId.']]></FromUserName><CreateTime>'.time().'</CreateTime>
<MsgType><![CDATA[text]]></MsgType><Content><![CDATA['.$msg.']]></Content></xml>';
    echo $xml;
}

完成代码

<?php
/**
  * wechat php test
  */

//define your token
define("TOKEN", "wxtext2017");

class weChat{
    public $postObj;      //接收到的xml对象
    public $openId;       //客户的openId
    public $ourOpenId;    //我方公众号的openId
    //构造函数用于接收消息
    public function __construct(){
        if(!empty($GLOBALS["HTTP_RAW_POST_DATA"])){
            $postStr=$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;
                }
    }
    //回复文本消息
    public function reTextMsg($msg){
            $xml='<xml><ToUserName><![CDATA['.$this->openId.']]></ToUserName><FromUserName><![CDATA['.$this->ourOpenId.']]></FromUserName><CreateTime>'.time().'</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA['.$msg.']]></Content></xml>';
            echo $xml;
    }
}
$wechatObj = new weChat();
//回复文本消息
$wechatObj->reTextMsg('不论你说什么我都回复这个');
?>
上一篇 下一篇

猜你喜欢

热点阅读