收藏
回答

现金红包 签名错误

严格按文档生成的签名,所有参数都设置成了英文,并且(https://pay.weixin.qq.com/wiki/tools/signverify/)与生成的sign值一样,该商户之前做过js支付,签名都没问题,不知道为什么做现金红包发放就说签名错误,以下是具体代码,无敏感信息

以下是错误信息

<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[签名错误]]></return_msg><result_code><![CDATA[FAIL]]></result_code><err_code><![CDATA[SIGN_ERROR]]></err_code><err_code_des><![CDATA[签名错误]]></err_code_des><mch_billno><![CDATA[敏感信息]]></mch_billno><mch_id><![CDATA[敏感信息]]></mch_id><wxappid><![CDATA[敏感信息]]></wxappid><re_openid><![CDATA[敏感信息]]></re_openid><total_amount>100</total_amount></xml>


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

1 个回答

  • Memory
    Memory
    2021-02-23

    可能是以下问题导致:

    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/


    2021-02-23
    有用 1
    回复
登录 后发表内容
问题标签