php版微信公众平台接口参数调试实现判断用户行为的方法


Posted in PHP onSeptember 23, 2016

本文实例讲述了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验证并其他创建文件函数代替.测试结果效率相当*/
 $handle=@fopen($filename,$method);
 if($iflock){
  flock($handle,LOCK_EX);
 }
 fwrite($handle,$data);
 if($method=="rb+") ftruncate($handle,strlen($data));
 fclose($handle);
}

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

PHP 相关文章推荐
15种PHP Encoder的比较
Apr 17 PHP
php chr() ord()中文截取乱码问题解决方法
Sep 08 PHP
php在字符串中查找另一个字符串
Nov 19 PHP
PHP中使用gettext来支持多语言的方法
May 02 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
PHP使用ob_start生成html页面的方法
Nov 07 PHP
php实现的css文件背景图片下载器代码
Nov 11 PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
php 中phar包的使用教程详解
Oct 26 PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
Sep 23 #PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 #PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 #PHP
php利用递归实现删除文件目录的方法
Sep 23 #PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 #PHP
php分页原理 分页代码 分页类制作教程
Sep 23 #PHP
php使用glob函数遍历文件和目录详解
Sep 23 #PHP
You might like
PHP4实际应用经验篇(5)
2006/10/09 PHP
?繁体转换的class
2006/10/09 PHP
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
浅析PHP绘图技术
2013/07/03 PHP
php自定义hash函数实例
2015/05/05 PHP
php传值和传引用的区别点总结
2019/11/19 PHP
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
js的回调函数详解
2015/01/05 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
jQuery实现checkbox全选的方法
2015/06/10 Javascript
对象题目的一个坑 理解Javascript对象
2015/12/22 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
详解Python中的Descriptor描述符类
2016/06/14 Python
python正则分析nginx的访问日志
2017/01/17 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
2018/12/05 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
HTML5新表单元素_动力节点Java学院整理
2017/07/12 HTML / CSS
清洁工表扬信
2014/01/08 职场文书
百年校庆节目主持词
2014/03/27 职场文书
财产保全担保书范文
2014/04/01 职场文书
工地质量标语
2014/06/12 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
春节慰问简报
2015/07/21 职场文书