2023年“支付通道”接入和管理_第1页
2023年“支付通道”接入和管理_第2页
2023年“支付通道”接入和管理_第3页
2023年“支付通道”接入和管理_第4页
2023年“支付通道”接入和管理_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

“支付通道”接入和管理class="aligncentersize-fullwp-image-5791813"src="/wp-files/2023/03/DSS0jPRVmmpOboV3ZTrd.png"alt=""width="900"height="420"/>

从最初的现金支付到当下的电子支付,支付通道已然是日常生活和商业交易中不行或缺的部分,也是各种支付业务的基础。本文将具体解析如何接入支付通道及规划通道管理系统相关功能。

01什么是支付通道

以运输货物为例,要将一批货从A地运到B地,可实现的运输方式有路运、海运、铁运、空运。相同的目的地,不同的运输方式,往往还有很多不同的航道、铁道和大路可供选择,只不过过程中耗费的时间、担当的风险、金钱成本不同而已。

1.支付通道概念

类似于运输,支付通道的本质是通过构建一个个信息交换的环境,用于支持交易过程中多方之间的信息的传递和验证,以实现交易资金的流淌,最终促进交易的完成。

狭义上支付通道是指交易时连接消费者、商家和银行各方钱包账户的网络通路,而从广义上来看,只要能需满意支付的需求,并将信息、资金胜利平安地转移给对应的收款方的路径,即使是企业的用积分去支付、利用虚拟卡、利用虚拟账户等内部的资产形式来支付,与这些管理资产的系统对接接入,我们可以说接入了“内部的虚拟支付通道”。

2.支付通道的分类

随着支付行业的进展,不同支付场景催生出多种多样的支付通道,不同的通道细分出了不同的特点,我们可以从多个不同的维度进行分类,来更好地感知支付通道的差异。例如:

支持不同卡类型的通道:仅支持借记卡的通道、仅支持贷记卡的通道、借贷卡都支持的通道;扣款交互模式不同的通道:扣款前需要签约、鉴权的快捷通道、可建立预付授权关系,用于信用卡还款和水电煤缴费的代扣通道、需跳转银行页面进行付款的网银通道、通常被用于手机话费支付和流量充值等业务的手机运营商鉴权通道、支付时使用微信、支付宝等第三方支付平台输入支付密码或者进行指纹识别等进行认证的身份认证通道;交易支持不同发起方的通道:持卡人(用户)发起、商户(平台)发起;有不同行业限制的通道:微信代扣就仅限符合周期扣费和先享后付场景的行业使用,会员续费、水电煤民生类行业、打车、酒店类行业、停车场或高速大路无人缴费;扣款要素不同的通道:如网银需要卡号和密码二要素、快捷则需要验证卡号/账号、户名、证件号、手机号四要素;支付标的物不同的通道:比如用积分来支付、银行卡支付、代币支付、虚拟币支付、银行卡支付等。1)依据通道的用途

通道的用途,顾名思义就是通道的功能,直白一点就是用来干嘛的,分为收款、付款、认证、跨境等。

收款通道:常说做支付要先做收单,收款通道就是实现让别人的“资产”付给自己的通道,打比方有早餐店“扫码支付”收钱立牌、线下商超的POS机支付、各类公交地铁卡和乘车码。出款通道:“出来混总是要还的”,出款通道能够实现把自己的钱付给别人,好比公司给我们发工资的代付通道、敏捷用工通道、银企直连通道。鉴权通道:鉴权通道可以被想象成一条连接交易双方之间的平安通道,要先经过验证,才能通往支付之门。常见有银行卡签约验证;身份信息认证(四要素等),像账户的一些实名认证以及银行卡的绑定都需要用到;3D-Secure(3DS),一种用于网上支付的平安协议;指纹识别、面部识别等生物识别技术,通过授权人的生物特征来进行鉴权。2)依据通道支持的对象

通道支持的对象,指的是支付交易的双方是谁,可以是个人、企业、组织等,通常我们区分为对公和对私。

对公通道:用于企业账户支付,包括企业网银,企业账户代扣,企业转账等等。对私通道:用于个人账户支付,包括银行卡支付,微信、支付宝等三方个人账户支付。3)按渠道供应方分类

