微信受權,重定向兩次

作微信支付的時候,須要微信受權拿openIdhtml

大概流程就是,把用戶重定向到微信一個地址,而後微信帶着code重定向回來,而後拿code換用戶的openIdandroid

這期間發生了一件比較有意思的事情,android版的微信受權失敗致使無法支付,看了一下服務器上報錯以下服務器

System.Collections.Generic.KeyNotFoundException: 給定關鍵字不在字典中。
   在 System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   在 WxPayAPI.JsApiPay.GetOpenidAndAccessTokenFromCode(String code)
{"errcode":40163,"errmsg":"code been used, hints: [ req_id: tivCza01272165 ]"}微信

 

我支付代碼是和官方demo同樣的,基本沒改。微信支付

而後看到這個錯誤,我第一反映是打一下日誌,我把受權頁面打上了日誌,記錄了一下訪問時間和訪問的url完整地址,也就是包含參數部分的。url

而後再把用code換openId的result也用日誌記錄了。日誌

而後發現code

我請求拿code後,微信同一個code給我重定向回來了兩次,第一次我換取到了openId,第二次沒換到openI的,錯誤內容是 code has been used,也就是code被使用過了。htm

因此問題確定是出在兩次重定向。可是爲何會同一個code重定向兩次?我搜了一下,不少開發同窗都碰到過,有的人請求受權的時候加了一個參數  &connect_redirect=1 ,我看了一下不少人的反饋,有些人是能夠解決問題的,有些人依然沒解決,好比我。。。。。blog

而後搜來搜去,還有人在園子裏說是360搞的鬼,見帖子: http://www.cnblogs.com/Can-daydayup/p/10128324.html

而後我服務器也安裝了 360 ,而後我一退出就不會了。因此我想問問@MJ0011,爲何咱們服務器發起請求,你360要作一次?

360能給個說法麼?這是要解決什麼問題因此要重發一個請求?

相關文章
相關標籤/搜索