支付网关设计概述

说到支付网关,首先看一下网关的定义,网关的作用是实现网络之间的通讯链接,包含两个基本功能:网间连接和协议转换。同理,商户业务系统中的支付板块实现的就是商户业务系统与银行支付系统之间的链接,所起到的作用是类似的,可以被看作为一个网关。因此,我们今天要讲的支付网关设计,其实就是商户业务系统的支付板块设计。

1.支付网关的由来

在电子支付还没有普及的时候,商户支持一家银行是通过对接这家银行提供的一个系统接口来完成的。然后随着支付行业的不断发展,商户已经不满足于支付环节只支持一个银行或者两个银行了。此时商户的支付系统需要同时对接多个银行,并处理好由此导致的很多衍生问题,例如对账、清算等。而且开发一套这样的系统所需的人力成本和时间成本也是商户所不愿意接受的。

此时,第三方支付机构诞生了,他们来开发运营一套系统,代替商户实现同时对接多个银行系统的功能,然后通过统一的接口提供给商户使用。所以这一个阶段第三方支付机构的系统就是支付网关。它所具备的基础功能除了实现商户业务系统与银行系统之间的链接,还包括很多其它的支付业务相关基础功能,包括:订单管理、渠道管理、风控管理、路由配置、帐务管理、清算管理、商户管理和用户管理等。

随着线上支付的进一步发展,第三方支付机构越来越多,这时候商户需要解决的问题已经不再是如何接入多家银行,而是如何接入多家支付机构。此时商户对支付系统的需求也发生了变化,网关的位置也进一步前移,对商户的支付系统提出了更高的要求。现在也有一个角色愿意为商户来实现类似功能,那就是类似Ping++ 这样的聚合支付服务提供商。

从商户的角度讲,此时的支付网关和传统支付网关区别在于,关注点会更少,商户只需要关注订单、渠道、风控、账务管理和路由配置即可。为了更清楚的解释说明,我用一趟出境自由行之旅来演示一笔订单在上述各个模块之间的流转过程。通常一笔订单的处理涉及到四个环节,有创建订单、报文签字、支付路由、结果确认。为了更好的配套,我们还加入了商户入网。

2.护照-渠道入网申请

渠道入网申请是订单和渠道管理的首要环节,就好比出境游首先要有护照。当然并不是说有了护照就可以去任意国家和地区。不同的地区需要不同的护照类型(护照,港澳通行证等)。同样,使用不同的支付渠道,也需要分别进行入网申请。这里,尤其需要了解的一点是,支付渠道不等于支付产品。无论支付宝或者微信支付,在不同的前端场景下,比如 App 支付、网页支付,都有相应的支付产品。所以,并不是说商户要用微信支付就只需要接入微信支付的一个接口。微信的开放平台和微信的公众平台就需要申请两个独立的支付权限,经常有客户误把开放平台的 ID 配到公众平台,导致报错。

3.签证 - 创建支付订单

有了护照以后,我们还需要办理签证才能出国。此时是需要提供一些必要信息的,例如往返机票信息,目的地酒店信息等。这也与创建支付订单同理,我们需要提供一笔订单所需的必要要素。在这个环节,我们需要注意一下几点:

订单号

如果自己做支付系统,订单号是第一个要考虑到的问题。当我们同时做多个支付产品对接的时候,首先需要注意订单号的格式,不同支付产品渠道对订单的格式要求不一样,特别是银行端的格式更特殊一些。其次是订单号的唯一性。在实际操作的时候,订单号的唯一性不仅和技术实现有关,还和业务流程有关,例如同一订单是否支持多次支付等。这里我们建议区分业务订单和支付订单两个维度。通过业务订单和支付订单的一对多映射来解决唯一性问题。

订单有效期

订单有效期可以分为两个部分:支付有效期和退款有效期。

支付有效期是可以商户自定义的,需要注意的是不同渠道的参数使用方法不一样,有的是相对时间,有的是绝对时间。

而退款有效期是由渠道规定的,不同机构的退款有效期不一样。这样我们在业务设计的时候需要取一个最小值。对于超出渠道退款有效期的订单而业务上又要允许退款,那么为了保证订单信息的正确性,必要的时候必须使用专门的逻辑来处理。

4.接口适

支付宝手机支付和微信支付/银联移动支付的接口区别可以用签证类型很好的类比。

支付宝手机支付发起是由商户在后台将所有东西按照渠道的要求进行处理、准备,然后直接前端通过控件调起支付宝的App发起支付。这非常像我们的落地签,自己准备好必要材料,飞机落地以后对方海关才进行查验。

而微信支付和银联移动支付等渠道则必须先进行后台请求,请求通过后,再由前端发起支付动作。这就和标准的签证非常类似了,资料不符合要求前,是拿不到签证的,也就无法进行后续操作。这就是不同支付渠道在业务逻辑上有差异的地方,不同渠道的订单落地顺序、落地内容,以及后续的状态更新等在支付网关设计时都需要相应考虑。

