1. 程式人生 > >微信支付統一下單,簽名錯誤(生成的簽名和測試工具生成的一樣還報錯)解決方法

微信支付統一下單,簽名錯誤(生成的簽名和測試工具生成的一樣還報錯)解決方法

微信支付統一下單,簽名錯誤的原因很多,解決方法就是一個個排除。

簽名生成的通用步驟如下:

第一步,設所有傳送或者接收到的資料為集合M,將集合M內非空引數值的引數按照引數名ASCII碼從小到大排序(字典序),使用URL鍵值對的格式(即key1=value1&key2=value2…)拼接成字串stringA。

特別注意以下重要規則:

  1. ◆ 引數名ASCII碼從小到大排序(字典序);
  2. ◆ 如果引數的值為空不參與簽名;
  3. ◆ 引數名區分大小寫;
  4. ◆ 驗證呼叫返回或微信主動通知簽名時,傳送的sign引數不參與簽名,將生成的簽名與該sign值作校驗。
  5. ◆ 微信介面可能增加欄位,驗證簽名時必須支援增加的擴充套件欄位

第二步,在stringA最後拼接上key得到stringSignTemp字串,並對stringSignTemp進行MD5運算,再將得到的字串所有字元轉換為大寫,得到sign值signValue。

key設定路徑:微信商戶平臺(pay.weixin.qq.com)-->賬戶設定-->API安全-->金鑰設定


可能原因:

1、APP或者公眾平臺的商戶號與微信商戶平臺的微信支付商戶號不一樣……

2、配置引數都沒問題了,生成的sign和測試工具生成的sign也一樣,還報簽名錯誤,這時就要看下自己加入的可選欄位的是否有問題,自己在生成的時候遇到兩個引數錯誤,導致的,一個是IP地址,一個是簽名方式,簽名方式預設是MD5就沒必要再加上這個欄位了。


最後附下微信支付相關工具包:

http://download.csdn.net/detail/qq_35624642/9712110