收藏
回答

企业付款到零钱包SIGN_ERROR签名错误?

什么都是对的,但是就是一直报:签名错误

<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[SIGN_ERROR]]></return_msg><mch_appid><![CDATA[wx630e5d018886a0b3]]></mch_appid><mchid><![CDATA[1604925725]]></mchid><result_code><![CDATA[FAIL]]></result_code><err_code><![CDATA[SIGN_ERROR]]></err_code><err_code_des><![CDATA[签名错误]]></err_code_des></xml>

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

4 个回答

  • david lee宏
    david lee宏
    10-01

    这说明 构造签名串 计算签名值 过程有错


    这2个过程有问题,你需要跟着官网给的key和参数 套进你的代码 来验证 得出的签名值 是否一至.不一至就会出现你这样的问题

    https://pay.weixin.qq.com/docs/merchant/development/generate-request-signature-verification/request-body-parameters-signature.html

    把key复制下来,保存到txt 文档里,存为apiclient_test_key.pem 然后就可以在php里导入这个作为加密钥匙了,php的载入方法如下

    $privateKey =  openssl_get_privatekey(file_get_contents('data/apiclient_key.pem'));


    照着给的参数,填进你的php或java 去计算,最后必需得出gE开头的值,

    如果不一样,那你就得一步一步的 return 输出 查看拼接过程值,,

    对于php而言,return输出拼接的字符,浏览器里不能看到有 \n,

    它应该是这样子

    但其实你的代码 必需是给它加了\n,   它只是在显示时,把\n,转换成了换行.

    对于其它语言,你看到的可能不是这样了,总之原则就是,每行参数 尾部都要加上换行符号! 微信这么简单的要求,你们都做不到么?实在不行,你直接手动拼接,直接算,最后你一定算算对的!,真的很简单,只是微信文档不太给力,强烈要求给完整代码,copy就能用那种!

    如此简单,还不会的,直接加我吧 hongro

    10-01
    有用
    回复
  • Memory
    Memory
    04-11

    https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1 可以用在线签名验证工具校验,前提是你的key是正确的

    04-11
    有用
    回复 4
  • 㐅卝
    㐅卝
    发表于小程序端
    04-11

    这不是报签名错误,说明签名算法有问题啊,检查代码吧。

    04-11
    有用
    回复 2
  • 北望沣渭
    北望沣渭
    发表于移动端
    04-11
    从xml结果应该咋反推哪里出问题呢?
    04-11
    有用
    回复
登录 后发表内容