介紹一個簡單的在本機調試微信公衆號的方法。
在開始介紹方法之前,我們需要先了解當我們在手機端使用公衆號時,我們是怎樣收到響應的:
1,我們在手機端關注一個公衆號/或者對公衆號發送消息,這時候微信會根據我的操作生成響應xml請求。比如我們關注一個公衆號的這個操作,就會觸發微信生成如下的這樣一個xml請求:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
</xml>
其中各字段代表的含義都可以從公衆平臺處找到(重點是MsgType和Event)。
微信生成這個xml請求以後,會將它發送到我們的服務器。
2, 服務器在接收到該請求後,生成對應的響應xml(據說會先轉給微信服務器),發回給我們手機端的微信。比如對應如上的請求xml,生成如下的響應xml:
<xml>
<ToUserName><![CDATA[FromUser]]></ToUserName>
<FromUserName><![CDATA[toUser]]></FromUserName>
<CreateTime>1398773251</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>1</ArticleCount>
<Articles>
<item>
<Title><![CDATA[歡迎關注xxx]]></Title>
<Description><![CDATA[我們將通過本微信賬號及時通知您本店的相關優惠活動哦親~回覆以下關鍵字查看更多信息:
回覆【1】,菜單介紹
回覆【2】,招牌推薦
回覆【3】,近期優惠
回覆【4】,線上訂餐]]></Description>
<PicUrl><![CDATA[http://xxxxxxxxxxxx.jpg]]></PicUrl>
<Url><![CDATA[http://xxxxxxxx/index.php]]></Url>
</item>
</Articles>
</xml>
由此可知,想要達成在本機調試開發微信公衆號,我們的本機需要能完成兩項任務:
1. 可以解析php。如微信公衆平臺提供的示例,是使用php腳本的,所以如果我們的響應文件正是使用的php,那麼本機需要能夠解析php。這個當然可以通過wampserver來達到目的。
2.能夠post我們敲打出來的xml請求並接收對應的xml響應。這個也不難,可以通過fiddler或者更簡單的,通過ff下安裝插件poster來達到目的。
下面會給出使用ff的poster來實現的一個示例:
方法如上圖說明。如果不想本機調試,當然也可以在url填寫自己的服務器對應的php地址,然後同樣在點擊post戶會收到響應,如下:
能收到正常的響應,就說明我們的程序是沒有問題的。
當然,也可以通過萬能的fiddler來發包:
對應的,查看收到的包,雙擊該條在fiddler中被發出去的http請求,就能夠查看到響應包: