美文网首页
多渠道的支付系统之支付路由(二)

多渠道的支付系统之支付路由(二)

作者: 天草二十六_简村人 | 来源:发表于2023-01-09 09:09 被阅读0次

一、背景

作为一个支付平台,在对接了多个第三方支付渠道后,面临的一个问题是用户在具体某业务下,应该使用哪个支付渠道的哪个商户。
你可以开发一个收银台,让用户主动选择使用哪个三方支付。也可以由支付系统来切换至某个渠道。

本文主要讲述一个支付平台,从实现层面,怎么支持多业务多渠道多商户的灵活切换。目前市面上的支付方式,夸张地说,除了微信支付就是支付宝支付。这是对于用户来说的。但是具体是哪个渠道,又可能是微信官方,也可能是农行等银行方,这是对用户透明的。

在实际对接的时候,我们还会遇到某个商户被封禁的情况,所以要求我们必须快速切换到备用的商户下。

简单梳理下,这里有三层关系。
用户 --》 支付方(微信/支付宝)【第一层】--》渠道(官方/银行)【第二层】--》商户【第三层】

用户看到的就是使用微信Or支付宝这种支付方式, 然而作为支付平台,是要知晓整个的三层关系。

二、数模设计

2.1、ChannelType渠道类型

定义第三方支付,这里的记录数决定于你对接了多少第三方支付。

  • code:渠道编号
  • name:渠道名称
  • sort:排序序号
  • status:状态,默认启用:0停用,1启用
  • 第三方支付的域名
  • 支付成功的回调地址
  • 退款成功的回调地址
image.png

2.2、ChannelAccount账户表(商户表)

不同的支付渠道,商户配置的字段不一样,且那些字段不会用于查询,所以我们建议你把那些配置的字段作为一个json字符串统一存储。

  • 账户:自定义的一个编号,保证全局唯一
  • 账户名称:账户的一个别名
  • 渠道类型:见ChannelType
  • 商户ID:由第三方支付提供
  • 配置详情json字符串:由第三方支付提供
农行的配置.png 杭州银行的配置.png

2.3、ChannelBiz渠道路由

业务使用的支付方式和商户的映射关系。

  • biz_id 业务ID
  • biz_name 业务名称
  • channel_code 支付方式
  • account 账户
  • sort 排序
  • status 状态:启用Or禁用

支付方式,比如微信的产品就包括:WX_NATIVE、WX_JSAPI等。
再比如杭州银行的产品又包括:HzBank_QR、HzBank_JSAPI等。

2.4、Channel

ChannelType和Channel是一对多的关系。

image.png

三、支付请求接口

请求地址:@PostMapping("/api/v1/trade/create")
请求入参示例:

{
// 支付金额
    "amt":1,
// 业务编码
    "bizType":111,
// 渠道编码(渠道类型_支付产品)
    "channelCode":"HzBank_JSAPI",
// 币种,不同的支付方,可能对币种的编码不一样,需要进行一个转换。
    "currency":1,
// 订阅回调的url
    "notifyUrl":"http://xxx.xx.com/api/v1/order/agencyNotify",
// 当是jsapi支付方式时,必须传openId
    "openId":"oPXZV5dFgfQxUk1vGyH7Qk712xwk",
// 小程序或公众号的应用ID
    "appId":"wxa682fba97fb9b12x",
// 先创建订单,再请求支付
    "orderNo":"013CS607C",
// 用户ID和名称
    "userId":109784,
    "userName":"用户名称"
}

四、支付路由的实现

1、根据业务编码和支付方式,查询支付路由表,得到支付商户。

2、组装请求第三方支付的入参等信息

3、发起请求

4、处理第三方支付的响应报文,返回给业务方

5、等待支付方回调我们,更新支付订单表。

6、回调订单服务,更新订单的状态和支付信息。也可能需要回调其他业务方。

相关文章

  • 多渠道的支付系统之支付路由(二)

    一、背景 作为一个支付平台,在对接了多个第三方支付渠道后,面临的一个问题是用户在具体某业务下,应该使用哪个支付渠道...

  • 记一次drools5的性能优化过程

    业务场景 支付平台每日早晨会收到账务系统发送的批量扣款指令,这些扣款指令需要通过支付路由系统获取到最优的扣款支付渠...

  • 美利支付路由

    关于路由系统,我的理解是根据业务需求选择最优的支付通道,或者最符合业务要求的通道。 支付路由中渠道的计算因子: ...

  • 支付路由系统简述

    背景 笔者是从事电商的一名金融产品经理,支付相关是负责的项目之一,很多人口头都在讲的支付路由,到底什么是支付路由,...

  • 支付路由系统设计

    路由系统,即智能选择最优‘‘线路’’,对于支付结算系统而言,就是要智能选择入款、出款渠道,那如何体现其智能呢?我们...

  • 系统重构--支付路由

    正文:目前支付大多数支持微信和支付宝两种支付方式。从服务提供方来讲,微信又可以分为官方微信和威富通微信、优络微信等...

  • 老王仓库管货和卡bin服务设计

    上篇支付话题【老王开店和支付路由管理】聊到“九层之台,起于垒土”,如果路由是机制,是台子的话;最小的垒土就是我们的...

  • 支付渠道参数如何设计成路由化配置?

    今天我们来探讨在搭建支付系统时一个比较关键的问题:渠道参数路由化配置如何设计? 在开发支付系统的时候,我们经常会涉...

  • 从零打造聚合支付系统:二、建立领域模型

    从零打造聚合支付系统 系列文章链接如下 从零打造聚合支付系统:一、浅谈聚合支付的核心价值从零打造聚合支付系统:二、...

  • 从零打造聚合支付系统:四、打通任督二脉

    从零打造聚合支付系统 系列文章链接如下 从零打造聚合支付系统:一、浅谈聚合支付的核心价值从零打造聚合支付系统:二、...

网友评论

      本文标题:多渠道的支付系统之支付路由(二)

      本文链接:https://www.haomeiwen.com/subject/rfpucdtx.html