5.出境查验 - 报文签名

出境查验相当于报文签名。出境查验的时候,我们需要检查护照和签证的合法性。签名的作用类似,一是防篡改,二是防抵赖。这个环节,需要弄清楚两个概念:对称加密AES和非对称加密RSA。可以区分公私钥就基本上没有问题了。

6.风控管理

出行要注意安全,同理,支付系统也要考虑到风控管理。通常我们把风控管理分为两个层面,一个是账户资金风险控制,另外一个是业务风险控制。

账户资金风险控制这环是由支付机构来负责的,因为如果支付机构的支付安全层面出现问题,将导致用户信息泄露、资金损失以及非法交易等一系列问题。所以这些机构都花了足够的精力去做账户风险控制,这样的后果就是,商户首先是无法接触到消费者的个人支付敏感要素的。当然,我们就可以投入更多的精力在业务风险的领域。

业务领域的风险控制更多需要考虑业务漏洞导致的风险。互联网产品常见业务风险包括恶意刷单、套现、薅羊毛。我们防止这几类风险的常见方式是通过对一些关键要素的采集,比如交易帐户、支付帐户、交易频次、交易金额、交易时间、交易地点等,然后基于相应的风控规则进行判断,最后根据判断结果来做相应处理。

7.入境查验 - 结果通知,验签,状态更新

这是支付最后的环节。很多商户经常困惑是通过异步通知,还是通过主动查询来确定最终支付结果?这两个方案我们认为是并存的,一个是保证效率,一个是保证可用性。我们建议客户根据自己的业务特点对两个机制进行有效的配合使用。

同时,我们需要注意的是并不是所有的支付机构都具备异步通知逻辑;也并不是所有的退款都有异步通知,比如微信退款。所以,支付网关要在这个环节来进行同一化处理,确保后端业务系统对接的规则一致性。

8.旅游账单 -对账

最后讲一下对账,对账管理一般分为渠道对账和内部对账。渠道对账要保证清算资金、支付订单状态的一致性,内部对帐必须保证交易单、支付单、财务明细的一致性。

如何对账

通常来说,对账主要包含以下几步:获取对帐单,对账单数据格式化,交易金额和订单状态一致性核查,以及差错处理。

差错有两种常规类型:长款和短款。站在商户维度来说,长款就是商户多收到钱。一般来说,订单状态不正确和重复支付都会导致长款。短款就是商户少收到钱,这种情况一般概率较低,大多出现在第三方机构与银行系统之间的业务对接环节。

订单的差错处理,我们强烈建议人工介入,不要自动处理。因为这个涉及到资金的进出,必须要谨慎处理。

9.支付路由

经常会有商户问,我们需不需要做支付路由。实际上,在目前支付网关需要对接的是不同支付产品,当该支付产品的入口是唯一的时候,是无法进行支付路由设计的,最直接的例子就是微信和支付宝。但现在不少银行都成了微信和支付宝的代理商,支持他们的线下或者线上支付产品。在这个前提下,是可以做一定的支付路由处理的。通常来说,支付路由主要是基于:成本,稳定性和流量均衡这几点来考虑进行设计的。而且,支付路由不单单是一个支付请求的路由设计,对于后续支付结果的处理,资金的对账等都需要仔细分析处理。

最后总结一下,我们通过一个订单的处理过程,基本介绍了一个支付网关涉及到几个板块,包括:财务管理、业务管理、路由管理、渠道管理和风控管理。但仅有这些还是不够的,作为支付网关来讲,我们还要做接入管理,进行流量控制和准入控制。需要做基础平台支撑,进行系统状态监控,提供内部运维管理。只有这样,才可以算是一个相对完备的支付路由,如下图所示。

支付路由

作者 | Ping++ 赵宇

来源 | Ping++ 支付设计大会现场分享

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 《非银行支付机构网络支付业务管理办法》条款释义 - 中国支付网 - 中国支付行业第一门户网站2016年7月1日...
    菜菜苔阅读 7,495评论 1 44
  • 互联网金融经过近几年的快速发展,呈现出百家争鸣之势,未来依然将蓬勃发展。互联网金融涉及了理财、借贷、大数据征信、消...
    游侠儿阅读 13,427评论 8 94
  • 什么时候,能再次遇到你 人海茫茫中一眼泉水 相识时的,一夜金秋 今夕不见,红烛欲灭 抬起头 天边挂起了...
    绳子头阅读 87评论 0 0
  • 读过几本书,走过几段路,爱过几个人,你才成了今天的你。拥有浩然大气的胸怀,不复勇往的勇气,以及直面生死的淡然。尝遍...
    桃花太红李太白呀阅读 454评论 25 6
  • 我羡慕屋檐下的麻雀 能够在辽阔的蓝天上 自由的飞翔 我羡慕那白色的云霞 无忧的 随着风儿 飘浮在深蓝的天空 记得小...
    若笔浪阅读 177评论 0 0