微信公眾平台API測試——接收文本消息


一、簡介

     當普通微信用戶向公眾賬號發消息時,微信服務器將用戶發送的消息封裝成XML數據包,通過POST消息發送到開發者的URL上。

     微信服務器在五秒內收不到服務器的響應會斷掉連接,並且重新發起請求,總共重試三次。關於重試的消息排重,推薦使用msgid排重。

     假如服務器無法保證在五秒內處理並回復,可以直接回復空串,微信服務器不會對此作任何處理,並且不會發起重試。

當前支持如下的普通消息:

  • 1 文本消息
  • 2 圖片消息
  • 3 語音消息
  • 4 視頻消息
  • 5 地理位置消息
  • 6 鏈接消息

二、適用場景

    普通微信用戶通過微信給公眾賬號發送的文本消息,微信服務器即封裝為此文本消息格式發送到開發者URL。

 

三、消息格式說明

<xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName> 
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
 </xml>
參數 描述
ToUserName 開發者微信號
FromUserName 發送方帳號(一個OpenID)
CreateTime 消息創建時間 (整型)
MsgType text
Content 文本消息內容
MsgId 消息id,64位整型

四、代碼示例

<?php
/**
  * wechat php test
  */

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->responseMsg();

class wechatCallbackapiTest
{
    public function responseMsg()
    {

        //get post data, May be due to the different environments
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

        //extract post data
        if (!empty($postStr)){
                
                $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $time = time();
                $textTpl = "<xml>
                            <ToUserName><![CDATA[%s]]></ToUserName>
                            <FromUserName><![CDATA[%s]]></FromUserName>
                            <CreateTime>%s</CreateTime>
                            <MsgType><![CDATA[%s]]></MsgType>
                            <Content><![CDATA[%s]]></Content>
                            <FuncFlag>0</FuncFlag>
                            </xml>";             
                if(!empty( $keyword ))
                {
                    $msgType = "text";
                    $contentStr = "You input message : " . $keyword;
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                }else{
                    echo "Input something...";
                }

        }else {
            echo "";
            exit;
        }
    }

}

?>


五、消息測試

通過微信公眾平台接口調試工具可以很方便的調試接收接口。

填寫好對應的字段信息,點擊檢查問題,即可對接收接口進行調試。

 

收到相應后,頁面下方會將返回結果顯示出來,紅色框中的就是返回的消息,里面附帶了發送的消息:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM