微信支付服務端需要對微信官方的統一下單接口發送請求獲取prepayId作為app端調用支付的憑證,如果返回簽名錯誤,首先排查代碼層面的錯誤。
方法:使用微信官方的簽名算法檢驗。
地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1
提示:其他瀏覽器有時候會強制跳到登錄頁面,推薦使用谷歌瀏覽器
XML來源在代碼層面拼接好后 打印到控制臺上獲取。
注意:選項是MD5+XML
商戶key:不是appid,而是api密鑰。
檢驗通過,說明代碼層面的算法沒問題,代碼層面的懷疑徹底解除,這下只有三個參數的問題。
微信支付只需要appid 商戶號和api密鑰 ,其他的一概不用。
Appid和商戶號來源自申請通過的一封郵件
為了保密我只截取了左邊半張圖,這里的微信支付商戶號是商戶號,應用APPID就是我們用到的appid,以后隨著時間郵件內容可能會發生變化,但這個兩個肯定有。
接下來就是本文的重點了,我也是栽在這里。
API密鑰:三個參數中最重要的一個,生成要各種繁瑣的步驟,通過n次短信校驗,最終才可以生成,具體參看api文檔,我不多說,只講重點。
首先:?API密鑰?長度必須32位 大小寫和數字的組合,但不代表這樣就可以使用,能通過微信的規則 同樣不代表可以使用。
其次:?設置密鑰的時候 要看左邊的列表商戶信息中的微信支付商戶號id是否和郵件中的一樣!!!
不一樣設置上萬次也沒有用,一定要和后臺中商戶信息的微信支付商戶號的id相同!!
最終: 接上面的 手動輸入api密鑰,微信這邊可以通過,但不代表可以使用,服務端照樣報錯,記住 一定要使用線上密碼生成工具,否則可以使用的概率和買彩票差不多。
推薦一個工具
地址:https://suijimimashengcheng.51240.com
和我選擇一樣即可,最后一個選項特殊符號不要勾選,長度選擇32位,如果網址失效,百度找其他的生成工具是一樣的。