交互流程
功能流程
流程说明(以Android平台为例):
1. 第4步:调用支付接口:此消息就是本接口所描述的开发包提供的支付对象PayTask,将商户签名后的订单信息传进pay方法唤起支付宝收银台,订单格式具体参见“请求参数说明 ”。
2. 第5步:支付请求:手机支付宝支付开发包将会按照商户客户端提供的请求参数发送支付请求。
3. 第8步:接口返回支付结果:商户客户端在第4步中调用的支付接口,会返回最终的支付结果(即同步通知),参见“同步通知参数说明”。
4. 第12步:异步发送支付通知:手机支付宝支付服务器端发送异步通知消息给商户服务器端(备注:第12步一定发生在第6步之后,但不一定晚于7~11步),参见“服务器异步通知参数说明”。
数据交互
1. 构造订单数据并签名
商户服务器端根据手机支付宝支付开发包的接口规则,通过程序生成得到签名结果及要传输给手机支付宝支付开发包的数据集合。签名相关的公私钥生成及配置规则,见数字签名。
2. 发送请求数据
把构造完成的数据集合传递给手机支付宝支付开发包。
3. 手机支付宝支付开发包对请求数据进行处理
手机支付宝支付开发包将请求数据根据业务规则包装后传递给手机支付宝支付服务器端,服务器端得到这些集合后,会先进行安全校验等验证,一系列验证通过后便会处理完成这次发送过来的数据请求。
4. 返回处理的结果数据
对于处理完成的交易,支付宝会以两种方式把数据分别反馈给商户客户端和商户服务器端。
1. 在手机客户端上,手机支付宝支付开发包直接把处理的数据结果反馈给商户客户端;
2. 在服务器端上,手机支付宝支付服务器端主动发起通知,调用商户在请求时设定好的页面路径(参数notify_url,如果商户没设定,则不会进行该操作)。
5. 商户对获取的返回结果数据进行处理
商户在客户端同步通知接收模块或服务器端异步通知接收模块获取到支付宝返回的结果数据后,可以结合商户自身业务逻辑进行数据处理(如:订单更新、自动充值到会员账号中等)。同步通知结果仅用于结果展示,入库数据需以异步通知为准。