一:支付宝支付流程
https://www.jianshu.com/p/9d299a09ef4a
1、支付宝支付流程
大体流程就是向第三方平台发起支付请求,传入订单信息,支付宝返回一个支付的form表单,第三方平台渲染出这个表单,待客户支付完成后,支付宝会发起回调。
一个是同步回调,是支付宝重定向的,主要是提高用户体验,告诉客户支付完毕,
另一个是异步回调,支付宝通过http请求向第三方平台发起支付回调,这个请求是让第三方平台更改订单状态,保证数据的一致性的。支付完成异步回调支付宝需要第三方平台必须打印"success",如果没有打印"success",支付宝会有重试机制,支付宝服务器会不断重发通知,直到超过24小时22分钟。
一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h),这就需要我们处理好幂等性问题,无论支付宝重试多少次,请求获得的结果都一样。如果不处理好幂等性问题,就会出现"本来支付10元换10个鱼翅,结果换了20个30个鱼翅"。常见的处理幂等性的方法是使用全局id+日志记录的方式防止这种错误。