有关于对接第三方支付流程总结
关于支付的流程图
(1) 赵哥设计的流程图,后续简称图1
(2) JeePay开源框架的流程图,后续简称图2
图文说明一下jeepay的支付流程
- 首先用户访问我们的商品页面,选定好商品之后点击下单由前端携带相关信息调起下单接口
- 首先用户访问我们的商品页面,选定好商品之后点击下单由前端携带相关信息调起下单接口
创建一个订单请求,将相关信息的值放入,加入回调地址这里的**回调地址**是为了和前端建立websocket通信,建立通信主要是为了向前端发送订单相关的信息
最后创建jeepay客户端,将网关地址以及应用密钥的值放入,之后通过exceute方法将之前的订单请求一起放到request中
注意:在使用jeepay的聚合方式进行支付时,execute()方法内部会请求支付网关的统一下单api/pay/unifiedOrder接口,
之后前端展示二维码,等待用户进行扫码
二维码网址示例:
https://pay-gateway-test.lankecloud.com/cashier/index.html#/hub/004ca864d7afdea8666c799a423a50bead32fa3c2775ef49485a7ceba08a9162#后面这一串为本地生成订单号码加密而成/004ca864d7afdea8666c799a423a50bead32fa3c2775ef49485a7ceba08a9162
- 用户扫码进行地址访问,前端根据配置的路由进行页面分发
通过User-Agent来判断支付端来源
之后访问支付网关,这一步骤主要是为了获取第三方支付服务器所提供的一个安全校验code,之后在进行访问的时候需要拿着该code来换取第三方支付服务器的token以及用户相关信息
通过buildUserRedirectUrl()方法来将第三方访问路径和回调地址进行拼接,之后返回前端,然后对第三方服务器进行访问
访问之后进行回调,前端路由Oauth2Callback.vue页面
获取到userId之后还是根据前端路由进行判断需要拉起哪个第三方支付页面,第三方支付流程基本都一样,只不过是具体的返回参数有些许差异,这里以支付宝为例:
