支付流程官方文档:https://docs.open.alipay.com/204/105297/
官方文档提供的序列图如下(图中虚线标识商户链路,实线标识支付宝链路
):
一、概要
App支付设计到哪些方
用户
商户客户端:即我们自己的App
支付宝客户端SDK:即我们App里面集成的支付宝SDK
支付宝服务端:我们App通过支付宝SDK与支付宝服务端连接
商户服务端:即我们App的server端。
App支付大体流程
1、用户使用我们的App发起支付操作;
2、然后我们的App向我们的服务端发起支付请求,这时候服务端把签名后的订单字符串返回给客户端;
3、客户端拿到这个请求支付宝SDK调起支付,支付宝SDK这时候会连接到支付宝服务端;
4、支付完成,支付宝服务端会将支付结果同步返回给我们App里面的支付宝SDK,SDK会回调支付结果给我们的App;
注意这时候还不能认定支付是成功的,我们还需要进行一下步骤:
5、支付宝SDK回调会携带一些参数信息,我们拿到这些参数信息,然后再次请求我们服务端的接口,将这些参数发送给服务端,服务端用这些参数做验签,并将验签结果返回给客户端。
第五步执行完才能确定是否是支付成功。
二、简化步骤
步骤一:支付
调起支付到支付,需要三步:
第一步:客户端点击发起支付,请求服务端接口,服务端直接将组装和签名后的请求串orderString传给客户端;
第二步:客户端拿到返回数据,调起支付宝支付SDK;
第三步:跳转支付宝钱包(支付网页)进行支付,处理支付结果
步骤二:支付校验
同步返回支付结果为9000后需要做支付校验:
客户端拿到支付宝的支付结果后,提取相应的字段发送给服务端,服务端校验通知参数的合法性,只有全部验证通过后,才可以认定买家付款成功。ps:支付成功后支付宝会异步发送通知给服务端。