看图说话
支付宝支付流程
1 用户选择支付宝,点击去支付,请求商户客户端
2 商户客户端请求商户服务端(服务端 调用阿里sdk 请求支付接口,返回支付宝交易流水号(也就是签名后的信息))
3 商户服务端返回支付宝交易流水号给商户客户端
4-7 商户客户端端拿到交易流水号,请求拉起支付宝,用户支付,支付宝服务端返回支付结果给支付宝前端
8 支付宝同步返回支付结果给商户(如果此时 商户客户端挂掉或者关闭,消息不能同步过来,有可能导致商户端订单状态没有变更)
9 如果同步成功,商户客户端将支付结果给服务端进行验签,解析支付结果
10 服务端返沪最终支付结果,
11 给用户展示最终支付结果
12 由于商户app 可能挂掉,或者被关闭 ,或者网络等原因同步支付结果,可能失败。支付宝会通过异步方式请求商户app 通知支付结果
13 商户接受通知结果成功,返回success 才停止推送
支付宝建议
由于同步通知和异步通知都可以作为支付完成的凭证,且异步通知支付宝一定会确保发送给商户服务端。为了简化集成流程,
商户可以将同步结果仅仅作为一个支付结束的通知(忽略执行校验),实际支付是否成功,完全依赖服务端异步通知。
支付宝推送
程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是 success 这7个字符,支付宝服务器会不断重发通知,
直到超过24小时22分钟。一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h);
参考文章:
https://blog.csdn.net/qq_36004521/article/details/79543665
https://docs.open.alipay.com/204/105302 App支付同步通知参数说明