SDK接入说明
介绍
SDK提供给App开发者使用, 允许商户在自己App内唤起支付宝进行支付。 SDK的接入分为服务端和客户端两部分。
客户端主要实现响应用户操作,调起支付SDK,展示结果等功能。
服务端需实现三个接口:
- 组支付请求串并计算签名
- 校验支付回调结果的签名,及查询订单
- 接收支付结果通知接口
请求时序图
participant 用户
用户->商户App: 1. 点击支付按钮
商户App->商户服务器: 2. 下单请求
商户服务器->商户App: 3. 返回支付请求串
商户App->SDK: 4. 传递请求串,调用支付
SDK->用户: 5. 拉起App进行支付
用户->支付平台: 6. 完成支付
SDK->商户App: 7.支付结果回调
商户App->商户服务器: 8.校验结果
商户服务器->ScanForPay: 9.查询订单,校验结果
ScanForPay->商户服务器: 10.返回校验结果
商户服务器->商户App: 11.返回校验
商户App->用户: 12.根据结果展示页面
ScanForPay-->商户服务器: 13. 异步通知
流程说明
第2-4步: 用户下单后,商户需要组一个支付请求串,请求串可以在客户端或者服务端生成,但是签名必须由服务端计算, 且签名Key不能保存在客户端。
请求串格式见SDK接口说明。
在组数据时,需要按照ScanForPay的请求格式来进行组装,接口说明里只给出了业务数据部分的说明。数据格式说明见请求格式。
签名算法见计算签名。
第9步: 回调的结果,商户需要给服务端校验签名,来确保数据的真实性。服务器端校验签名后也可以再次去ScanForPay服务器查询订单状态是否成功。查询接口说明见交易查询。
第13步: 商户需要实现一个接收ScanForPay服务器通知的接口,在请求串里将通知地址传给ScanForPay,ScanForPay会将交易结果异步通知给服务端,以确保在回调不成功的时候保证交易订单的准确性。通知格式见交易通知