收藏
回答

jsapi支付,签名错误,我用的官方sdk测试是错误


我试过网上的各种解决办法,也翻透了文档,试过各种,也重置过支付密钥,但是就是不行,在微信支付官方效验工具中测试没问题,所以我想求助,各位朋友你们遇到过这种情况没?

最后一次编辑于  2018-12-28
回答关注问题邀请回答
收藏

2 个回答

  • 微信支付技术助手3
    微信支付技术助手3
    2018-12-28

    你好,请按照以下几点仔细检查:

    1) 使用微信的在线签名工具检查签名是否和程序生成的一致

    https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1 签名工具用谷歌打开。

    选择MD5,XML,然后把请求参数xml放进去,就能校验签名。

    2)如果和微信的在线签名工具一致,说明程序没有错误,确定是API密钥错误(被别人改动或者记错了)

    在商户平台的账户信息中更改API密钥(账户设置-安全设置-API安全), 15分钟后生效

    3) 如果和微信的在线签名工具不一致,说明程序有错误,常见的错误可能是:

    3.1) 编码问题,确保所有的都是utf-8的. 如果有中文, 可以先把中文改成英文重新签名,看是否签名错误,如果英文不会错中文才会错,基本肯定是编码问题发表回答

    3.2:)消息中字段大小写和文档中完全一致


    2018-12-28
    赞同
    回复 6
    • 热心码农陈某
      热心码农陈某
      2018-12-28

      我看了好几遍了,测试了两天了,不管怎么样都报签名错误,但是用官方的测试工具是正确的

      2018-12-28
      回复
    • 微信支付技术助手3
      微信支付技术助手3
      2018-12-28回复热心码农陈某

      您好,请提供相关日志,

      2018-12-28
      回复
    • 热心码农陈某
      热心码农陈某
      2018-12-28回复微信支付技术助手3

      我是测试的 没日志 我给你提供下我的xml吧

      <?xml version="1.0" encoding="utf-8"?>


      <xml>

        <appid><![CDATA[wx3b55748735021682]]></appid>

        <attach><![CDATA[测试1]]></attach>

        <body><![CDATA[测试1测试1测试1测试1测试1测试1测试1]]></body>

        <mch_id>1521930111</mch_id>

        <nonce_str><![CDATA[xk8wnle1bn0gp8lvrspjyh03n6zxa5yh]]></nonce_str>

        <notify_url><![CDATA[http://moda.121314.com/api/receive/ordernotify]]></notify_url>

        <openid><![CDATA[obGwywiK4Cv5swNoVbB65Saw2IMA]]></openid>

        <out_trade_no>201812285149555</out_trade_no>

        <sign_type><![CDATA[MD5]]></sign_type>

        <spbill_create_ip><![CDATA[125.84.88.125]]></spbill_create_ip>

        <time_expire>20181228182339</time_expire>

        <time_start>20181228181339</time_start>

        <total_fee>1</total_fee>

        <trade_type><![CDATA[JSAPI]]></trade_type>

        <sign><![CDATA[35690F0428C6F75AEF900CBDAC11B120]]></sign>

      </xml>


      2018-12-28
      回复
    • 热心码农陈某
      热心码农陈某
      2018-12-29回复微信支付技术助手3

      哥们,还在吗,每次都返回的签名错误,存进日志里就是只有一条参数错误,我也很绝望啊

      2018-12-29
      回复
    • 波
      2018-12-29回复热心码农陈某

      您好,要注意统一下单请求参数中total_fee参数的类型是int类型。

      2018-12-29
      回复
    查看更多(1)
  • 热心码农陈某
    热心码农陈某
    2018-12-29

    已经解决我重置了一次api秘钥,并用md5加密了我自己生成的随机数,就OK了

    2018-12-29
    赞同
    回复