如何搭建计费系统的渠道对账功能?这篇文章里,作者结合自身经验,从需求背景、需求分析、产品方案、等几个维度做了拆解和总结,一起来看看吧,或许会对想了解支付、计费系统设计等方面内容的同学有所帮助。
作者结合在支付领域工作一年的经验,并结合在跨境支付公司的实际项目和理论知识,对计费系统的渠道对账功能搭建进行详细阐述;供大家学习和参考。
一、需求背景目前渠道对账是资金根据渠道侧给的文件脚本生成,为方便资金更快的查看处理对账结果,上线渠道对账功能;同时核对渠道侧和我方交易侧的账单明细后将,渠道对账面板功能将结算金额按照计费规则拆解成费用项展示在面板上方便后续计费。
二、需求分析1. 目的
是确保所有交易都被正确无误地记录在账户或账单上,获取渠道和交易侧的匹配情况,方便资金处理对账结果,同时对无误的账单明细渠道对账后根据计费规则罗列对账单具体的收费项总的费用;
2. 跨境支付的渠道对账的内容
对的是账单明细和总额,由于Wechat和alipay渠道目前只有支付,无退款;所以这两个渠道只对支付明细;对退款不进行对账。
- 对明细:对的是渠道金融机构拿到的报表(明细)和公司数据库里的交易明细对账;最终显示的条目只展示交易侧和渠道侧的明细需要匹配多少条,成功匹配了多少条;未匹配多少条;
- 对总额:最终展示在页面上的是无差异账单明细中每个收费项的总额;不同的渠道匹配规则不同。主要展示结算总金额信息、和计费相关的具体收费项金额信息。
3. 对账时间和文件获取
1)文件上传模式:由于渠道侧的账单明细无法从数据库直接获取,是渠道那边发给我们的excel文件,因此;我们通过上传文件的形式进行匹配;支持excel\csv文件上传。
2)对账时间:由于负责资金的同事在中国,结合工作习惯以北京时间为准进行对账,每日0点,根据渠道侧的不同的币种,系统自动生成待上传账单的基本表头信息的条目;即根据币种不同显示渠道待上传的条目。
- 考虑提前生成脚本的好处:由于是对账文件是人工上传,系统根据渠道所支持的币种多少,对应生成多少条目;这样根据币种来划分方便后续资金结算;同时避免上传的文件有误;
- 由于负责资金的同事在中国,所以对账时间按照中国时间为准,但公司总部在国外的话结算日期按照总部所在国家为准,即当结算周期遇到节假日时,按照国外的节假日为准。
4. 文件解析
- 北京时间0点系统按照渠道的结算币种数量生成对应的渠道对账条目,次日资金上传从渠道那边获取的excel文件,通过人工上传进行对账;
- 由于渠道侧的文件来源于不同渠道方给的excel文件;文件取名或内容格式不一,因此该功能对上传的文件名格式不做限定;但是文件中字段的内容需要和渠道方核实,做格式兼容处理。
上传完成后系统自动解析,解析完成后对应以下几点:
1)当解析成功时,弹出弹窗【解析成功,是否开始对账】。
2)当解析失败时,有几点原因导致:
- 上传文件内容格式有误——找渠道侧确认文件内容;
- 上传的文件内容重复——需要把历史上传的文件删除后才能二次上传;
- 网络加载错误。
5. 对账匹配规则:以渠道侧数据为准
1)交易侧的匹配账单以当天账单的post_time字段为准进行匹配
比如10.17号获取账单、其账单内的post_time记录的是5.10号,则对应在系统中生成的条目是匹配时间是5.10号;开始对账时间是10.17号。
2)渠道侧和商户侧的账单明细按照PI号进行匹配
“PI号”是指付款信息号码(Payment Instruction Number),通常用于跟踪和匹配交易。PI号的达标意味着PI号字段的信息是准确、一致和完整的,这使得渠道侧和交易侧的账单能够按照PI号进行匹配。
3)币种和对账条目一一对应
由于渠道涉及多币种;考虑到不同币种汇率差异会导致对账金额不一致;随意不同渠道的对账条目按照币种划分;即以wechat为例,涉及到结算币种由GBP、HK和USD;即0点时系统准备拉取交易对账脚本,按照币种数量生成对应的条目,当天资金上传渠道侧文件时,同一份文件按照币种不同上传三次,每一次只解析和对账币种所对应的账单。
6. 对账结果
1)匹配无差异:平账;无需处理。
2)匹配有差异:对账金额不一致即交易或渠道的某一侧少钱。
由于具体的收费项是根据计费规则确定的;影响最终收费项金额的因素由:费率、汇率、费用计算公式,结算金额、和系统等因素组成。
① 时间差导致:由于不同地区和国家之间的时差和时区差异,会导致交易日期和时间的不匹配。
解决方案:对上传的渠道侧的数据,该日未对平的数据在数据库中回溯七天;并在差异处理中记录该条数据,如果七天内对平了该数据最终,则差异处理中该条数据自动删除;如果七天后仍未对平,则系统不再回溯,差异处理功能中仍会显示该条信息,对账结果显示有差异;状态显示待处理。
② 通信问题:由于渠道对账涉及多个系统和平台之间的数据传输,会存在通信问题,可能导致交易数据未能正确传递或同步,从而引起不平账。
解决方案同上。
③ 汇率差异:在跨境支付中,涉及不同货币的交易可能会受到汇率波动的影响。如果汇率不一致或不准确地应用于交易,可能会导致金额不匹配,从而引起不平账。
上线汇率面板功能,将汇率和计费系统联动;汇率面板中的数据每日从从中国银行和海云汇中直接拉取。当发掘拉去的汇率不合适时,支持人工修改。
7. 对账完成后的结果处理
对账完成后,会在【对账明细】字段中显示匹配结果,即交易侧和渠道侧的各自明细要匹配多少条;在【匹配结果】字段中显示成功匹配了多少条;有差异的有多少条;需要回溯的有多少条。
注:需要回溯的数据是指渠道侧或交易侧某一侧有这条数据;另一侧没有获取。
- 由于对账时间是以的post_time时间为准;获取的是post_time当天的渠道侧账单明细数据;当对账完成后,功能页面显示改天各收费项明细的总金额;方便内部人员知道公司在渠道这边计费相关的财务状况;
- 对账完成后,支持系统对渠道侧和交易侧对账结果账单的下载;同时系统会把对账结果的excel文件自动推送的到通知群里,文件包括渠道侧、交易侧的对账结果明细以及差异处理的文件。
注意:下载的文件中除了包括原始的账单明细外,还要加上对账的匹配结果字段,以及对需要回溯的数据,后面加上回溯天数。
差异处理:对账完成后,对有差异的账单明细系统推送给到差异处理功能中;去处理差异;同时也会生成excel文件自动发送到通知群里;提醒工作人员去处理。
① 对由于时间差异导致交易侧数据未录入,需要等待回溯的订单,回溯完成后渠道自动对账,对平后,差异处理面板中该条数据系统自动删除,如未对平则保留该条;等待差异处理。
② 差异处理面板中的数据处理完成后,数据重新进入对账流程和交易侧数据进行对账,直到账单对平为止。进入对账流程还是以该渠道的post_time时间为准。
8. 下载与推送文件格式
- 渠道侧的文件命名:渠道名_matched_report_年_月_日
- 交易侧的文件命名:渠道名_Merchant_matched_report_年_月_日
- 差异明细的文件命名:渠道名_差异明细_年_月_日
渠道对账涉及到的渠道:不同渠道匹配规则不同,现以wechat和Alipay 渠道为例。
1. 页面信息展示
1)搜索栏
① 渠道名称:可选择wechat 和Alipay 。
② 结算币种:来源于渠道侧给到的结算币种,我方从账单报表中进行提取可得:
- Wechat结算币种对应GBP/USD/EUR
- Alipay的结算币种对应HKD/GBP/USD/EUR
注:即根据前面【对账时间】中关于对账条目获取的规则描述,可知,在次日0点时,系统根据渠道对应币种数量自动生成对应的条目;每一个条目需要上传一次渠道对账文件;待此时工作时间资金上传渠道报表,按照比重条目生成对应的对账结果数据。
③ 时间:由于渠道侧和交易侧的对账是根据匹配对应时间进行对账,所以时间按照匹配对应时间获取相应的条目。
2)信息栏
① 渠道名称
② 结算币种
③ 匹配对应时间:按照渠道侧和交易侧文件中的post_time时间对应
④ 账单解析状态:解析成功&解析中&解析失败
⑤ 账单笔数:分别显示渠道侧和交易侧对账文件中各自有多少条目;即显示渠道侧:200条;交易侧:200条