笔者最近完成了一个外币虚拟信用卡的项目,现将整个项目的搭建过程进行总结,希望能为有类似需求的读者提供参考。
一、项目准备
1. 选择卡片类型
在项目初期,需要明确卡片的使用场景,是针对特定行业商户,还是覆盖更多的海外商户。通常,海外商户对信用卡的支持度最高,其次是借记卡,最后是预付卡。
笔者的项目面向B端客户,覆盖跨境出口电商和海外线上消费,因此选择了企业借记卡。
2. 选择发卡通道
确定使用场景后,需要选择接入的卡组织(如Visa或Mastercard)。大型企业可以直接对接卡组织,而更多企业则通过发卡通道完成发卡。笔者的项目对接的是一家非银行的发卡机构。
3. 选择持卡人账户模型
发卡通道通常提供两种账户模型:鉴权模式和懒人模式。
- 鉴权模式:交易发生时,发卡通道会先询问是否继续完成交易,企业需维护一套交易和账务系统。
- 懒人模式:交易直接从持卡人卡内余额扣除,企业无需维护交易系统,仅需在用户充值时将资金转入卡账户。
笔者的项目选择了懒人模式,因其操作简单,适合当前业务需求。
二、项目建设
项目建设分为多个功能模块,以下是一期的主要功能:
1. 查看卡片详情
包括卡片余额、完整卡号、CVV、有效期和交易明细。这些信息通过发卡通道的接口获取。
为提升用户体验,笔者采用了主动更新和被动更新的缓存机制,减少接口响应时间。
2. 卡片充值
由于是外币卡项目,充值需以外币资产完成。初期方案为用户将外币资产转账至公司海外账户,再手动转账至资金池账户,最后调用接口充值到用户卡账户。
此方案成本高且流程繁琐,后续优化为对接收款产品,通过接口实现自动转账,降低运营成本。
3. 卡内余额转出
在开发过程中,发卡通道告知不支持卡片余额转出功能,因此该功能暂时搁置。
4. 虚拟信用卡申请
根据发卡通道的要求,结合业务需求设计卡片申请流程。
5. 充值方案优化
优化后的充值方案结合收款产品和接口转账功能,提升了资金操作效率。
用户充值流程为:
- 用户将资金转入收款账户。
- 系统将资金从收款账户转入资金池账户。
- 用户卡账户实时到账。
为提升体验,笔者在资金池账户中预存备付金,先垫付用户充值,后续批量转账补齐。
6. 钱包账户
引入钱包账户概念,用户可查询钱包余额和交易明细。钱包账户的余额来自所有转账到收款账户的金额,用户可选择金额充值到卡账户。
7. 对账
对账分为两部分:
- 资金池账户对账:匹配收款账户的转出交易与资金池账户的转入交易。
- 持卡人交易对账:鉴权模式下需对每笔交易进行对账,懒人模式则无需此操作。
三、项目后续
一期功能完成后,笔者计划继续开发以下功能:
1. 收款账户优化
为每个B端客户提供独立的海外收款账户,用于接收电商平台(如Amazon)或收单渠道(如PayPal)的打款,资金直接增加到用户钱包账户。
2. 换汇功能
提供用户钱包账户资产的换汇功能,满足多币种需求。
3. 钱包账户转出
由于卡账户余额无法转出,计划通过钱包账户实现资产转出功能,提升用户体验。