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

 更新时间:2016年09月23日 11:27:12   作者:smiling  
这篇文章主要介绍了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验证并其他创建文件函数代替.测试结果效率相当*/
 $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编码与转码操作技巧汇总》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

相关文章

  • php获取文件夹路径内的图片以及分页显示示例

    php获取文件夹路径内的图片以及分页显示示例

    这篇文章主要介绍了php获取文件夹路径内的图片以及分页显示的示例,需要的朋友可以参考下
    2014-03-03
  • 解决laravel查询构造器中的别名问题

    解决laravel查询构造器中的别名问题

    今天小编就为大家分享一篇解决laravel查询构造器中的别名问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • Yii2针对指定url的生成及图片等的引入方法小结

    Yii2针对指定url的生成及图片等的引入方法小结

    这篇文章主要介绍了Yii2针对指定url的生成及图片等的引入方法,针对常用的URL格式及图片路径操作结合实例进行了对比分析,需要的朋友可以参考下
    2016-07-07
  • 如何使用Gitblog和Markdown建自己的博客

    如何使用Gitblog和Markdown建自己的博客

    这篇文章主要交大家如何使用Gitblog和Markdown建自己的博客,如何大家拥有服务器或者云平台提供的云主机,我推荐大家使用Linux+ Nginx 来运行Gitblog,如果大家目前只有Apache环境也可以,需要的朋友可以参考下
    2015-07-07
  • 分享ThinkPHP3.2中关联查询解决思路

    分享ThinkPHP3.2中关联查询解决思路

    这篇文章主要介绍了ThinkPHP3.2中关联查询解决思路的相关资料,需要的朋友可以参考下
    2015-09-09
  • PHP链接MySQL的常用扩展函数

    PHP链接MySQL的常用扩展函数

    这篇文章主要介绍了PHP链接MySQL的常用扩展函数,需要的朋友可以参考下
    2014-10-10
  • Laravel框架生命周期与原理分析

    Laravel框架生命周期与原理分析

    这篇文章主要介绍了Laravel框架生命周期与原理,结合实例形式总结分析了Laravel框架针对用户请求响应的完整运行周期、流程、原理,需要的朋友可以参考下
    2018-06-06
  • PHP使用Memcache时模拟命名空间及缓存失效问题的解决

    PHP使用Memcache时模拟命名空间及缓存失效问题的解决

    这篇文章主要介绍了PHP使用Memcache时模拟命名空间及缓存失效问题的解决,这里谈到的缓存失效主要针对高并发场景下取不到缓存的情况,需要的朋友可以参考下
    2016-02-02
  • Yii 2中的load()和save()示例详解

    Yii 2中的load()和save()示例详解

    这篇文章主要给大家介绍了关于Yii 2中的load()和save()的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用yii2具有一定的参考学习价值,需要的朋友们下面跟着小编来一起看看吧。
    2017-08-08
  • PHP实现微信发红包程序

    PHP实现微信发红包程序

    微信发红包是比较流行的一件事情,老老少少都会使用微信发红包,接下来,小编给大家分享在生活中常碰到的一个php实现微信发红包程序的算法,希望这个程序对大家在做微信卡发的朋友有所帮助
    2015-08-08

最新评论