收藏
回答

请求单次分账接口,返回SIGN_ERROR验证签名失败

下图为加密方法截图。

下图为请求参数截图。


下图为返回结果截图。


照着微信api接口文档做的,实在是找不到原因。

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

9 个回答

  • 微信支付技术助手1
    微信支付技术助手1
    2019-08-09

    这个需要你自检参数。

    2019-08-09
    有用
    回复 2
    • TRUE
      TRUE
      2019-08-20
      我的也是,我在签名校验工具里面显示我的校验通过,但是提交分账的时候返回报错签名错误
      2019-08-20
      回复
    • 清风不语
      清风不语
      2019-09-20
      自检参数什么意思?
      2019-09-20
      回复
  • 101小飞仙👀
    101小飞仙👀
    07-06

    检查一下商户号秘钥key的值是否与实际用的相同,我用sha1加密字符串出来的是40个字符,结果设置key时系统只保留了32位,但是实际用的是40位的,找了几天才发现这个问题

    07-06
    有用
    回复
  • 肤浅
    肤浅
    05-06

    有谁解决了吗?联系我重酬都可以!!


    05-06
    有用
    回复
  • 刘大喵
    刘大喵
    04-17

    解决了吗?遇到了同样的问题


    04-17
    有用
    回复
  • 浪淘沙
    浪淘沙
    03-29

    怎么搞啊,各位大哥都解决了吗?

    03-29
    有用
    回复
  • 子默
    子默
    03-06

    我也一样

    03-06
    有用
    回复
  • TAN
    TAN
    01-19
    检查接口要求的什么加密算法,加密密钥是否正确的
    function getSign(paramSign,types="md5") {
      // 按 key 值的 ascii 排序
      const keys = Object.keys(paramSign).sort();
      const temp = [];
      keys.forEach(v => {
        if (paramSign[v] && v !== 'sign') {
          temp.push(`${v}=${paramSign[v]}`);
        }
      });
      temp.push(`key=${config.mch_key}`);
    
    
      const ret = temp.join('&');
      // 生成签名
      if (types=="md5"){
        return crypto.createHash('md5').update(ret, 'utf8').digest('hex').toUpperCase();
      } else if (types=="HMAC-SHA256"){
        return crypto.createHmac("sha256", config.mch_key).update(ret, "utf8").digest('hex').toUpperCase();
      }
    }
    
    01-19
    有用
    回复
  • 闫 晓 龙
    闫 晓 龙
    2019-09-29

    我也是一样的错误 ,怎么搞啊

    2019-09-29
    有用
    回复
  • 牛珍珍
    牛珍珍
    2019-08-09

    没明白您的意思,怎么自检参数,啥意思。

    2019-08-09
    有用
    回复 2
    • TRUE
      TRUE
      2019-08-20
      大兄弟你的咋样了,咱俩报的同样的错误
      2019-08-20
      回复
    • 一阵风
      一阵风
      2019-09-24
      我也是一样的错误,搞了好几天了
      2019-09-24
      回复
登录 后发表内容