今天要分享的内容,会以商家的视角去分析对接渠道过程中需要关注的问题。
这部分内容主要介绍常见支付渠道的业务规则以及选择渠道过程中需要关注哪些重点,主要面向商家的业务部门,方便根据自身业务模式匹配最合适的支付渠道。
1. 产品概述和应用场景
要想了解支付渠道的业务规则,首先需要知道目前主要的支付渠道、支付产品有哪些,是什么模式,然后商家根据自身产品及业务模式去匹配最优的支付方式。
银行:招行、建行、农行等
每个渠道有自己的收款产品,对应在不同的支付终端上使用。这里讲一下,「支付终端」换成「支付场景」也是合适的,不同公司团队个人叫法可能有所不同,总之方便理解来看就是电脑网站、手机网站以及手机应用等等。
这里将各个渠道的收付款产品放到了对应的支付终端下,不同支付终端下支持的渠道支付产品也有所区别,且需要独立申请开通权限。
微信在移动应用、手机网页、pc 网页、公众号内、线下扫码、微信小程序中的支付产品分别是:APP 支付、H5 支付、扫码支付、公众号支付(仅能在微信浏览器内支付)、刷卡支付(也包含扫码支付 )、小程序支付( 其中小程序内不能使用其他渠道的支付产品)。扫码支付和刷卡支付的区别是,前者是用户扫商家码,后者是用户的支付码被商家扫。其中需要注意的是,APP 支付和公众号支付需要分别在开放平台和公众平台进行申请开通。开通公众号支付后,默认会开通扫码支付和刷卡支付的产品权限。H5 支付功能是在微信商户平台上开通的支付产品权限,前提是至少开通APP支付、小程序支付、公众号支付的其中一种支付权限。
分期产品:目前比较常见的花呗分期和京东白条,这两家的分期产品早期都是放在收银台的一种支付方式,C 端用户在选择支付宝或者京东支付之前并不能直观的了解到该商家是否支持分期,所以后期两家也推出了分期前置的模式,即支持分期支付方式直接在商家收银台进行展示(对于 C 端用户来讲,更加直观,体验更好,能够有效降低消费者心里门槛),与支付宝、微信、QQ 钱包支付可做平级展示。
简单介绍了商家收款,我们也来看看商家付款的产品功能:
代付:代付,我们通常称「代付」主要指的是商家充值到在支付机构开通的备付金账户,然后直接调用代付接口下发给 C 端用户或者 B 端商家银行账户。
转代付(这个叫法可能不同公司有所不同,转代付比较容易理解):转代付,这里指的是先通过支付渠道的支付产品收款至企业账户,然后直接通过出款接口进行下发。现在的微信新资金流的企业付款就是转代付的模式。
分账(严格意义来讲不能称之为商家出款行为):指的是商家在发起收款订单时即指定了相关的分账信息,用户支付成功时,直接将资金分账到对应的 B 端商家企业账户。
下面一张图看看转代付和分账的区别:
B 商家发起收款 100 元,后续可以给 C 端商家或者 B 端商家进行打款。这里需要注明的是,给商家或者用户打款的 X 和 Y 元,跟 100元没有必然联系,只要确保出款账户内资金足够用于 B 商家打款即可。
这里需要提及下,微信的企业付款只能针对 C 端用户,不能给 B 端商家打款。支付宝的单笔转账可以给 C 端用户和 B 端商家的支付宝账户转账。
因为微信现在区分新旧资金流,所以现在企业付款到零钱资金根据商户号的账户开通情况,实际出款账户有做区别:
默认情况下,企业付款到零钱使用商户号基本户(或余额账户)余额。如商户号已开通运营账户,则企业付款到零钱使用运营账户内的资金。
基本户(或上述其他出款账户)的资金来源,可能是交易结算款项(仅基本户),或给账户充值的资金。当出款账户余额不足时,付款将因余额不足而付款失败。
B 商家发起 100 元收款,含分账指令给 C 商户 20 元,那么最终用户完成这笔订单支付的时候,则商家 B 收款 80 元,商家 C 收款 20 元。分账模式比较适用于平台类型的商家或者集团类型的商家,目前所接触到的微信分账并没有对外开放申请,最多关联的分账账户有 5 个的限制。支付宝的分账目前看到的是在跨境上有用到,最多支持在 10 个以内。两个分账功能均需要单独联系 BD 进行申请。
2. 行业准入和区别
(1)商家收款类别
1)这里简单列了下大的分类,主要有实物类、虚拟类和政府/事业单位(主要指的公立医院和学校)走微信和支付宝的渠道申请所对应的费率和结算周期的区别。特殊行业对应所需要的资质也有所区别。
实物类:医疗类的会有资质文件才可以申请,比如医疗器械、身体康复用品的需要持有《医疗器械经营企业许可证》、经营内容包含美瞳或者隐形眼镜,则需要提供《第三类医疗器械销售资质》等等;
虚拟类:比如游戏道具购买,需要具备《网络文化经营许可证》。
2)商家的行业可以直接参照腾讯或者支付宝的的商家类目、费率、资质的文档,简单粗暴,可以到官网上了解一下。
3)这里提及一下,前面的花呗分期和京东白条产品:使用的前提都是至少拥有支付宝或者京东对应的基础支付功能,才能进一步申请分期的产品权限,目前两家的分期产品的权限都是需要单独联系 BD ,走线下申请的流程,周期较长。
(2)商家付款类别
Tips:微信新资金流开通企业付款功能要求商户号开通 90 天且持续 30 天以上有交易流水,才可以申请开通「企业付款」权限,且目前服务商模式不支持企业付款。
目前银行卡代付的申请,看各家机构的要求,目前尚且没有比较固定的行业分类。基本上 case by case 的去看。所以我们主要看看在使用商家付款产品的时候,需要关注哪些内容。
① 费用
看代付的费用从两种情况来看,一个是付款到银行卡,一个是付款到钱包账户。
前者的费用一般是按照单笔手续费计算,比如 1-2 元/笔。后者代付到钱包一般是免费,这个手续费商家不承担,主要在用户发起提现的时候会需要支付提现手续费。
② 限额
各家支付机构不一样,但是主要需要与支付机构沟通的是单笔、单日、单月、以及每天的调用频次等是否有限制,限制是多少。
避免业务部门已经申请完成了渠道,后面产品对接发现根本不能满足业务应用场景,那就后使用起来就 GG 了。
③ 到账时间
选择商家付款渠道的时候也需要关注付款到账时间,因为有些应用场景对于实时性要求比较高。
④ 支持的银行
支持银行列表也需要多加关注,尤其是 B2B 转账或者对于有特殊银行需求的商家。
前面在商家付款中提到的代付和转代付,对于微信的企业付款产品区分新旧资金流。
微信现在区分新旧资金流企业付款到零钱资金根据商户号的账户开通情况,实际出款账户有做区别:
默认情况下,企业付款到零钱使用商户号基本户( 或余额账户 )余额。如商户号已开通运营账户,则企业付款到零钱使用运营账户内的资金。
基本户(或上述其他出款账户)的资金来源,可能是交易结算款项(仅基本户),或给账户充值的资金。当出款账户余额不足时,付款将因余额不足而付款失败。
3. 渠道合作模式和优惠政策
早期商家跟渠道的合作比较单一,但是近 2 年渠道也推出来比较多的合作模式来吸引商家以及合作伙伴。
简单介绍下各种合作模式:
直连
直连( 入驻 )
普通服务商
银行服务商
目前服务商模式做的比较好的是微信和支付宝,微信的营销活动做的比较好,之前的智慧餐厅推广叠加活动、随机立减活动,以及最近的朋友圈广告功能投放功能等等活动,无论是从商家成本还是用户体验上,都极大的调动符合条件客户参与活动的积极性。
各种合作模式的优缺点
4. 退款处理规则
接下来我们讲讲退款,原先「退款」这一块的逻辑是放在后面渠道开发对接部分的。
但是因为近期日常渠道运营中遇见了一个关于手续费的问题,退款是否退回手续费的问题一定程度上决定了某些特定场景的商户对于支付渠道的选择,因此把它提到业务规则中来聊一聊。
为什么在业务对接的时候就需要关注上图这三点呢?
某些特定行业对于退款的周期有特殊要求,比如共享单车的押金、家具公司的较长退货期等等,这一类允许较长周期退款的行业都需要关注各个渠道的退款周期。如果退款周期不满足需求,最好在入网阶段就能提出延长订单可退款周期的需求,按照渠道要求提交业务说明并变更退款周期。避免到了后期渠道不好调整而导致用户与商家的纠纷投诉。
关于退款是否退回手续费的规则需要提前与渠道确认好,正常情况下当用户产生退款,商家是会被渠道退回支付时收取的交易手续费的。但少部分支付渠道存在以下几种情况:退款不退回手续费、部分退款不退回手续费、退款只退部分手续费(退动态手续费,不退固定手续费部分)
因此需要提前捋顺几个问题:
退款功能是否需要提前额外申请
退款周期是否需要延长
退款资金是否需要额外充值:待结算账户、余额充值账户
退款或者撤销是否退回原订单的支付手续费
以下是一张关于各渠道的退款周期,是否退回手续费以及退回手续费的逻辑说明:
(1)资金结算方式
手动提现还是自动结算,自动结算是否有资金门槛(因为在跨境微信支付宝的渠道资金结算,直连会有 5000 usd 结算资金门槛)
(2)获取对账单方式
业务需要提前确认获取对账单方式,是只能通过商户平台下载还是也能通过接口下载。
如果通过接口下载是否需要提前走申请流程,因为我们有遇见过一些支付渠道下载对账单也需要提前走线下公司盖章的申请流程,周期略长。前期若没有确认好,会都后期项目开发周期造成影响。
(3)清分时间
这个跟获取对账单方式时候可以一并确认,一般渠道的清分时间都是 00-24 点之间的交易。
(4)区分不同交易对账单
微信新资金流,因为没有待结算和余额充值账户的概念,退款都是从基本户中出去的,所以退款的订单都会在 ALL 类型的对账单中;
微信旧资金流,区分待结算账户和充值余额账户,即使针对 ALL 类型的对账单,也不包含余额充值的退款对账单。
这部分内容着重介绍在开发对接渠道过程中需要关注哪些问题,主要面向商家的产品部门。
第一部分主要讲了商家的业务部门在前期申请渠道时候,场景适配以及需要提前跟渠道沟通了解的注意事项。
第二部分就涉及到产品技术对接阶段的一些细节处理。
1. 渠道对接步骤和内容
公司内各个部门不同的产品,线上线下产品适用场景不同,费率会有所区分,注意事项在第一部分已经阐述。
切记不要申请错了权限,这个对于微信是比较常见的问题( 服务号、订阅号、APP )
配置并获取参数,这一个步骤建议是产品与业务部门能一起操作、确认。另外如果有线下版本的协议,建议产品也可以看下,因为我们曾经遇见过一些渠道有业务处理时间的限制,但是没有写在线下开发文档中,是单独列在了协议中。在获取参数时,部分渠道是一定要通过测试案例提交才能获取正式参数,此处也需要留足项目时间。
对接支付相关的 API ,按照自己内部支付模块以及支付渠道的对接开发文档对接开发即可。
上线结果通知:这一步列在这里的原因是因为对外的技术服务商在日常工作中需要留足足够的时间给协同模块。
关联模块功能更新:可以完成一笔成功的交易并不代表整个交易功能已经完善。比如对于交易明细的展示和管理、报表展示。后期商家内部渠道参数的更新、维护等配套模块也需要做更新。
① 是否需要添加出口IP
部分渠道需要添加 IP 白名单才可以进行开发、测试调试,有些渠道较快的能添加完成,但是有些银行类的可能要走比较漫长的线下申请。
② 对接的接口版本
不同支付渠道的接口版本对应的支付渠道的参数也不一样,所以在商务确定产品合作后需要确认对应的业务申请参数和渠道开发的接口版本是否一致。
③ 订单号长度和组合
支付机构遇到此类问题比较多。每个渠道的订单规则其实略有不同,例如招行早期的订单号只允许数字形式,不允许其他任何符号;微信、支付宝和银联对订单号的长度要求不同,因此建议订单号长度为 8~20 位,目前来看基本可以适配要求。
④ 交易金额单位
一般情况下单位都是以「分」为单位,但也遇到过以「元」为单位的情况。
部分渠道会因为在商品描述中加入了特殊字符而导致交易失败,然后因为报错提示信息不明显,会导致开发定位较长时间,另外需要确认该信息是否会展示在用户所见的渠道支付页上,避免字段设置的信息给用户产生疑惑。
⑥ 收款公司名称展示
常规情况下,大部分支付渠道是可以在后台进行设置或者在入网时有很清晰的提示,但是有些渠道是通过某个字段来进行填写并上传的,比如建行龙支付。
⑦ 订单过期时间的模式确认
绝对时间( 某个固定的时间 )
相对时间( 例如用户在支付页面密码输错了扣款失败,才开始计时 )
二维码有效期
过期时间单位
⑧分期支付是否支持前置展示
主要是用户体验的问题,假设不做前置展示可能会在最后一步支付时流失掉这个订单。
⑨ 是否支持禁用信用卡
有些商家不希望用户支付使用信用卡,部分渠道可以通过请求参数字段进行设置,也有渠道通过入网签订协议后台配置。
⑩ 前端带回的参数信息
大部分商家比较在意前端带回的结果参数信息,例如订单号、支付结果等等
① 可退款订单周期、权限开通
之前在对接线下扫码支付,走服务商模式,退款权限并不默认开通,需要走线下申请的流程后才可以开通。可退款订单周期如之前提及,需要提前申请确认。
② 单笔订单退款次数、频率限制
例如微信是有单笔订单对多 50 次退款限制的,虽然实际场景中遇见单笔退款几十次概率很小,但一旦出现这类情况就需要做好线下给用户退款的准备。
③ 是否支持原单重试
这种场景微信比较多,微信现在文档上备注的已经十分详细了,尤其对于商家转账红包这种类型的出款,一定需要提前确认是否支持原单重试,避免重复出款。
④ 是否支持部分退款& 是否退还手续费以及计算逻辑
对接的渠道大部分都支持部分退款,但是有些个别的渠道是支持退款不退手续费。因此商家遇到用户退款的情况,就会在退款时损失手续费。同时对计算逻辑也要进一步确认,有些渠道的手续费分两部分,一部分是固定手续费,一部分是动态手续费。在退款时也会有全退、只退动态手续费不退固定手续费以及手续费全部不退的情况。
⑤ 多选一单号请求,需要确认优先级
这个在退款时微信、QQ 钱包都有过类似的问题,例如早期 QQ 钱包超过 30 天的订单如果不使用交易单号就会报错。因此如果渠道的文档表示两个字段二选一都行,就要提前确认好优先级。
⑥ 退款描述特殊支付,是否展现在用户可见的地方
这部分和前面是一样的,就不细说了。
⑦ 是否支持退款的异步通知
最早期的时候微信退款无异步通知,我们自己做了个自动查询模块,定时(5s、10s、20s、1min 等等递增)去调用退款查询接口来获取退款状态,现在微信也支持了退款成功的异步通知,主要的支付渠道也都支持了该功能。
⑧ 是否区分退款资金来源
这块主要是需要清楚地明白和业务的关联点在哪里,一般在退款接口上会有区分字段提示。
⑨ 同步返回的状态,是否可以作为最终结果
该种情况除了接口文档上的描述外,建议与渠道再做二次确认。通常是根据异步通知或者查询的退款结果进行更新,但是存在部分渠道建议直接根据创建退款同步返回结果直接判断的情况,比如支付宝国际的退款,并不提供退款查询接口。
① 支付和退款的查询是否区分接口
有的渠道不作区分,但有的渠道例如单号是区分支付成功单号以及退款单号两种不同的字段。
② 确认查询接口展示的状态参数
比如退款、用户被扫等模式可能存在多个状态,需要考虑多状态之间的关系和更新逻辑。
③ 多选一单号查询,需要确认优先级
与前文相同,不做赘述。
④ 区分通信结果、业务结果、交易结果
查询一个交易结果之前需要判断通信结果以及业务结果,最终展示的交易状态要根据交交易结果来判断。
⑤ 结算金额、优惠金额、退款渠道等信息是否返回
常规情况下渠道会通过支付成功之后的异步通知或者查询返回对应的信息,但是也存在部分渠道是通过后台配置的优惠信息,仅在支付成功页面、对账单中才有体现,并不会体现在交易返回参数中。
⑥ 查询和异步通知返回的交易相关信息一致
例如支付宝国际支付,查询与异步通知返回的信息不一致,是由于币种的转换造成的。存在部分返回信息需要提前邮件申请进行配置,虽然对外并没有文档指引和说明。
⑦ 查询频率是否限制,是否有建议的查询间隔机制
不同的渠道略有不同,有的渠道对频率有限制、间隔有限制。因此在前期需要确认。
① 各种交易是否有异步通知
产品与技术对接过程当中,需要稍微注意一下,因为渠道的文档都放一起,按照惯例是都有的,但是背不住要踩坑,比如线下支付的用户被扫模式。
② 异步通知地址是请求上送还是后台固定配置
不同渠道不一样,大部分是通过接口请求上送;小部分渠道通过后台固定地址配置。
③ 何种状态会触发异步通知
需要校验异步通知的状态类型,比如支付成功、订单支付中、订单关闭等等,避免未区分异步通知类型导致错误更新订单状态。
④ 交易成功时间字段
有些渠道交易成功时间这个字段不正确,可能会导致对账会出现一些问题,需要人工去处理。
⑤ 是否带回交易请求上送的附加信息
在渠道提供的交易请求信息并不足以区分商家内部的业务订单时,商家往往还会上送额外的字段信息,有些渠道有去无回,即异步通知不带回该额外信息,导致商家业务更新异常。
⑥ 重试机制以及恢复信息
重试机制需要提前确认,如果渠道间隔时间比较长,就需要提前在订单过期前之前加一些查询机制,避免用户体验糟糕。
⑦ 签名验证或IP 白名单
异步通知的验证真伪性一般可以通过签名或者 IP 白名单,如果是 IP 白名单的话提现与渠道确认好出口 IP 。
2. 常见对接问题和解决方案
一般情况下上图中的情况会导致交易异常,因此建议商家除了对接渠道异步通知也要对接查询接口,可以设置查询任务;同时不建议商家以业务查询结果为参考,查询服务端的订单状态,一旦不一致就调用接口去查询一下,更保险。还有不要查询频率太高,可能造成渠道结果返回不了。
例如支付宝和微信使用线下渠道会有风控( 一般线上套线下才会有 ),因此匹配自身场景去申请渠道是最安全的。渠道系统异常的情况,最好是多对接几个渠道,万一挂掉了一个另一个也不影响使用。渠道更新接口/ 规则没有及时同步的情况,这就需要经常爬一下各渠道的公告平台了。渠道数据状态不同步的情况只能去咨询渠道,根据渠道的建议去修改查询模块。