Home > php教程 > php手册 > body text

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

WBOY
Release: 2016-06-02 09:13:44
Original
1445 people have browsed it

微信开发的时候,发现有个重要的变量$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+"); 
    。。。。。 
}
Copy after login

发现$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.phprm.com353512</MsgId> 
</xml>
Copy after login

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>
Copy after login

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

$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);  
}
Copy after login


本文链接:

收藏随意^^请保留教程地址.

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template