微信支付服務商簽名驗證無誤,可是統一下單後服務器返回【簽名錯誤】

微信支付服務商簽名驗證無誤,可是統一下單後服務器返回,算法

一樣的代碼,採用普通商戶模式,一切正常,採用服務商受理模式就簽名錯誤,非常無奈。安全

普通商務模式,統一下單提交數據以下,能夠正常支付:服務器

<com.tencent.protocol.wxpay_protocol.WxPayReqData>
  <appid>wx4a7********3f</appid>
  <mch_id>1********001</mch_id>
  <sub_appid></sub_appid>
  <sub_mch_id></sub_mch_id>
  <device_info>WEB</device_info>
  <nonce_str>mi068g76xh8sqjiwq9pn5fhgx0xc02gu</nonce_str>
  <sign>9A1A3EE2FDB8A654BEE511DFB51632CD</sign>
  <body>11111</body>
  <detail>flyjee</detail>
  <attach></attach>
  <out_trade_no>161018T1637310011323101119</out_trade_no>
  <fee_type>CNY</fee_type>
  <total_fee>1</total_fee>
  <spbill_create_ip>1.84.114.244</spbill_create_ip>
  <time_start></time_start>
  <time_expire></time_expire>
  <goods_tag></goods_tag>
  <notify_url>http://********.com/payment/wxpay/notify</notify_url>
  <trade_type>NATIVE</trade_type>
  <product_id>T163731001</product_id>
  <limit_pay></limit_pay>
  <openid></openid>
  <sub_openid></sub_openid>
</com.tencent.protocol.wxpay_protocol.WxPayReqData>

服務商受理模式,統一下單提交數據以下,沒法正常支付,服務器返回簽名失敗:微信

<com.tencent.protocol.wxpay_protocol.WxPayReqData>
  <appid>wx4**********d3f</appid>
  <mch_id>1**********02</mch_id>
  <sub_appid></sub_appid>
  <sub_mch_id>14**********02</sub_mch_id>
  <device_info>WEB</device_info>
  <nonce_str>syxwhyaimb9jdmwu9p567g8rafgfhxy9</nonce_str>
  <sign>45348143E73EFD6B5531ADEEB385E1A8</sign>
  <body>11111</body>
  <detail>flyjee</detail>
  <attach></attach>
  <out_trade_no>161018T207610011419101219</out_trade_no>
  <fee_type>CNY</fee_type>
  <total_fee>1</total_fee>
  <spbill_create_ip>1.84.114.244</spbill_create_ip>
  <time_start></time_start>
  <time_expire></time_expire>
  <goods_tag></goods_tag>
  <notify_url>http://**********.com/payment/wxpay/notify</notify_url>
  <trade_type>NATIVE</trade_type>
  <product_id>T20761001</product_id>
  <limit_pay></limit_pay>
  <openid></openid>
  <sub_openid></sub_openid>
</com.tencent.protocol.wxpay_protocol.WxPayReqData>

簽名驗證結果以下:app

以上可見,簽名自己算法都是沒有問題的。若是mch_id,sub_mch_id,appid等出現錯誤,也會在微信服務器驗證簽名以前首先驗證,並報錯返回的。測試

通過兩天折磨,百般嘗試,度娘谷歌,都無果。今天進行參數及業務對比發現,系統參數不會有錯了,業務參數也不該該有錯,開始懷疑Key的問題,以前一直用的是普通商戶對應微信服務號的key,一直認爲和升級成服務商後對應的應該是一個。微信支付

開始檢查,服務商平臺--帳戶中心--API安全,在這裏找到了key設置的地方。以下圖,根本就沒有說當前的key是什麼,也沒有說要設置,也沒有任何接口說要使用這裏的key,整個就是一個坑。url

點擊「設置密鑰」,進入後,將密鑰設置的和原來的密鑰同樣。code

 

測試,經過了!!竟然經過了!!!xml

這就是巨大的坑啊,微信接口太不靠譜了。

 

至此問題解決了,但願對你們有幫助

相關文章
相關標籤/搜索