其实支付通道是分层次的,下层为上层服务。不同的角色(按有无支付牌照、金融资质区分)对应所需的通道供应方是不同的。

对于一般企业:通道的供应方是具有支付牌照的三方公司如支付宝、微信支付;各个银行;或者是企业自己内部搭建的虚拟账户支付通道、卡券支付通道、积分支付通道等。对于三方支付机构:那些有支付牌照,能对外供应支付力量的三方机构,他们需要的通道则是金融机构(银行、网联、银联)的核心系统。对于银行:银行所需的通道就是央行(也就是人行)的大小额系统、超级网银系统,这几个通道也是金融活动的根基。

4)其他分类

依据支付方式:就是用户在平台下单后调起收银台看到各种各样支付方式,包括云闪付、支付宝、微信支付、ApplePay等。如京东PC收银台就有2个支付品牌,京东支付和微信支付;3个支付方式,白条、小金库、微信扫码支付。

依据支付场景:包括线上支付、线下支付、跨境支付等。假设你深夜饿了,通过饿了么点外卖之后支付宝线上支付,或者出去楼下实体店面吃一碗隆江猪脚饭用二维码线下支付,然后早上醒来后像梁朝伟一样去伦敦喂鸽子,想喝一杯咖啡就需要用到跨境支付了。依据支付保障机制:包括担保交易(拍卖网站的拍卖交易就是一种担保交易方式)、中介支付(像电商支付平台,买家付款后会将资金冻结,待确认收货后才会把钱付给卖家)、风控评估(例如,贷款公司对借款人进行风险评估,推断其还款力量和信用水平)等。对支付通道有了初步的熟悉之后,我们来假定以下这样一个场景。假如你的公司要上线一个新业务,涉及到线上交易,需要你来负责接入支付,你会怎么处理。

3.支付通道的结构关系

要深如了解支付通道,我们还需要知道一个通道在支付体系中所存在的结构关系,这也是许多人简单混淆的,特殊是支付方式、支付通道、支付品牌、支付产品、支付合作方之间的关系。

支付方式、通道和品牌上文已经释义过,而什么是支付产品呢,我们借用微信支付的定义,支付产品其实就是支付机构针对某个支付场景,供应给外放使用的一套“解决方案”,其最基础也是最核心需要包含“支付通道”和“账户”两个服务,然后才能结合不同的场景包装出不同的产品。

1)支付通道-支付方式的关系

同一个支付方式,除了自身的官方通道,往往也会授权其他机构合作封装出对应通道,所以一个支付方式是由多个支付通道可以选择。

2)支付通道-支付合作方的关系

支付通道跟不同的合作方,又是处于什么关系呢。假设“光企业”要通过易票联接入微信支付的通道,那这条通道跟各个机构的关系如下。

3)支付通道-收付账户的关系

文章开头咱们也讲过,通道最终目的就算将不同收付账户之间的资金进行转移。以微信支付通道举例,可以看到通道和账户之间的关系和资金的转移。

4)一般商户的支付通道结构关系

作为一个一般的企业,是有可能同时接入多个支付方式,因此也会有多条支付通道,那么这之间整体的关系又是怎么样的呢。

5)一般商户与金融机构的支付通道结构关系

再往下走就涉及到支付机构和清结算机构了。

通过上面的结构关系分析,我们可以初步看出一个从用户支付方式到各层支付支付组织之间的关系。

02选择支付通道

查找合适的通道之前,我们来看下应当怎么选。

假设你是光企业的物流运输部,你需要选购一辆货车,那你确定需要关注对应货车的属性有哪些对吧?车型是一般货车还是牵引车、载重总量是多少、要燃油车还是新能源等。

选通道也是,要知道通道都有哪些属性,这些属性就是我们在选择时要思索的维度,这些属性也是后续路由去推断的维度依据。

了解了通道的属性,就对通道有了更直观的熟悉,那么就可以基于需求区选择所需要的通道了。

1.基于业务和交易场景做选择

要选择什么通道,要先了解业务的场景,不同的业务模式需要不同的支付方式。例如,传统的线下零售业务可以选择POS机、微信支付宝的主扫、扫脸等,而线上平台则需要依据不同的平台进行选择。

