微信支付服务商签名验证无误,可是统一下单后服务器返回【签名错误】

微信支付服务商签名验证无误,可是统一下单后服务器返回,算法

一样的代码,采用普通商户模式,一切正常,采用服务商受理模式就签名错误,非常无奈。安全

普通商务模式,统一下单提交数据以下,能够正常支付:服务器

<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

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

 

至此问题解决了,但愿对你们有帮助

相关文章
相关标签/搜索