smartwalle / alipay

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

v3.2.15版本计算回调的sign时会对字段里的内容trim导致签名计算和alipay行为不一致 #179

Closed LuffyFeng closed 1 year ago

LuffyFeng commented 1 year ago

v3.2.15 签名实现 image

v3.1.7 签名实现 image

支付宝计算签名是会计算空格的,这里的trim会导致某些字段(如商品名称)首尾如果带了空格就会和支付宝计算的签名不一致,从而导致回调验证签名失败

smartwalle commented 1 year ago

image

商品名称是不影响签名的,商品名称属于图片中红色框中的内容,是“请求参数”的一部分,请求参数最终会序列化为 JSON 字符串,通过 biz_content 参数传递,而签名是对图片中蓝色框中的内容进行的。

你这边的问题可能不是由于这个点引起的。

LuffyFeng commented 1 year ago

比如我们遇到的是subject字段包含了尾空格 image

这样再用sdk去验证时,就会报签名失败

smartwalle commented 1 year ago

在 v3.2.19 版本中已经修复。