1.客户端【点击支付按钮】(Browser→Server)
->参数:支付方式、订单SN
2.服务器【处理信息并响应】(Server→Browser)
①接收参数,对支付方式、订单SN进行合法性校验
②根据订单SN查询订单信息,即时计算出订单总价
③将订单信息(订单SN、订单名称、订单总价...)+商户信息(key、token)+Sign(防伪签名-防止参数被篡改)
④将以上信息拼接成HTML表单。(表单会自动提交action到第三方支付平台接口地址)
->参数:包含订单信息的HTML
3.客户端【自动转向支付平台】(Browser→Chinapay)
->参数:表单中隐藏域中的值
4.支付平台【处理支付操作】
(Chinapay→Server)
服务器接收信息,通知处理程序校验支付状态然后修改订单。心跳:只有在服务器接收到此次支付状态,并返回给支付平台接收信息成功的消息,支付平台才会停止发送此次支付信息。
->参数:订单SN、总收款、订单状态
(Chinapay→Browser)
客户端接收信息(302),指向我们的网站服务器。
->参数:订单SN、总收款、订单状态
5.客户端【回调订单支付详情】(Browser→Server)
向客户端请求当前支付结果。
-参数:订单SN、总收款、订单状态
6.服务器【验证订单支付状态】(Server→Browser)
根据请求的订单SN校验订单状态。(此处不能根据请求过来的参数直接修改订单信息,订单信息必须根据支付平台返回的信息修改,此处仅做校验,防止用户篡改支付状态)
->参数:订单SN、总收款、服务器中保存的用户订单支付状态...
7.客户端【接受并完成此次支付】
时间: 2024-10-10 14:09:35