smartwalle / alipay

支付宝 AliPay SDK for Go, 集成简单,功能完善,持续更新,支持公钥证书和普通公钥进行签名和验签,支持文件上传和接口内容加密。
MIT License
1.87k stars 425 forks source link

同步验证时错误:crypto/rsa: verification error #123

Closed chengjoey closed 4 years ago

chengjoey commented 4 years ago

用的是tradepagepay,在付款和异步验证到notify时都正常,但是到同步验证时,报crypto/rsa: verification error的错误,也就是这一步ok, err := client.VerifySign(req.Form)时报错了

chengjoey commented 4 years ago

同步验证的错误是在沙箱环境测试中出现的,看了一下源码,verifysign这个函数是拿参数alipay_cert_sn去做的验证,可是沙箱验证返回到return接口时好像没有带这个参数

smartwalle commented 4 years ago

这个问题我记得之前我和支付宝那边有沟通过,原生是沙箱环境没有返回 alipay_cert_sn 这个参数,支付宝那边说生产环境是正常的。我也没有办法去测试。

smartwalle commented 4 years ago

不过有一种折中的处理办法就是在 return_url 的回调中,可以再次调用一下支付宝的接口查询一下订单的信息。

smartwalle commented 4 years ago

同理,从安全角度考虑,notify_url 的回调接口,也应该调用一下支付宝的接口确认订单信息

chengjoey commented 4 years ago

是的,早上提了一个工单给支付宝那边,那边是说沙箱里同步验证会有问题,正式环境是正常的 image

chengjoey commented 4 years ago

好的,多谢提醒