0%

支付宝支付接口对接

项目中需要接入支付宝的支付功能,记录一下出现的问题,并整合一下官方的接入文档。

问题记录

验签错误

根据 解决方法 中提到的几种错误原因一一排查,发现原因是 验签方式不正确 。应用配置的密钥类型是公钥证书,而验签对应的功能使用的是普通公钥的代码。

ISV权限不足

有三种原因:

  • 应用未上线
  • 正式环境和沙箱环境网关使用错误
  • 未签约接口产品 && 签约了但应用下没有添加功能包

官方文档


接入APP支付

接入分三个步骤:(接入文档

  1. 创建应用
  2. 添加功能签约配置密钥
  3. 集成和开发

同步通知和异步通知

  • 同步通知:支付宝 SDK 对商户的请求支付数据处理完成后,会将结果同步反馈给商户 App 端。
  • 异步通知:对于 App 支付产生的交易,支付宝会根据原始支付 API 中传入的异步通知地址 notify_url ,通过 POST 请求的形式将支付结果作为参数通知到商户系统。

关于同步通知和异步通知,在支付宝的 文档 中提到了一句:

由于同步通知和异步通知都可以作为支付完成的凭证,且异步通知支付宝一定会确保发送给商户服务端。为了简化集成流程,商户可以将同步结果仅仅作为一个支付结束的通知(忽略执行校验),实际支付是否成功,完全依赖服务端异步通知。

案例分析 中,包含了 异步通知 设置的方法,以及异步通知接口的一些返回参数等。

另外,异步通知接口的地址需要确保公网能访问到,我现在开发的项目都是在本地进行的,并没有部署到服务器上。我的方法是通过 utools 中的内网穿透工具将项目的端口暴露出来,这样就能愉快的完成测试啦。


测试Demo

源码地址


其他有用的文章

支付宝支付(三)—APP支付(alipay.trade.app.pay)