收藏
回答

支付签名验证失败?

原先在开发的时候是可以支付的,只后再测试的时候显示支付签名验证失败,后台发起数据如下,

<xml>

<out_trade_no>************</out_trade_no>

<openid>*****************</openid>

<total_fee>3000000</total_fee>

<trade_type>JSAPI</trade_type>

<fee_type>CNY</fee_type>

<body>测试信息1</body>

<notify_url>192***********118</notify_url>

<spbill_create_ip>192**********160</spbill_create_ip>

</xml>

然后是前端调用api 发送的数据如下:

原先是没有paymentId的,后面出于安全考虑增加了一个字段进一步验证。实际调用requestPayment的时候并没有带入进去。

回答关注问题邀请回答
收藏

1 个回答

  • Memory (私信不回复)
    Memory (私信不回复)
    2021-09-15

    V2签名很好排查,可以按照以下几点进行排查:

    1、使用签名检查工具校验签名算法是否有误

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

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

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

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

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


    2021-09-15
    有用 1
    回复 7
    • 兮城
      兮城
      2021-09-15
      使用校验工具的时候,显示校验不通过,请按步骤校验签名过程,当我把字段paySign修改成sign的时候就校验成功了。而且我也排查过,字段大小写与接口文档上的一致。编码格式一直使用的是utf-8,并没有缺少数据,而且原先是调用成功的,然后过来几天测试的时候就显示支付签名验证失败了。
      2021-09-15
      回复
    • Memory (私信不回复)
      Memory (私信不回复)
      2021-09-15
      调用时间戳和计算时间戳是否一致?二次签名和统一下单签名是否一致
      2021-09-15
      回复
    • 兮城
      兮城
      2021-09-15
      二次签名和统一下单签名是否一致,是需要一致,还是不同?
      2021-09-15
      回复
    • Memory (私信不回复)
      Memory (私信不回复)
      2021-09-15回复兮城
      签名计算方式是否一致,漏打字了不好意思
      2021-09-15
      回复
    • 兮城
      兮城
      发表于移动端
      2021-09-15回复Memory (私信不回复)
      一致的
      2021-09-15
      回复
    查看更多(2)
登录 后发表内容