本文主要是介绍php服务器 微信支付 验签失败,微信支付服务商签名验证无误,但是统一下单后服务器返回【签名错误】...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
微信支付服务商签名验证无误,但是统一下单后服务器返回,
同样的代码,采用普通商户模式,一切正常,采用服务商受理模式就签名错误,很是无奈。
普通商务模式,统一下单提交数据如下,可以正常支付:
wx4a7********3f
1********001
WEB
mi068g76xh8sqjiwq9pn5fhgx0xc02gu
9A1A3EE2FDB8A654BEE511DFB51632CD
flyjee
161018T1637310011323101119
CNY
1
1.84.114.244
http://********.com/payment/wxpay/notify
NATIVE
T163731001
服务商受理模式,统一下单提交数据如下,无法正常支付,服务器返回签名失败:
wx4**********d3f
1**********02
14**********02
WEB
syxwhyaimb9jdmwu9p567g8rafgfhxy9
45348143E73EFD6B5531ADEEB385E1A8
flyjee
161018T207610011419101219
CNY
1
1.84.114.244
http://**********.com/payment/wxpay/notify
NATIVE
T20761001
签名验证结果如下:
以上可见,签名本身算法都是没有问题的。如果mch_id,sub_mch_id,appid等出现错误,也会在微信服务器验证签名之前首先验证,并报错返回的。
经过两天折磨,百般尝试,度娘谷歌,都无果。今天进行参数及业务对比发现,系统参数不会有错了,业务参数也不应该有错,开始怀疑Key的问题,之前一直用的是普通商户对应微信服务号的key,一直认为和升级成服务商后对应的应该是一个。
开始检查,服务商平台--账户中心--API安全,在这里找到了key设置的地方。如下图,根本就没有说当前的key是什么,也没有说要设置,也没有任何接口说要使用这里的key,整个就是一个坑。
点击“设置密钥”,进入后,将密钥设置的和原来的密钥一样。
测试,通过了!!居然通过了!!!
这就是巨大的坑啊,微信接口太不靠谱了。
至此问题解决了,希望对大家有帮助
这篇关于php服务器 微信支付 验签失败,微信支付服务商签名验证无误,但是统一下单后服务器返回【签名错误】...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!