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 相关文章推荐
IIS环境下快速安装、配置和调试PHP5.2.0
Dec 17 PHP
坏狼php学习 计数器实例代码
Jun 15 PHP
fetchAll()与mysql_fetch_array()的区别详解
Jun 05 PHP
ThinkPHP中自定义目录结构的设置方法
Aug 15 PHP
PHP中使用BigMap实例
Mar 30 PHP
php实现TCP端口检测的方法
Apr 01 PHP
Laravel 5框架学习之Eloquent 关系
Apr 09 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
PHP使用pear实现mail发送功能 windows环境下配置pear
Apr 15 PHP
使用PHPMailer发送邮件实例
Feb 15 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
php封装的mongodb操作类代码
Aug 06 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
PHP对象相互引用的内存溢出实例分析
2014/08/28 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
如何将一个String和多个String值进行比较思路分析
2013/04/22 Javascript
javascript实现倒计时N秒后网页自动跳转代码
2014/12/11 Javascript
node.js中的fs.unlinkSync方法使用说明
2014/12/15 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
AngularJS 应用身份认证的技巧总结
2016/11/07 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
详解vue-router2.0动态路由获取参数
2017/06/14 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
JS点击动态添加标签、删除指定标签的代码
2018/04/18 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
python获取一组汉字拼音首字母的方法
2015/07/01 Python
浅析python中的分片与截断序列
2016/08/09 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
CSS3制作炫酷带方向感应的鼠标滑过图片3D动画
2016/03/16 HTML / CSS
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
《恐龙》教学反思
2014/04/27 职场文书
运动会加油口号
2014/06/07 职场文书
党员自我剖析材料
2014/08/31 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS