收藏
回答

支付中签约,获取预支付id报错签名错误?

签名校验通过了,结果还是报错<xml><return_code><![CDATA[FAIL]]></return_code>

<return_msg><![CDATA[签名错误]]></return_msg>

</xml>

调用的是:https://api.mch.weixin.qq.com/pay/contractorder

JSAPI方式,openId有传

appid:wx4ef75de5609f6986

最后一次编辑于  01-08
回答关注问题邀请回答
收藏

3 个回答

  • 微信支付技术助手8
    微信支付技术助手8
    01-08

    请按照以下几点进行排查:

    1、使用签名检查工具(https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1)校验签名算法是否有误

    2、确认秘钥是否有误(服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置,如果同一商户号调用其它接口成功可排除是秘钥问题)

    3、确认接口实际的请求参数与生成签名原串的参数一致,不能增加或缺少参数(可通过打印签名原串进行排查)

    4、确认参数的大小写,参数名与接口文档一致

    5、签名原串的参数值使用原始值,不需要encode

    6、接口需要使用UTF-8编码

    01-08
    有用
    回复 3
    • 岚杰
      岚杰
      01-09
      请求使用application/xhtml+xml;charset=UTF-8 可以吧
      01-09
      回复
    • 岚杰
      岚杰
      01-09
      参数里有个签约协议号,请问是随机数吗?
      01-09
      回复
    • 岚杰
      岚杰
      01-09
      已经按照签名算法那里检查过了,传的都是必填的参数,不过没有解决问题
      01-09
      回复
  • 岚杰
    岚杰
    01-17

    嗯,解决了,之前同事们做支付用的keykey无效

    01-17
    有用
    回复
  • 吴奕群
    吴奕群
    01-13

    api key重新获取一下

    01-13
    有用
    回复
登录 后发表内容
问题标签