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--