打比方公司预备依托微信小程序开发一款“针对园区等高密度打工人区域的午餐外卖”产品,则确定是需要选择接入“微信小程序支付”方式的通道,而不行能选择支付宝。当产品成熟了有余力了再考虑拓展其他平台或者接入其他支付方式的通道。

2.多维度指标评估预选通道

选定好合作机构之后,可以依据下表,评估该通道是否符合公司业务需求,评估满意需求的话,就可以着手接入了。

3.通道的接入流程

1)参加的团队成员及分工

2)对接预备

步骤一:明确自身需求

对接之前,先确定自己的功能需求,比如我们是做演唱会票务,用户抢票之后是不允许退款的,那此时没有退款功能也不影响第一期上线。另外假如咱们是租赁场景比如租房,需要向用户收押金,但是退款往往有时限,这个时候就需要思索其他退款方法了,比如接入打款通道。

步骤二:明确接口文档

一般的支付公司为了便利广阔用户使用,供应各种不同的接口,相同的功能也进行多变的实现。所以我们跟对方讲清需求后,对方开发人员通常比你更熟识接口的使用和效果,他们很可以关心我们快速找到最优的接口方案。

另外,许多合作方的文档都可能存在更新不准时问题,可以跟对方确定清晰用哪个板本的文档。

步骤三:研读接口文档

必需弄清你需要哪些接口后,我们要看清晰接口字段值怎么传、是否必传,以及有什么响应码。另外留意要和对方确定好返回结果是以码为准,还是以描述为准。

步骤四:输出需求文档

包含接入的背景,排列功能点,第一期做哪些。

这里先强调一个支付中和退款中的问题,肯定要牢记设计支付状态要考虑中间状态,以免产生线上问题。

此外平安类对接预备也需要提前沟通清晰,如IP地址白名单是否配置,怎么配置;公私钥加签验签;接口加密解密;是否需要专网、前置机堡垒机等,作为一般企业,假如不是对接银行核心系统的话,一般是不需要前置机堡垒机。这个环节你也可以拉上开发大哥帮助评估。

03通道管理系统设计

选择好要接入的之后,我们就需要规划我们的通道管理模块,以避开后续支付业务壮大了,最基础的模块却一团糟,由于许多人都是图快,先干上线,等到发觉好乱了的时候,已经为时已晚。

规划通道管理模块之前,我们先看下通道管理在整个业务系统中是在哪里发挥作用的。

上游系统选择完通道,就可以拉起对应的支付、退款、打款恳求了。

接着我们就来分析,我需要为通道管理规划什么样的功能。管理管理,首先咱们确定得知道有什么通道,才能管理吧,因此确定需要有一个通道管理列表。

1.通道管理列表

这里以入金通道举例子,接入通道之后,每一条通道都有唯一的通道名称和编码,这个好理解,就像每个人都有身份证和名称一样。然后再把通道关联上支付方式和状态,没有其他追求的话,这个通道管理也就能用起来了。

不过咱们还是要为以后打好基础,站在企业的角度,咱们是不是需要核算每一次支付产生,企业所要付出的成本,也就是通道手续费,此时我们就需要为该通道关联对应的“成本规章”;比如站在运营/维护通道人员的角度,通道的一些商户号、回调地址有时候也需要变更,我们是不是做成配置化会显得更人性化;假设我们财务要知道每一笔支付是去到哪个账户,好去核对每天的账目,那我们是不是需要在通道关联“入账账户”会让后续的对账更便利(留意这里不是指定真实的资金流渠道哪个账户,而是纯粹的记录,便利后续核账)。

至于“映射通道代码编码”和“权重”,没有也行。“权重”主要是为了便利路由去兜底一个支付通道。而“映射通道代码编码”作用是让运营和后续接手的开发知道,这一条我们“定义的通道”对应是走那一套真实的通道代码。阐述一个详细状况,当我们公司接入某家公司同一条通道,但是出于商务等缘由开通了几个商户号,这几个商户号要参加路由切换,而背后对应的代码,则是同一套。

所以一开头设计的时候,个人建议把我“不同真实通道+不同商户号”为最小颗粒度,定义我们通道管理里的唯一通道。

2.通道成本规章

通道成本规章我们设计成单独配置规章,然后再从通道关联对应的成本规章,这样就不用新增通道的时候反复配置同样的成本规章。

遇到银行卡通道的时候,不同的银行收的费用可能会不一样,所以可以依据自身需求定义一个特别银行特别配置,假如特别银行多的话,建议用导入配置文件的交互形式。

至于通道成本怎么用呢,其实就是在我们发起交易和退款的时候,读取对应通道的成本规章,计算出这一笔交易所产生的成本,并记录在每一笔支付记录里面,以后统计就可以很便利拉。

3.通道参数配置

通道参数配置,一般是配置比较敏感的内容,商户号、恳求地址等,记得做好菜单或者功能权限,专人专用。

04银行卡代扣通道接入实战

1.接入背景

为给客户供应更快捷、更优秀的支付体验,我们团队打算开发上线一个银行卡代扣支付功能,让用户实现账单的自动代扣支付,免去繁琐的操作。

经过公司领导层协商,打算接入PAF协议支付这条通道。

2.研读接口文档

1)接口调用流程

通过接口调用流程,我们可以看出要银行卡代扣通道,要完成支付之前,还需要进行签约两步。

第一步调用协议签约接口进行签约恳求,下发短信给用户,用户输入短信后调用协议签约短信验证接口验证验证码,完成签约;

其次步通过协议签约返回的信息(签约号)进行协议扣款,并同步返回交易状态。

弄清晰流程之后,我们连续细看接口文档。

2)签约环节

①协议签约接口

就是发起协议签约申请,发起胜利后会给持卡人下发一条短信。

可以看到这条通道申请协议签约的时候,需要上送一个银行编码,并且这个编码是要依据这条通道的定义来,看到这里我们就要联想起两个问题。

第一点,卡签约的时候需要知道这张卡是什么银行卡,这个后续跟大家介绍卡bin模块。其次点是,不同无卡通道有可能存在的特别标准,使用的银行编码标准与其他不相同,这时可以回想我们的通道属性和特征,就存在通道银行编码的对应维护了。

这里再说一个点,有一些通道签约信用卡的时候,需要上送CCV和有效期,而刚好这条通道不需要,因此前端签约页面也需要依据不同的通道进行路由,从这里又印证了咱们通道管理和维护还是蛮重要的。

调用签约申请之后,合作方会给持卡人手机发送短信,并接口返回一个令牌号。

②短信验证接口

用户输入短信验证码后,接口上送验证码和令牌号,就可以完成短信验证,验证通过就可以签约胜利,猎取对应的协议号。

3)扣款和退款环节

①扣款接口

拿到签约协议号,则可以依据该协议号进行发起扣款,咱们看接口说明,需要特殊留意交易金额这个字段,单位是分,千万要搞清晰交易金额的单位,别摆大乌龙。

另外咱们看到有一个后台通知地址,他是我们发起扣款交易时,指定一个交易结果的通知地址,当交易有结果后,通道方会将结果告知我们,根据上述地址。像更严密的通道方还会要求接入方进行结果响应,并且有一套完整的通知策略。

发起扣款之后,我们就需要关注扣款是否胜利,可以看到响应信息已经说明这个操作胜利仅代表恳求胜利,不代表交易胜利。

因此这里重点说一声,支付状态肯定要有支付中这个中间状态,以及要对支付中这个状态有对应的补偿机制,不然很简单发生线上交易事故。当你发起一笔交易的时候,还没收到通道方的结果之前这一笔交易就是支付中,等到有回调结果或者主动查询,再依据结果更改状态。

另外我们也要关注,单笔交易有无最低金额限制,以及并发量最多是多少,能不能多线程。

顺便再提一嘴,最好建议开发大哥在封装支付和退款接口的时候,即使接入了许多不同的通道,建议也尽量封装成一个统一的下单接口和回调接口给业务层用,可以避开许多麻烦。

以及肯定要让前后端大哥们记得做防抖!

②退款接口

退款也可以看到,金额单位是分,以及退款也需要加退款中状态,同扣款一样就不赘述。

这种退款是原路退回,通道方会做好校验,一般不太可能一笔支付多退了钱,倒是要考虑退款时效是多长(有的合作方限制交易半年或一年后就不能退款)、能不能部分退款、退款次数有没有限制、同一笔支付能不能同时发起2次退款。

4)响应码

