1、沒有使用商戶平臺設置的商戶API密鑰進行加密(有可能之前設置過密鑰,後來被修改了,沒有使用新的密鑰進行加密)。
2、加密前沒有按照文檔進行參數排序(可參考文檔)
3、把值為空的參數也進行了簽名。可到(/wiki/tools/signverify/ )驗證。
4、如果以上3步都沒有問題,把請求串中(post的數據)裏面中文都去掉,換成英文,試下,看看是否是編碼問題。(post的數據要求是utf8)
這四點都滿足了,通過每次寫的xml數據用 微信支付接口簽名校驗工具 驗證都是通過,可是發請求返回的總是簽名錯誤。
找了壹小時,終於找到了原因,發請求total_amount填的是1.5,誤以為單位是元,其實total_amount的單位是整型,單位是分。
將total_amount改為整型即可。