php版微信开发之接收消息版微信开发之接收消息,自动判断及回复相应消息的方法自动判断及回复相应消息的方法
本文实例讲述了php版微信开发之接收消息,自动判断及回复相应消息的方法。分享给大家供大家参考,具体如下:
微信的api现在己经强大到可以随意调用我们网站或指定数据库的内容进行自能回复现推送消息了,这里就来给大家介绍一个微
信开发的笔记.
发送1,2,3,7测试相应的消息,菜单模式需要升级为服务号,或者订阅人数超过500以上.
1. 用户发送的消息都是通过你提交的开发者URL来接收,这里订阅号就可以搞定,发送过来的都是xml格式数据,需要解析,代码如
下:
$data = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!emptyempty($data)) {//接收消息并处理
$xml = (array)simplexml_load_string($data, ‘SimpleXMLElement', LIBXML_NOCDATA);
return $xml;
}
回复也是需要返回XML的数据格式.
2. 主动发送给用户消息,查询用户信息,创建自定义菜单(现在订阅号也可以用),以及一些高级功能,都是需要获取appid 和
AppSecret 以便得到 access_token.
access_token 这东西,除接收信息,每个接口都要用到,access_token 的时间为 7200毫秒过期需要重新获取.
更多请参考:http://mp.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5.
目前我已经实现了,接收消息,自动判断回复相应消息新闻,创建自定义菜单,点击自定义菜单后执行相应操作,用户列表之类,感觉
目前开发模式和订阅模式没什么区别.
这里有一个测试回复的测试例子,代码如下:
<?php
/**
* wechat php test
*/
//define your token
define("TOKEN", "你的申请上的token");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
//valid signature , option
if($this->checkSignature()){
$this->responseMsg();
exit;
}
}
public function responseMsg()
{
//get post data, May be due to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//extract post data
if (!emptyempty($postStr)){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$msgType = "text";
$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>";
if(!emptyempty( $keyword ))
{
$contentStr = $this->keyrep($keyword);
if( emptyempty($contentStr) )
评论0