用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

开发微信公众平台接口参数调试-判断用户行为

时间:2015-01-23  来源:西部数据  作者:西部数据

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

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

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

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

  1. <xml><ToUserName><![CDATA[gh_a64528aca3b]]></ToUserName> 
  2. <FromUserName><![CDATA[oSgH_jveTxJSlFK_6QSiGeVaSyk]]></FromUserName> 
  3. <CreateTime>1394705044</CreateTime> 
  4. <MsgType><![CDATA[text]]></MsgType> 
  5. <Content><![CDATA[ha]]></Content> 
  6. <MsgId>5990212551746www.phpfensi.com353512</MsgId> 
  7. </xml> 

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

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

  1. <xml><ToUserName><![CDATA[gh_a5218aca3b]]></ToUserName> 
  2. <FromUserName><![CDATA[oSgH_jveTxJSlFK_6QSiGeVyk]]></FromUserName> 
  3. <CreateTime>1394706271</CreateTime> 
  4. <MsgType><![CDATA[event]]></MsgType> 
  5. <Event><![CDATA[subscribe]]></Event> 
  6. <EventKey><![CDATA[]]></EventKey> 
  7. </xml> 

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

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

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

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

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

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

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

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

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

PHP实例代码如下:

  1. function writeover2($filename,$data,$method="rb+",$iflock=1)  
  2. {  
  3.     @touch($filename);/*文件不存在则创建之.可以采用file_exists验证并其他创建文件函数代替.测试结果效率相当*/  
  4.     $handle=@fopen($filename,$method);  
  5.     if($iflock){  
  6.         flock($handle,LOCK_EX);  
  7.     }  
  8.     fwrite($handle,$data);  
  9.     if($method=="rb+") ftruncate($handle,strlen($data));  
  10.     fclose($handle);  
  11. }
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门