微信小程序后臺配置消息服務器時報錯:“Token校驗失敗,請檢查確認”
image.png
我服務器端是用的java的springboot框架,本以為直接return字符串就可以了:
@RequestMapping(value = "/",method=RequestMethod.GET)
public String checkWeixinValid(@RequestParam(name="signature")String signature,
@RequestParam(name="timestamp")String timestamp,
@RequestParam(name="nonce")String nonce,
@RequestParam(name="echostr")String echostr){
// .......
return echostr;
}
但這樣會一直報上述錯誤。
后來發現返回的字符串會多出倆雙引號,比如: "2205560651034517463"。
找了一下原因,定位到我配置的messageConvert,使用了fastjson用來處理json。但是,當它解析一串字符串時,會加上雙引號。為避免這個問題,可以在它之前加入處理字符串的convert,比如:StringHttpMessageConverter
,這樣字符串就不會由fsatjson再加工
了。
事后總結:
找這么個問題花了我不少時間,期初我一直以為是微信服務的問題,光刷新它的頁面就不下5次。
其實,微信經過這么多年大用戶量的考驗,它的服務已經很健壯了,有bug的情況極少。當出問題時首先還是要想是不是自己代碼的問題。
從本源入手,要有懷疑精神,但是要有一定的實事依據做基礎,憑空懷疑,就太武斷了。
特此記錄下來,吸取教訓。