微信公众号自定义回复(关键词回复:文本消息、图文消息)

要回复客户发到微信公共号的消息,首先要获取用户发来的消息,

接收地址就是微信公众号基本配置里写的服务器地址所在的文件地址;

 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];   //微信返回的信息。包含用户所发的消息

 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);  //解析xml的类
        $type = (string)$postObj->MsgType;   //r返回信息的类型,event 是关注;text是文本消息

 $fromUsername = $postObj->FromUserName;       //谁发来的:openid
            $toUsername = $postObj->ToUserName            //给谁发的:服务器id

  $keyword = trim($postObj->Content);       //发送的消息的具体内容

=============文本消息============


下面开始准备回复的参数;

$msgType = "text";  //回复的消息类型

$time = time();    //回复的时间

$contentStr=' 有什么需要帮助的吗? ';     回复的内容

 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);    组成回复信息

  echo $resultStr;

效果如图所示;微信公众号自定义回复(关键词回复:文本消息、图文消息)


=============图文消息============

  $title1='标题';
           $description1='描述';
           $picurl = "http://doing.demenk.com/dxshop/mobile/".$value['img'];  //图片绝对地址
           $url = 'www.baidu.com';      //点击跳转地址
            $itemTpl = "<item>
                       <Title><![CDATA[%s]]></Title>
                       <Description><![CDATA[%s]]></Description>
                       <PicUrl><![CDATA[%s]]></PicUrl>
                       <Url><![CDATA[%s]]></Url>
                        </item>";
            $item_str = sprintf($itemTpl, $title1, $description1, $picurl,  $url);
            $xmlTpl = "<xml>
               <ToUserName><![CDATA[%s]]></ToUserName>
               <FromUserName><![CDATA[%s]]></FromUserName>
               <CreateTime>%s</CreateTime>
               <MsgType><![CDATA[news]]></MsgType>
               <ArticleCount>%s</ArticleCount>
               <Articles>
$item_str    </Articles>
                </xml>";
            $result = sprintf($xmlTpl, $fromUsername, $toUsername, time(), 1);
            echo $result;