alipay-sdk 签名失败

3,171 阅读2分钟

alipay-sdk

const AlipaySdk = require('alipay-sdk').default

一直错误如下信息 错误代码 invalid-signature 错误原因: 验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配,

privateKey 密钥取的是这里的【商户应用密钥】

我对了好几遍,在入参的时候也核实了,我能够保证这里的密钥和应用是关联的,因为生成密钥后我就点击生成CSR,然后上传到对应的应用里。 这个过程我操作的好多遍,以确保正确。

alipayPublicKey 取的是这里的数据,从这里下载

点击下载 支付宝公钥证书

在这里,有了密钥就可以支付了,而公钥是为了回调才需要的,所以这个就算错了也不影响,而我已经设置上去了,并且保证appid是对的。

签名默认是RSA2,我也改成1去尝试了,是一样的。(加密我选择的是SHA256withRsa)

截图:

还有我试了密钥加前缀和不加,但是都一样。(-----BEGIN RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----)

【不是app的问题,因为】

错误在后台就已经产生了,我是用了exec,支付宝直接返回签名错误信息 await alipaySdk.exec('alipay.trade.app.pay', requestparams, {}); 对此,,有点疑惑🤔。

这是对支付宝nodejs的sdk初始化代码

const alipaySdk = new AlipaySdk({
        // signType: 'RSA',
        appId: Config.aliPay.appid,
        privateKey: Config.aliPay.merchantPrivateKey,
        alipayPublicKey: Config.aliPay.alipayPublicKey,
    })

这是调用获取app请求支付需要的数据

await alipaySdk.exec('alipay.trade.app.pay', requestparams, {});

解决之

这是一个tab,不是只有三个选项,点击其他,选择app支付。

(早期好像没有tab,反正上一次接入的是web,正常添加了权限)


还有 如果是证书的形式需要手动加签,java有sdk,其他语言暂时没有。

这个是和技术支持的对话

非常感谢他们的技术客服。

。。我记得去年我对接找客服,唔,真的太差劲了,很多都不懂。

不过,对比微信的客户,那算是好了,微信的客服,永远也找不到人,页面上面的客服功能,那是假的,我看了请求,没有长链接也没有轮询。

--END--