这篇文章主要介绍了php版微信公众平台接口参数调试实现判断用户行为的方法,可判断出用户订阅、取消订阅、发送信息等行为,涉及微信公众平台接口参数调试的相关操作,需要的朋友可以参考下

本文实例讲述了php版微信公众平台接口参数调试实现判断用户行为的方法。分享给大家供大家参考,具体如下:

微信开发的时候,发现有个重要的变量$postObj,获得了一个xml结构装入的对象里因为用户发来的事件,之前只知道用户发送一个消息,我进行处理.

今天要弄个用户订阅就给一个消息的功能,却发现不知道如何判断用户是订阅的操作,还是取消订阅,还是发消息,代码如下:

public function responseMsg()
{
 global $db;
 //get post data, May be due to the different environments
 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
 $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
 writeover("msg.txt",$postStr."rn","a+");
 //。。。。。
}

发现$postStr是之前没有封装的字符串,直接打印,即可知道用户的行为了,测试输出的文件如下:

<xml><ToUserName><![CDATA[gh_a64528aca3b]]></ToUserName>
<FromUserName><![CDATA[oSgH_jveTxJSlFK_6QSiGeVaSyk]]></FromUserName>
<CreateTime>1394705044</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[ha]]></Content>
<MsgId>5990212551746www.phpfensi.com353512</MsgId>
</xml>

MsgType即可判断用户行为text表示用户输入了一条文本信息,如果是订阅,那么就是event 大家自己测试吧.

一个新用户关注公众账号发送的消息的例子,代码如下:

<xml><ToUserName><![CDATA[gh_a5218aca3b]]></ToUserName>
<FromUserName><![CDATA[oSgH_jveTxJSlFK_6QSiGeVyk]]></FromUserName>
<CreateTime>1394706271</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[]]></EventKey>
</xml>

这样就可以得到具体的事件类型了.

$msgtype = $postObj->MsgType;能判断用户的行为,后续的操作就方便多了.

附上写入日志文件的代码:

‘r' 只读方式打开,将文件指针指向文件头。

‘r+' 读写方式打开,将文件指针指向文件头。

‘w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

‘w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

‘a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

‘a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

PHP实例代码如下:

function writeover2($filename,$data,$method="rb+",$iflock=1)
{
 @touch($filename);/*文件不存在则创建之.可以采用file_exists验证并其他创建文件函数代替.测试结果效率相当*/
 [email protected]($filename,$method);
 if($iflock){
  flock($handle,LOCK_EX);
 }
 fwrite($handle,$data);
 if($method=="rb+") ftruncate($handle,strlen($data));
 fclose($handle);
}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP微信开发汇总》、《PHP编码与转码操作汇总》、《PHP网络编程总结》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作汇总》

希望本文所述对大家PHP程序设计有所帮助。

最新资讯
公牛IPO崎岖路:被诉侵权索赔10亿 存货增加毛利下降

公牛IPO崎岖路:被诉侵

公牛集团曾经无疑是插座、面板行业的龙头企业,曾几何时
富士康宣布威斯康星工厂将于2020年底之前投产

富士康宣布威斯康星工

富士康周一宣布,该公司计划于今年夏天开始建造其富士康
科创板“50+2”条款保护中小投资者利益

科创板“50+2”条款保

对于符合“50+2”条件的普通投资者,需要意识到科创板是
人民日报刊发倪光南文章:自主可控方得网络安全

人民日报刊发倪光南文

何为可控性?举个例子来说明。一个人买了一辆传统汽车,他
特斯拉要求员工“自愿”无偿加班帮助交付3万辆汽车

特斯拉要求员工“自愿

在特斯拉过去18个月进行了三轮裁员之后,哪怕是那些仍留
华尔街日报:请做好长期准备 Lyft可能要烧钱烧十年

华尔街日报:请做好长期

新浪美股讯Lyft本周正式开始认真地向投资者推销自己,但
最新文章
php基于Redis消息队列实现的消息推送的方法

php基于Redis消息队列

这篇文章主要介绍了php基于Redis消息队列实现的消息推
php使用curl模拟浏览器表单上传文件或者图片的方法

php使用curl模拟浏览

这篇文章主要介绍了php使用curl模拟浏览器表单上传文
safari下载文件自动加了html后缀问题

safari下载文件自动加

这篇文章主要介绍了safari下载文件自动加了html后缀问
ThinkPHP 3.2.3实现加减乘除图片验证码

ThinkPHP 3.2.3实现加

这篇文章主要为大家详细介绍了ThinkPHP 3.2.3实现加减
关于php unset对json_encode的影响详解

关于php unset对json_

这篇文章主要给大家介绍了关于php unset对json_encode
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机

关于PHP虚拟主机概念

PHP是一种HTML内嵌式的语言,是一种在端执行的嵌入HTML