首先,確保妳的微信微信官方賬號使用開發者模式,界面設置正確,可以正常收發普通消息。
先說壹下“微信官方賬號暫時無法提供服務,請稍後再試”消息的原因。
我們先來了解壹下微信的工作流程,如圖(開發者模式)。用戶發消息,先去騰訊的微信平臺,再通過妳的接口轉發到妳的服務器。妳的服務器處理完消息後,他返回給微信平臺,平臺轉發給用戶。
如果網絡和服務器都正常,並且妳的服務器收到的消息處理正確,那麽用戶就會收到相關信息。但是,如果您的服務器在信息處理過程中,由於網絡原因、服務器故障或程序問題導致信息返回失敗,騰訊微信平臺會向用戶返回“微信官方賬號暫時無法提供服務,請稍後再試”的提示。
如果排除了網絡和設備問題,用戶仍然收到這個錯誤提示,可以確定是用戶發來的信息。您的接口程序未能處理該消息。如果微信服務器在五秒內沒有收到響應,就會斷開連接重新發起請求,並且總是重試三次,也就是說,如果在五秒內沒有回復,就會重試,如果三次都沒有回復,就會向用戶返回錯誤信息。
如何解決這個問題?其實官方已經給出了解釋:如果服務器不能保證五秒內處理和回復,可以直接回復空字符串,微信服務器不會對此做任何處理,也不會發起重試。意思很明確。如果妳的程序不能在5秒內處理並返回平臺,直接給平臺發送壹個空字符串就可以了,平臺判斷有回復就不會給用戶發送錯誤提示。
但也有朋友不知道這個空字符串是什麽意思,官方解釋是指字節長度為0的空字符串,而不是XML結構中的內容字段為空。
我這裏用PHP代碼描述,如圖,回復中加了echo就是這樣。
但這只是標誌著平臺收到了,並沒有錯誤信息提示用戶。客戶沒有回復任何信息。如果還是要發給用戶,需要使用客服消息接口進行異步回復。