溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用php版微信公眾平臺接口參數(shù)調(diào)試實現(xiàn)判斷用戶行為

發(fā)布時間:2021-08-27 09:34:54 來源:億速云 閱讀:140 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了如何使用php版微信公眾平臺接口參數(shù)調(diào)試實現(xiàn)判斷用戶行為,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

具體如下:

微信開發(fā)的時候,發(fā)現(xiàn)有個重要的變量$postObj,獲得了一個xml結(jié)構(gòu)裝入的對象里因為用戶發(fā)來的事件,之前只知道用戶發(fā)送一個消息,我進行處理.

要弄個用戶訂閱就給推送一個消息的功能,卻發(fā)現(xiàn)不知道如何判斷用戶是訂閱的操作,還是取消訂閱,還是發(fā)消息,代碼如下:

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+");
 //。。。。。
}

發(fā)現(xiàn)$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 大家自己測試吧.

一個新用戶關(guān)注公眾賬號發(fā)送的消息的例子,代碼如下:

<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;能判斷用戶的行為,后續(xù)的操作就方便多了.

附上寫入日志文件的代碼:

‘r' 只讀方式打開,將文件指針指向文件頭。

‘r+' 讀寫方式打開,將文件指針指向文件頭。

‘w' 寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。

‘w+' 讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建之。

‘a(chǎn)' 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。

‘a(chǎn)+' 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之。

PHP實例代碼如下:

function writeover2($filename,$data,$method="rb+",$iflock=1)
{
 @touch($filename);/*文件不存在則創(chuàng)建之.可以采用file_exists驗證并其他創(chuàng)建文件函數(shù)代替.測試結(jié)果效率相當*/
 $handle=@fopen($filename,$method);
 if($iflock){
  flock($handle,LOCK_EX);
 }
 fwrite($handle,$data);
 if($method=="rb+") ftruncate($handle,strlen($data));
 fclose($handle);
}

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何使用php版微信公眾平臺接口參數(shù)調(diào)試實現(xiàn)判斷用戶行為”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI