在最近的外币虚拟信用卡项目中,我积累了一些宝贵的经验。希望通过这篇文章与大家分享,同时也能与各位读者进一步交流。
在项目初期,明确卡片的使用场景至关重要。是用于特定行业的商户,还是需要覆盖尽可能多的海外商户?这将决定我们选择预付卡、借记卡还是信用卡。通常,海外商户对信用卡的支持程度最高,其次是借记卡,最后是预付卡。我的项目面向B端,覆盖跨境出口电商和海外线上消费,因此选择了企业借记卡。
确定使用场景后,我们需要选择接入的卡组织。通常我们会选择Visa或Mastercard,实力强大的公司可以直接与Visa、Mastercard对接发卡,而更多企业则通过对接发卡通道来完成发卡。我的项目对接了一家非银行的发卡机构。
发卡通道通常提供两种持卡人账户模型:鉴权模式和懒人模式。两种模式下,通道都会提供一个资金池账户。鉴权模式在交易发生时,发卡通道会询问我们是否继续完成交易,响应后实时扣除资金池账户的交易金额。懒人模式则记录持卡人卡内余额,交易实时从卡内余额扣除,我们对交易一无所知。
鉴权模式更为灵活,可扩展性强。例如,进行营销活动时,给部分持卡人小额授信,懒人模式需要将所有授信总额作为营销成本转入资金池账户,再充值到用户个人账户,资金压力较大。我的两个虚拟卡项目分别对接了不同的发卡通道,使用了不同的账户模型,选择哪种模型取决于公司的业务诉求。
初期准备工作完成后,进入实际建设阶段。一期建设规划依次实现以下功能:
包括卡片余额、完整卡号、CVV、有效期、交易明细。这些信息可以直接从发卡通道的接口中获取。由于大多数发卡通道是海外公司,接口响应时间较长,可以做一些缓存策略,如主动和被动更新缓存的机制。
由于是外币卡项目,充值也必须以外币资产。最初的方案是用户外币资产转账到公司的海外母公司对公账户,再手工转账到资产池账户,最后调用发卡通道接口充值到用户卡账户。此充值方案成本高且手工流程多,上线前寻找了更合理的充值方案。
在与发卡通道讨论过程中,突然被告知不支持卡片余额转出,于是这部分功能搁置。
根据发卡通道需要的资料,结合自身业务想法设计卡申请流程。
对接一款收款产品,将收到的款项通过接口发起转账到资金池账户,降低运营成本,提高资金操作效率。收款产品直接呈现收款账户给用户,同时为每个B端用户提供唯一数字码,便于区分资金来源。
在此基础上,衍生出用户钱包账户的概念。用户账户余额来自所有转账到收款账户的金额,用户需再次从钱包账户中选择特定金额充值到卡账户。为了提升用户体验,资金池账户存放一部分备付金,先垫付用户的充值,后批次将收款账户余额转入资金池账户。
引入钱包账户概念,提供客户钱包余额、钱包交易明细查询等功能。这些信息单独维护在本地,避免了接口响应慢的问题。
主要涉及资金池账户的对账和持卡人的交易对账。资金池账户的对账机制将收款账户的转出交易放进待匹配交易库,与资金池账户的转入交易匹配后改变交易状态。持卡人的交易对账暂未采取,但鉴权模式下交易对账还是必不可少的。
虚拟信用卡的一期搭建工作已接近尾声。后续将继续实现以下功能,以更好地服务客户:
为每个B端客户提供独立的海外当地收款账户,用于接收电商平台(如Amazon店铺)和收单渠道(PayPal)的收款账户。收款账户接收到打款后,相应金额将增加用户钱包账户。
提供用户钱包账户资产换汇的功能。
利用钱包账户实现资产转出功能,避免用户因只能充值到卡账户而产生抵触情绪。
👉 WildCard 野卡 | 一分钟注册,轻松订阅海外线上服务