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 相关文章推荐
PHP生成便于打印的网页
Oct 09 PHP
有关 PHP 和 MySQL 时区的一点总结
Mar 26 PHP
简单的php写入数据库类代码分享
Jul 26 PHP
php牛逼的面试题分享
Jan 18 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
PHP加密解密类实例分析
Apr 20 PHP
Symfony2在Nginx下的配置方法图文教程
Feb 04 PHP
Linux下快速搭建php开发环境
Mar 13 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
PHP校验15位和18位身份证号的类封装
Nov 07 PHP
Yii框架引入coreseek分页功能示例
Feb 08 PHP
PHP中的Iterator迭代对象属性详解
Apr 12 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使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
Chosen 基于jquery的选择框插件使用方法
2012/05/30 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
React进阶学习之组件的解耦之道
2017/08/07 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
微信小程序当前时间时段选择器插件使用方法详解
2018/12/28 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
python logging类库使用例子
2014/11/22 Python
python正则表达式之作业计算器
2016/03/18 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
python利用百度AI实现文字识别功能
2018/11/27 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
django-rest-framework解析请求参数过程详解
2019/07/18 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
Python基础之变量基本用法与进阶详解
2020/01/03 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
python中setuptools的作用是什么
2020/06/19 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
英国健康和美容技术产品购物网站:CurrentBody
2019/07/17 全球购物
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
大学生优秀班干部事迹材料
2014/05/26 职场文书
罚站检讨书
2015/01/29 职场文书
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
Python进行区间取值案例讲解
2021/08/02 Python