問題:
接入微信支付發(fā)放普通紅包接口時睛藻,明明簽名是驗證通過的怀樟,卻提示簽名錯誤薛训,微信給出四點原因:
1、沒有使用商戶平臺設(shè)置的商戶API密鑰進行加密(有可能之前設(shè)置過密鑰辈毯,后來被修改了坝疼,沒有使用新的密鑰進行加密)。
2谆沃、加密前沒有按照文檔進行參數(shù)排序(可參考文檔)
3钝凶、把值為空的參數(shù)也進行了簽名⊙溆埃可到(http://mch.weixin.qq.com/wiki/tools/signverify/ )驗證腿椎。
4桌硫、如果以上3步都沒有問題,把請求串中(post的數(shù)據(jù))里面中文都去掉啃炸,換成英文铆隘,試下,看看是否是編碼問題南用。(post的數(shù)據(jù)要求是utf8)
這四點都滿足了膀钠,通過每次寫的xml數(shù)據(jù)用微信支付接口簽名校驗工具驗證都是通過,可是發(fā)請求返回的總是簽名錯誤裹虫。
原因:
找了一小時肿嘲,終于找到了原因,發(fā)請求total_amount填的是1.5筑公,誤以為單位是元雳窟,其實total_amount的單位是整型,單位是分匣屡。
解決方法:
將total_amount改為整型即可封救。