yansongda / pay

可能是我用过的最优雅的 Alipay/WeChat/Douyin/Unipay/江苏银行 的支付 SDK 扩展包了
http://pay.yansongda.cn
MIT License
5.02k stars 1.03k forks source link

支付宝接口异常信息响应优化。 #992

Closed lazychanger closed 3 months ago

lazychanger commented 4 months ago

Plugin/Alipay/V2/ResponsePlugin这段代码中,直接开始检测sign,并没有对响应返回内容是否成功进行检验。

https://github.com/yansongda/pay/blob/65cf1daa90e7ee4e57cc6f95735b8f42708ecfbe/src/Plugin/Alipay/V2/ResponsePlugin.php#L28C7-L33C10

当支付宝网关返回异常空_sign,并没有对响应体进行检测就直接开始进行签名检测。导致异常信息响应误导"签名异常: 验证支付宝签名失败-支付宝签名为空";

例如响应返回内容(日志记录):

{
"destination": {
        "_sign": "",
        "code": "40002",
        "msg": "Invalid Arguments",
        "sub_code": "isv.invalid-app-id",
        "sub_msg": "无效的AppID参数"
      }
}
lazychanger commented 4 months ago

正确时候应该返回支付宝网关给出的异常msg例如alipay 40002: 无效的AppID参数或其他格式,现在的返回如下:

image
yansongda commented 4 months ago

要不帮忙尝试 PR 一下?

lazychanger commented 4 months ago

等我修完我的这个业务BUG🤣。