你的服務(wù)器沒有正確響應(yīng)Token驗(yàn)證,請(qǐng)閱讀消息接口使用指南?微信?微信公眾平臺(tái)開發(fā)模式?平臺(tái) 消息?接口?啟用?URL Token
作者:
原文:?
?
你的服務(wù)器沒有正確響應(yīng)Token驗(yàn)證的解決方法
?
一、問題由來
在使用URL和Token啟用微信公眾平臺(tái)開發(fā)模式消息接口的時(shí)候,我們會(huì)碰到下面三種情況?
1.?你的服務(wù)器沒有正確響應(yīng)Token驗(yàn)證,請(qǐng)閱讀消息接口使用指南
這樣回頭檢查一下各項(xiàng)配置是否正確。如果確定配置沒有問題,請(qǐng)按下面的方法檢查
2. 請(qǐng)求URL超時(shí)
你的服務(wù)器在國(guó)外,或者服務(wù)器網(wǎng)速不給力,一般多試幾次就可以了。如果經(jīng)常這樣,就需要考慮更換服務(wù)器
3. 提交成功
?恭喜你,配置成功了。
我們來講解一下第一種的原因及解決方法。
?
?
二、問題分析
然后要了解的是開發(fā)模式為什么要使用Url和Token,使用url是為了讓微信服務(wù)器和你的服務(wù)器進(jìn)行通訊對(duì)話,從而達(dá)到開發(fā)模式下自動(dòng)回復(fù)的目的。而實(shí)現(xiàn)這個(gè)通訊,必須有相應(yīng)的程序?yàn)槟阃瓿蛇@個(gè)功能,而這個(gè)程序必須已經(jīng)開發(fā)完成并且放置于url路徑下面,當(dāng)你填寫完url和token的時(shí)候,微信服務(wù)器就會(huì)和你的服務(wù)器下的程序進(jìn)行一次認(rèn)證過程,認(rèn)證通過表明這個(gè)服務(wù)器是你的并且程序沒有問題。不然你填個(gè)不存在的url或者url下面?zhèn)€沒有相應(yīng)的接口功能,那是通不過的。
?
你可以先用下面的測(cè)試通過
URL: http://discuz.comli.com/test.php
Token: weixin
?
?
三、問題解決?
1. ?技術(shù)分析法
這次我們?cè)诖a里面加入跟蹤http記錄的方法來查看我們自己的服務(wù)器收到了請(qǐng)求沒有回應(yīng),還是微信根本沒有發(fā)請(qǐng)求過來。
通過調(diào)用系統(tǒng)環(huán)境變量$_SERVER,可以查看到HTTP請(qǐng)求的信息,其中兩項(xiàng)重要的是
把其加入代上面的代碼中,并且將其寫入到本地文件中來,全部代碼如下:
?
直接用瀏覽器打開url+log.html路徑,我的記錄如下:
2013-01-30 10:15:18 2013-01-30 10:15:18 REMOTE_ADDR:212.179.24.103 Unknown IP 2013-01-30 10:15:18 QUERY_STRING:
在微信中點(diǎn)擊提交一次,再一次生成記錄,如下:
2013-01-30 10:15:49 2013-01-30 10:15:49 REMOTE_ADDR:101.226..83 From WeiXin 2013-01-30 10:15:49 QUERY_STRING:signature=eded7463180edf6c13691398d0cb4c85fb0e23&echostr=5838479218127813673×tamp=1359100969&nonce=1359376876
從上可以看到,這次IP來自101.226..83,是微信的IP,我把這個(gè)IP加入到代碼中自行判斷了
?
現(xiàn)在可以根據(jù)下面的來檢測(cè)自己的問題在哪一個(gè)地方
如果沒有生成日志:
那是微信服務(wù)器都沒有聯(lián)系到你,需要檢查服務(wù)器是否可以通過公網(wǎng)訪問,URL路徑是否存在并且正確。
如果生成了日志:
如果你生成了日志,有REMOTE_ADDR和QUERY_STRING,查看IP是不是來自上海(目前微信服務(wù)器部署在上海電信機(jī)房),查看QUERY_STRING格式是否和官方指南中描述的類似,如果這些沒有問題,那先檢查Token填寫的是否和程序中的一致,再檢查程序是否有問題。
?
如果上面的方法你沒有看懂,或者無法解決該問題,建議你從微信公眾平臺(tái)的入門教程開始,學(xué)習(xí)一下微信公眾平臺(tái)開發(fā)的基礎(chǔ)
?,該教程的代碼和服務(wù)器搭配是可以正常通過驗(yàn)證的。
2.??付費(fèi)解決法
如果使用上面方法還是沒有解決你的痛苦,方倍工作室承接這一技術(shù)問題的解決。我們的聯(lián)系QQ:13386063
?
?
?