收藏
回答

调用红包接口返回签名错误

调用微信红包接口(https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack)时,生成的签名比签名工具(https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1)少一个 0 ,当改变参数

  <nonce_str>8Q8QML1GR99EFNWI2U9NQJSMK92O1N5I</nonce_str>(32位随机生成的字符串) 时,调用接口又可能成功。


#3.生成sign并转成大写:

sign=0BFE8C1FF78ABCB095DC1A8DF8AAD327

 

#4.校验结果:

原sign值:BFE8C1FF78ABCB095DC1A8DF8AAD327
新sign值:0BFE8C1FF78ABCB095DC1A8DF8AAD327


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

1 个回答

  • 微信支付技术助手
    微信支付技术助手
    03-28

    您好,请参考:

    1、没有使用商户平台设置的商户API密钥进行加密(有可能之前设置过密钥,后来被修改了,没有使用新的密钥进行加密)。
    2、加密前没有按照文档进行参数排序(可参考文档)
    3、把值为空的参数也进行了签名。可到(http://mch.weixin.qq.com/wiki/tools/signverify/ )验证。
    4、如果以上3步都没有问题,把请求串中(post的数据)里面中文都去掉,换成英文,试下,看看是否是编码问题。(post的数据要求是utf8)
    1. 到商户平台重新设置新的密钥后重试
    2. 检查请求参数把空格去掉重试
    3. 中文不需要进行encode,使用CDATA
    4. 按文档要求生成签名后再重试
    在线签名验证工具:http://mch.weixin.qq.com/wiki/tools/signverify/


    03-28
    赞同
    回复