ByteByteGo 01月15日
How Uber Unified Checkouts Across Billion-Dollar Business Lines
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Uber为了解决各业务线支付系统不一致的问题,推出了统一支付系统Unified Checkout。该系统将所有支付相关操作集中化管理,减少了冗余和重复开发,提高了支付效率。它支持多种支付方式,包括Apple Pay、Google Pay以及本地支付方式,并统一了用户体验。Unified Checkout系统采用模块化和托管部署两种模式,满足不同业务线的需求。其核心组件包括支付配置准备、风险评估和资金锁定、结算操作以及事件处理等。通过清晰的设计原则和架构,Uber的Unified Checkout系统确保了支付的安全性、一致性和可扩展性。

🔀 Uber统一支付系统(Unified Checkout)旨在解决各业务线支付系统不一致的问题,通过集中化管理,避免了重复开发,提升了效率和用户体验。

🛡️ 该系统具有清晰的设计原则,包括将各业务线视为外部实体、将支付逻辑与产品系统解耦,以及构建通用和可扩展的系统,从而支持多种支付方式和操作,如双因素身份验证和设备指纹识别。

⚙️ Unified Checkout系统的核心架构包含支付配置准备、风险评估与资金锁定、结算操作以及事件处理等组件,并支持模块化和托管两种部署模式,灵活适应不同业务需求。

🚦 结算操作框架(Checkout Actions Framework)是关键组成部分,它是一个无状态的框架,用于处理交易过程中的必要步骤,包括双因素身份验证、错误恢复和身份验证等,确保交易顺利完成。

📱 预结算操作是交易发生前必须完成的步骤,例如选择支付方式和设备指纹识别,这些操作事先确定,有助于减少后续操作的复杂性。

Disclaimer: The details in this post have been derived from the Uber Engineering Blog. All credit for the technical details goes to the Uber engineering team. The links to the original articles are present in the references section at the end of the post. We’ve attempted to analyze the details and provide our input about them. If you find any inaccuracies or omissions, please leave a comment, and we will do our best to fix them.

Uber began as a ridesharing company and their back-end systems were built specifically for this purpose. Payment operations were deeply integrated into the ridesharing framework, focusing on the straightforward interaction between riders and drivers.

Over time, however,  Uber diversified into various lines of business (LOBs) such as:

Each new LOB built its back-end system to support its unique business logic. However, this approach created inconsistencies because payment methods and features were not uniformly supported across all LOBs.

For example:

There was also a duplication of efforts because payment features like two-factor authentication or device fingerprinting, had to be implemented multiple times–once for each LOB.

As expected, managing and maintaining multiple back-end payment systems increased the technical complexity, cost, and risk of errors. Introducing new payment features or compliance requirements (for example, regulatory mandates like Strong Customer Authentication in the EU) required redundant implementations across the fragmented systems, slowing Uber’s ability to adapt and innovate.

The need for a unified, scalable solution to address these challenges became critical, paving the way for the development of the Unified Checkout system. In this article, we’ll look at how Uber developed this system and its architecture.


If It’s Slow, It’s Broken ? (Sponsored)

To your users, slow and buggy are the same thing. ? And Sentry helps you find bugs fast, even the ones that aren’t obvious.

Whether it’s an error or a slowdown, Sentry helps you fix issues fast and keep your app running smoothly. Because if it’s slow, it’s broken.

See for yourself


Unified Checkout Solution By Uber

The Unified Checkout system acts as a single, centralized layer for managing payments across all Uber services. 

Think of Unified Checkout as a one-stop shop for all payment-related activities at Uber. Instead of each service (like Uber Eats or ridesharing) building its payment system, they now plug into a single, centralized system.

See the diagram below that shows a comparison of the system landscape with and without Unified Checkout:

Some key features of the Unified Checkout system are as follows:

Design Philosophy

Uber approached the Unified Checkout platform with a clear set of guiding principles:

Architecture of Unified Checkout System

