您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何使用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版微信公眾平臺接口參數調試實現判斷用戶行為”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。