有关于对接第三方支付流程总结

  1. 关于支付的流程图
    (1) 赵哥设计的流程图,后续简称图1

    (2) JeePay开源框架的流程图,后续简称图2

    1. 图文说明一下jeepay的支付流程

      1. 首先用户访问我们的商品页面,选定好商品之后点击下单由前端携带相关信息调起下单接口
  1. 创建一个订单请求,将相关信息的值放入,加入回调地址
  2. 这里的**回调地址**是为了和前端建立websocket通信,建立通信主要是为了向前端发送订单相关的信息

最后创建jeepay客户端,将网关地址以及应用密钥的值放入,之后通过exceute方法将之前的订单请求一起放到request中

注意:在使用jeepay的聚合方式进行支付时,execute()方法内部会请求支付网关的统一下单api/pay/unifiedOrder接口,

之后前端展示二维码,等待用户进行扫码

二维码网址示例:

  1. https://pay-gateway-test.lankecloud.com/cashier/index.html#/hub/004ca864d7afdea8666c799a423a50bead32fa3c2775ef49485a7ceba08a9162
  2. #后面这一串为本地生成订单号码加密而成
  3. /004ca864d7afdea8666c799a423a50bead32fa3c2775ef49485a7ceba08a9162
  1. 用户扫码进行地址访问,前端根据配置的路由进行页面分发

用户扫码,访问https://pay-gateway-test.lankecloud.com/cashier/index.html#/hub/004ca864d7afdea8666c799a423a50bead32fa3c2775ef49485a7ceba08a9162

通过User-Agent来判断支付端来源

之后访问支付网关,这一步骤主要是为了获取第三方支付服务器所提供的一个安全校验code,之后在进行访问的时候需要拿着该code来换取第三方支付服务器的token以及用户相关信息

通过buildUserRedirectUrl()方法来将第三方访问路径和回调地址进行拼接,之后返回前端,然后对第三方服务器进行访问

访问之后进行回调,前端路由Oauth2Callback.vue页面

获取到userId之后还是根据前端路由进行判断需要拉起哪个第三方支付页面,第三方支付流程基本都一样,只不过是具体的返回参数有些许差异,这里以支付宝为例: