在超过220个全球市场,Airbnb主要依赖基于卡片的支付方式来完成订单结算。为了减少结账流程中的繁琐环节、提高支付的便利性,并促进这些支付方式在国际市场的普及,Airbnb推出了“按当地习惯支付”计划,其中包含了那些受到当地用户青睐的支付方式。这一举措使客人能够选择符合其所在地区偏好的支付选项,同时也让工程团队能够更高效地为新的支付方式提供技术支持。
作为其长期支付系统架构改革计划的一部分,Airbnb从原有的单一系统转变为以业务领域为导向的服务架构。该架构涵盖了充值、付款、交易处理、钱包管理、激励机制、票据发行以及结算等核心功能。其中,交易处理子系统通过连接器及插件框架与第三方支付服务提供商进行集成,支持基于API或文件的形式进行数据交互,从而有效降低了各个市场在引入新支付方式时所需付出的努力,并加快了相关流程的推进速度。
目前Airbnb支持的本地支付方式包括:特定国家或地区使用的数字钱包(如M-Pesa、MTN MoMo)、在线银行转账服务(捷克在线银行、斯洛伐克在线银行)、实时银行付款系统(Pix、UPI),以及当地的电子支付网络(EFTPOS、Cartes Bancaires)。据Airbnb的工程师们表示,这种模块化的设计方式大大缩短了在不同市场引入新支付服务提供商所需的时间和精力。
Airbnb对全球20多种本地支付方式进行了分析,归纳出了三种基本的支付流程模式:重定向模式、异步模式以及直接模式。在重定向模式下,系统会将客人引导至第三方应用程序或网站完成支付操作,并返回确认信息;异步模式例如基于QR码的支付方式,会在交易在外部完成之后通过webhook通知Airbnb;而直接模式则允许客人在Airbnb的界面内直接输入支付信息即可完成支付。将这些不同的支付流程标准化为可复用的模式,不仅减少了工程开发的工作量,也简化了新支付服务提供商的接入流程。
本地支付方式流程模式:重定向模式、异步模式、直接模式(来源:Airbnb博客文章)
<为了管理跨不同支付服务提供商所发生的多步骤支付流程,Airbnb开发了一个与具体处理引擎无关的多步骤交易框架。该框架为授权、重定向、确认等操作定义了通用的处理流程,从而为无论是内部还是外部的支付交互提供了一致的处理机制。这种设计确保了在那些需要切换应用程序、进行会话交接或进行异步确认的支付流程中,系统的可靠性能够得到保障。
通过基于YAML的集中式支付方式配置方案,集成和维护工作得到了进一步简化。这一统一的配置文件定义了资格审核规则、输入数据验证标准、退款政策以及用户界面渲染指令。后端服务及结账插件会动态引用这些配置信息,因此新支付方式的接入过程主要依靠配置文件进行设定,从而有效降低了出现错误的风险。
Airbnb在重新调整支付平台之前的配置与之后的配置对比(来源:Airbnb博客文章)
对于复杂的支付流程,测试和监控功能得到了加强。公司内部开发的PSP模拟器能够模拟重定向操作及异步处理流程,从而使得无需借助外部沙箱环境即可进行端到端的测试。集中式的监控系统可以收集来自客户端、后端服务器、支付服务提供商以及Webhook的各种数据,并通过标准化的警报机制帮助快速发现潜在问题。对于新推出的支付方式,相关监控指标会自动被启用,工程师们可以借此追踪整个支付流程中可能出现的故障,从而确保各种支付方式都能保持稳定的可靠性,同时也有利于在全球范围内推广更多的本地化支付选项。
Airbnb的PSP模拟器工作流程(来源:Airbnb博客文章)
“Pay as a Local”这一项目在业务层面和技术层面都取得了显著的成效。在那些推出了本地化支付方式的市场中,Airbnb报告称预订量增加了,新用户的参与度也有所提升。工程团队通过使用可复用的支付流程模板以及基于配置的集成方法,大大缩短了与新支付服务提供商对接所需的时间。监控功能的改进、标准化的测试流程以及优化后的问题上报机制,都有效提升了整个平台的可靠性。模块化服务的应用、多步骤的交易协调机制以及集中式的配置管理方式,使得新服务提供商能够更快地加入平台体系,维护成本也得到了降低,同时为全球范围内的用户提供了更加一致、更具本地化特色的结账体验。