收藏
回答

小程序红包一直签名失败(按照文档生成的)

appId没问题,timeStamp生成的,nonceStr随机32位,package是调用发送红包返回信息再urlencode,最后拼接key再md5加密,帮看下哪里有问题啊


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

2 个回答

  • Memory
    Memory
    09-03

    调用发放红包的时候报错吗?

    09-03
    有用
    回复 11
    • 🇨🇳
      🇨🇳
      09-03
      可以发放,但是不能领取
      09-03
      回复
    • Memory
      Memory
      09-03回复🇨🇳
      你计算签名的时候package是原始值?
      09-03
      回复
    • 🇨🇳
      🇨🇳
      09-03
      对的,拿到后urlencode了一下
      09-03
      回复
    • 🇨🇳
      🇨🇳
      09-03
      09-03
      回复
    • Memory
      Memory
      09-03回复🇨🇳
      计算签名的时候需要用原始值,领取的时候才需要urlencode
      09-03
      回复
    查看更多(6)
  • 㐅卝
    㐅卝
    发表于小程序端
    09-03

    检查你的key是不是有问题,使用v2key

    09-03
    有用
    回复 7
    • 🇨🇳
      🇨🇳
      09-03
      key是没有问题的,刚检查过了
      09-03
      回复
    • 㐅卝
      㐅卝
      09-03回复🇨🇳
      字段说明:paySign 字段是对本次发起JSAPI 的行为进行鉴权,只有通过了paySign 鉴权,才能继续对package 鉴权并调起红包的收和拆。
      生成规则:参与paySign 签名的字段包括:appId、timeStamp、nonceStr、package 。这里signType 并不参与签名。
      1 . 对所有待签名参数按照字段名的 ASCII码从小到大排序(字典序)后,使用 URL 键 值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为驼峰形式
      2 . 在string1最后拼接上key=商户支付密钥得到stringSignTemp字符串
      3 . 对 stringSignTemp 作MD5签名算法,字段名和字段值都采用原始值(package需要进行urlencode再进行加密),最后得到的字符串不用转成大写, 具体签名算法为 paySign =MD5(stringSignTemp)


      签名算法是这样的,你检查一下。
      09-03
      回复
    • 㐅卝
      㐅卝
      09-03回复🇨🇳
      或者你在官方工具里面调试一下看看。
      09-03
      回复
    • 流光ོ゜℘
      流光ོ゜℘
      09-03回复㐅卝
      你好,我用了官方的生成签名的工具,得到的签名以及xml参数和我代码生成一模一样的,但是还是返回签名错误
      商户支付密钥应该是正确的,因为我是用app支付是正常的,就是发红包不行,发红包是有什么其他要求吗?
      09-03
      回复
    • 㐅卝
      㐅卝
      09-03回复流光ོ゜℘
      这个只能使用自己的号排查了,因为涉及key。
      09-03
      回复
    查看更多(2)
登录 后发表内容