一般响应码有公共响应码和不同接口对应的业务响应码,这里建议前期梳理出一些常见通用的响应码,并“翻译”出用户可读懂的文字,以供展现。以及可以在报错类的提示前面加上通道合作方英文,以便利定位是我们系统报错,还是哪个通道方报错。

如我们公司定义为DM,某通道方定义为PAF,则报错内容展现为PAF:XXXXX,就可以很快速定位到是通道方的报错。

3.功能规划

1)用户端签约

考虑到用户体验问题,用户绑卡签约的时候最好就是不用自己输入卡号和选择所属银行。因此我们就要接入银行卡OCR功能,以及需要依据OCR识别出来的卡号匹配到银行卡所属的银行以及银行卡的类型,才能依据通道方的要求来上送银行编码和卡类型,这个时候卡bin模块就可以派上用场。

详细用户端交互大家可以去参考支付宝、微信等大产品。

此外建议保留让用户手动选择更改银行卡所属银行的功能,避开卡号识别错误导致无法进行签约。

2)卡bin管理

卡BIN是一种标识银行卡的编码方式,又称为银行识别码。它通常由6到9个数字组成,前几位数字可以表明银行卡所属的银行、卡的种类以及卡的国际标准组织(ISO)代码等信息。卡BIN在银行卡的处理流程中特别重要,可以用来验证卡的有效性、确定卡的类型及所属银行等信息。

国内的卡表信息如下图,一般跟通道方拿一下都会有。

经过数据清洗之后,提取我们所需的信息,银行卡中心的卡BIN管理就出来了。更加专业一点的公司甚至会将卡BIN图标配置进来,以及将通道和卡BIN进行匹配关联维护,做到更加精细化管理通道所支持的力量。

有了卡BIN之后,我们就能依据用户输入的银行卡号匹配该卡所属银行。

匹配规律可以如下:

首先用银行卡验证luhn算法校验卡号的正确性,如不正确可以提示用户检查修改卡号。其原理是将银行卡号逐位相加,然后将结果与校验码比较。详细步骤如下:

从银行卡号的最终一位数字开头,逆向将每个数字和它的位数做乘积。将这些乘积相加,得到一个和值。将和值除以模数(10)取余,得到校验码。假如校验码与银行卡号的最终一位数字相同,则银行卡号有效,否则银行卡号无效。以中国银行卡为例,luha算法的模数为10,校验码为银行卡号末位数字。

实际操作中,可以先将银行卡号转换为int类型,再进行计算和比较。例如,以下代码可以验证一个银行卡号是否有效:

`python

defcheck_luhn(card_num):

num_list=list(map(int,str(card_num)))

foriinrange(len(num_list)-2,-1,-2):

num_list[i]=1

ifnum_list[i]9:

num_list[i]-=9

ifsum(num_list)%10==0:

returnTrue

else:

returnFalse

`

其中,str(card_num)将card_num转换为字符串,map(int,str(card_num))将字符串转换为由每位数字组成的列表,然后进行逆向乘积求和,并进行校验。

代码来源:chatGPT,仅供参考。

目前银联卡几乎都支持校验码算法,但是也不排解极个别不支持此算法的,如杭州银行早期发行的西湖卡和浙江民泰商业银行。

银行卡号检测正确之后,就从10位开头遍历卡bin表,依次递减至6位,直到找到唯一卡bin为止,并返回该卡bin对应的银行卡信息和所属银行。(目前国内银联卡,因银行众多,特殊是村镇银行的存在,BIN长度以6位占绝大部分,另外还存在7、8、9、10等位数卡BIN)。

假如要更严谨,还可以匹配银行卡长度对应得上不。

3)银行管理

银行管理用于维护企业自己系统的标准银行及编码,为什么要加自己内部的标准?

还记得上文说过的不同通道可能有不同的银行编码标准吗?假如我们接了多个通道都有不同标准的银行编码,那么我们要依据我们自己的卡BIN,匹配我们标准的银行编码,再去映射不同的通道编码。

再者当我们没有接入多个通道的时候,不用简单的路由的时候,哪些银行的储蓄卡、信用卡是否支持签约代扣,也可以放在此处去维护管理,当前端识别到不支持的银行的时候,则直接提示用户换卡即可。

4)签约

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论