Bootstrap

聚合支付系统的设计与实现

支付中心存在的目的

支付中心系统对内为各个业务线提供统一的支付、退款等服务,对外对接三方支付或银行服务实现资金的流转。如下图:

大部分公司基本都是这样的架构,主要有以下几方面的优点:

  1. 形成统一支付服务,降低业务线接入成本及重复研发成本。
  2. 更好更快的支持创新业务,为公司业务快速发展提供条件。
  3. 更利于构建安全,稳定,可扩展的支付系统。
  4. 利于核心支付数据的沉淀和统一利用。

支付流程

上图展示了用户支付的主要流程,分为三个步骤:

  1. 用户在业务订单确认页,唤起收银台页面。
  2. 用户在收银台页面选择支付方式,确认支付,显示第三方支付页面,输入密码,进行真实支付行为。
  3. 系统处理用户支付结果,并通知给用户及各个相关系统。

下面详细说下这三个步骤:

1. 唤起商户收银台

  1. 用户在订单确认页点击“去支付“按钮,调用收银台支付下单接口。
  2. 收银台将订单信息缓存并入库,然后将订单标识拼装到收银台URL上返回给订单系统。
  3. 订单系统接收到收银台地址跳转到收银台页面。

上图展示了两个业务线(景区业务线,酒店业务线)唤起的收银台页面,大概可以分为三个区域:

页面上部分显示的是支付剩余时间和应付金额;

中间部分是订单信息,根据收银台定义的数据格式,业务线动态传递过来的;

剩余部分展示的是支付渠道,支付渠道也是业务线根据自己的需求在支付后台管理系统配置的,想要哪些支付方式以及它们的顺序都可以自定义。

2. 用户确认支付

  1. 用户在收银台页面选择支付方式(支付宝支付,微信支付,银行卡支付等),点击立即支付按钮,
  2. 调用支付中心创单接口,支付中心调用三方支付创单接口,同步返回支付信息,支付中心对返回参数进行处理,返回给收银台,
  3. 收银台携带支付中心返回的参数,调用三方接口,唤起三方收银台,<
;