微信公眾平臺開發之資料傳輸過程
阿新 • • 發佈:2019-02-14
當用戶發一條訊息到微信公眾號,該公眾號會返回相應的訊息給使用者,那麼這些訊息是經過什麼過程才返回到使用者的微信裡呢。
其實使用者傳送訊息開始,主要經過5個過程:
1、使用者傳送訊息傳輸到微信伺服器
2、微信伺服器將xml格式的資料傳輸到開發者設定的伺服器。
3、開發者解析xml資料並進行相應的處理,然後將返回資料封裝成xml格式。
4、開發者的伺服器返回資料給微信伺服器。
5、微信伺服器將資料返回給使用者。
如下圖:
個人的伺服器處理資訊步驟如下:
1、獲取微信伺服器推送過來的post資料(xml格式)
2、解析xml資料包
3、設定回覆模板
4、封裝訊息
5、想微信伺服器推送訊息
程式碼如下(php為例):
//$postArr = $GLOBALS['HTTP_RAW_POST_DATA'];//1,獲取到微信推送過來post資料(xml格式) $postArr = file_get_contents("php://input");//5.6版本開始摒棄HTTP_RAW_POST_DATA這個全域性變數,注意了 if (!empty($postArr)){ $postObj = simplexml_load_string($postArr, 'SimpleXMLElement', LIBXML_NOCDATA);//2、解析xml資料包 //使用者的openid $fromUserName = $postObj->ToUserName; $toUserName = $postObj->FromUserName; $createTime = time(); $msgType = trim($postObj->MsgType);//使用者發來的訊息型別 $content = $postObj->Content;//使用者發來的訊息內容(注意只是介紹接收text型別,其他型別如event還有其他資料) //3、設定回覆模板 $template ='<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> </xml>'; $responMsg='您發來的訊息是'.$content; $info =sprintf($template,$toUserName,$fromUserName,$createTime,$responMsg);//4、封裝訊息 echo $info;//5、返回訊息 }
總結:
以前瞭解了一下微信開發,做落了筆記,剛翻出來,希望不會過時。
此處簡單地實現了一個處理微信伺服器傳過來的資料的處理過程,具體並沒有更多複雜的程式碼,希望對出入微信開發坑的朋友有所幫助。
更多介面移步到官方文件。