一个完整的支付流程如下:
一. 用户在商户系统完成业务下单,进入收银台页面;
(1) 生成业务订单 [2] 扣减库存 (3)触发超时支付,订单取消消息 (4)返回业务订单号
二. 选择第三方支付通道(微信支付),业务后台将业务单信息传给第三方支付后台(微信后台),完成第三方平台预下单;
三. 拿到预下单结果后,收银台唤起微信交互页面,用户输密码确认支付;
四. 第三方支付平台(微信后台)完成支付逻辑,并异步通知业务后台,完成业务端逻辑。
第三方支付侧:
(1) 支付成功后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答。
(2) 如果微信收到商户的应答不是成功或超时,微信认为通知失败,微信会通过一定的策略定期重新发起通知,
尽可能提高通知的成功率,但微信不保证通知最终能成功,因此商户端需要定时去check两边待支付单子的状态。(通知频率为15/15/30/180/1800/1800/1800/1800/3600,单位:秒)
商户侧,回调通知接口对安全性要求极高:
(1)被通知接口幂等
(2)签名验证,商户系统对于支付结果通知的内容一定要做签名验证。
(3)金额校验,校验返回的订单金额是否与商户侧的订单金额一致,防止数据泄漏导致出现“假通知”,造成资金损失。
(4)并发控制,在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。
H5网页支付流程:
H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付。
主要用于触屏版的手机浏览器请求微信支付的场景。可以方便的从外部浏览器唤起微信支付。
标签:1800,支付,微信,商户,通知,第三方 From: https://www.cnblogs.com/shijianchuzhenzhi/p/18194678