本地调试微信JSAPI支付,JSAPI支付下单,一切正常,拿到了微信相应的prepay_id。
但是把调试代码发布后,却总是报issue:"sign not match"的错误。为了仔细研究到底差异在哪里,我特地调整了返回参数,将传递给微信的参数以及签名要求的body分别打印了出来,没有发现有什么不同。请各位踩坑人帮忙看看问题在哪。
这是线上通过vConsole打印的返回异常数据
这是线上通过vConsole打印的传递给微信的参数
这是本地调试的正常返回数据。展开部分就是传递给微信的参数
Diligent_UI - 【插件开发】【专治疑难杂症】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=193663(微信搜索飘逸科技UI小程序直接体验)】【骗子请绕道】问题咨询请加QQ群:120594820,代表作灵感实用工具小程序
我看到错误信息里面都有message,拿着那个错误去百度试试
capfer (作者)
微信给的错误只是这一行:“message:"签名错误,请检查后再试"”,或者你是指“code: "SIGN_ERROR"”?这两行想必都不是什么有意义的错误语句。我觉得详情里面的“issue: "sign not match"”这才是关键,但是都找不到有效的信息。
2024-05-30 06:41
capfer (作者)
我把线上参与签名的原始参数打印出来,放到本地请求。查看微信需要的请求头Authorization以及里面的signature,两者一模一样,但是本地的微信就能返回成功,线上的一如既往是失败。
2024-05-30 06:44