Let’s now look at the architecture of the Unified Checkout system. We will look at the core components and how they are deployed.

Core Components

The architecture of the Unified Checkout system revolves around several interconnected components, each serving a specific purpose in the payment process.

The diagram below shows the architecture on a high level.

Let’s look at various components in detail.

1 - Payment Profile Preparation

This component gathers and processes transactional data from the user. 

It integrates with third-party systems like banks and payment gateways. For example, if a user chooses to pay via Apple Pay, this component securely exchanges short-lived tokens with Apple’s systems to authenticate the transaction.

2 - Risk Evaluation and Securing Funds

Uber’s risk system evaluates the payment request for potential fraud or other risks.

Depending on the evaluation, the system may temporarily lock the required amount in the user’s account (used when payment is finalized after the service, like a ride). Based on the strategy, it can also charge the full amount before the service begins.

3 - Checkout Actions

This is a stateless framework that handles essential tasks to ensure smooth transactions.

It includes multiple tasks such as:

These actions are designed to be generic and reusable across all Uber LOBs, making the system versatile and efficient.

4 - Event Handling

Many payment systems work asynchronously, meaning the payment processor may not provide immediate confirmation.

This component listens for payment confirmation signals from third-party systems and decides the next step.

Deployment Models

The Unified Checkout system supports two deployment models, catering to the varied needs of Uber’s LOBs.

1 - Modular Deployments

The modular version allows LOBs to integrate pre-built components of the Unified Checkout system directly into their apps and workflows.

Here’s how it works:

See the screenshot below that shows this feature:

The main benefit of this approach is the flexibility of LOB-specific integration while simplifying payment operations.

2 - Hosted Deployment

This is an out-of-the-box solution for smaller LOBs or new verticals, providing a complete payments and checkout system.

Here’s how it works:

See the screenshot below that shows a hosted checkout summary view:

This solution accelerates time-to-market for smaller teams or experimental services while ensuring full feature parity with Uber’s top payment methods.

Checkout Actions Framework

The Checkout Actions framework is a key feature of the Unified Checkout system

It handles the necessary steps to complete a transaction and resolve any issues during the process. It’s a stateless framework, meaning it doesn’t store user-specific information between actions, ensuring efficiency and scalability.

See the diagram below that shows a sequence diagram for checkout actions:

The key features of the framework are as follows:

Pre-Checkout Actions

Pre-checkout actions are steps completed before the checkout request interacts with the Unified Checkout back end. These actions ensure all the necessary information is gathered before the transaction is initiated, minimizing delays or errors later in the process.

The pre-checkout actions are deterministic, meaning they’re known in advance and must always occur for certain transactions. By handling them upfront, the system reduces the complexity of subsequent operations.

Some examples of pre-checkout actions are as follows:

See the screenshot below that shows pre-checkout actions:

Post-Checkout Actions

Post-checkout actions occur after the checkout request has been sent to the back end. 

These actions handle the unpredictable nature of payment processing where external systems might reject or delay a transaction. By offering corrective actions, the system ensures a high recovery rate and reduces user drop-offs.

They are often conditional, triggered by the results of payment processing or risk evaluation. Some examples of post-checkout actions are as follows:

See the screenshot below that shows a few post-checkout actions:

Understanding Through an Example

Imagine using Uber Eats and trying to pay with a credit card. Here’s a list of possible pre-checkout and post-checkout actions that might be involved:

Conclusion

The Unified Checkout system directly enhanced key business metrics such as:

The architecture and implementation of the Unified Checkout system show how common, duplicated operations can be evolved into scalable platforms. Uber tackled technical debt accumulated during its rapid growth by creating a generic system that works across all Lines of Business (LOBs).

However, the Unified Checkout platform is not a static solution. 

Uber continues experimenting with new features, error recovery models, and payment methods to optimize the system further. This proactive approach ensures that the platform remains relevant and effective in the face of changing market demands.

References:

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Uber 支付系统 Unified Checkout 架构设计 系统优化
相关文章