# 构建应用内支付集成 使用 Stripe 的 In-app Payments,为您的 iOS、Android 和 React Native 应用程序构建定制的支付集成和结账流程。本概览有助于您进行集成规划。 > #### 美国销售数字商品的应用程序 > > 在美国,销售数字商品的 Android 应用可以使用 Stripe 在应用内处理支付。如果您在 iOS 上销售数字商品,请参阅 [在应用内销售数字商品和订阅](https://docs.stripe.com/mobile/digital-goods/checkout.md),了解如何使用 Stripe Checkout 实现应用到网页的支付流程。 通过 Stripe In-App Payments,您可以: 1. 动态显示 40 多种支付方式,包括 Apple Pay、Google Pay 和 Link,以及已保存的支付方式。 1. 收集支付信息,如信用卡号和计费详情。 1. 完成支付,处理*3DS2* (3D Secure 2 (3DS2) removes friction from the authentication process and improves the purchase experience compared to 3D Secure 1. It's the main card authentication method used to meet Strong Customer Authentication (SCA) requirements in Europe and is a key mechanism for businesses to request exemptions to SCA)等身份验证,或重定向至银行应用程序。 ## 选择一个用户界面 根据您偏好的用户体验和设计需求,从三种不同的用户界面集成方案中进行选择。 | | 支付表单 | Flow Controller | Payment Element | | ------ | --------------- | ---------------- | ---------------- | | 集成工作 | Complexity: 2/5 | Complexity: 3/5 | Complexity: 3/5 | | 显示支付方式 | 在表单中 | 在表单中 | 在可嵌入视图中 | | 收集付款详情 | 在表单中 | 在表单中 | 在表单中 | | 完成支付 | 在表单中 | 您可以在用户界面中控制确认的时间 | 您可以在用户界面中控制确认的时间 | | 布局灵活性 | 固定的表单呈现 | 固定的表单选择,灵活的确认 | 在应用程序的任何位置嵌入支付方式 | #### 支付表单 ![一种支付流程,展示带有“购买”按钮的购物车界面,点击该按钮将弹出 Payment Sheet 以完成支付](https://b.stripecdn.com/docs-statics-srv/assets/overview-payment-sheet.1654dac09bb9ee7a067076b22842daa6.png) ![Stripe 应用内支付展示 App Store 二维码](https://b.stripecdn.com/docs-statics-srv/assets/appstore_qr.ce33264690ffb3cebb2982458ccb496d.svg) 此集成在一个预构建的表单中展示支付方式,收集支付信息并完成支付。我们建议大多数用户使用此用户界面在您的应用程序中收款。 借助 [Appearance API 指南](https://docs.stripe.com/elements/appearance-api/mobile.md),您可以自定义超过 50 个外观方面,包括颜色和字体。 **试用演示**:扫描此二维码或使用此[链接](https://apps.apple.com/us/app/stripe-payments-showcase/id6450683352)下载互动演示应用。 **最佳适用对象** - 以最少的代码快速添加应用内支付功能。 - 客户只需点击单个“购买”按钮,即可一步完成结账。 **为…考虑其他选项** - 先收集支付方式,然后在您自己的用户界面中单独确认支付。要实现这一功能,[请使用 Flow Controller](https://docs.stripe.com/payments/mobile.md?in-app-ui=flow-controller#choose-a-ui)。 - 将支付方式直接嵌入到您自己的界面中,而非使用表单。要实现这一功能,[请使用 Payment Element](https://docs.stripe.com/payments/mobile.md?in-app-ui=payment-element#choose-a-ui)。 #### Flow Controller ![一种多步骤支付流程,展示在客户点击“购买”按钮前,在 Stripe 表单中收集支付方式的购物车界面](https://b.stripecdn.com/docs-statics-srv/assets/overview-flow-controller.20860fdb0ea1653eb5d60c826eee527c.png) ![Stripe 应用内支付展示 App Store 二维码](https://b.stripecdn.com/docs-statics-srv/assets/appstore_qr.ce33264690ffb3cebb2982458ccb496d.svg) Flow Controller 使用预构建的表单来展示和收集支付方式,但允许您在自己的用户界面中控制支付确认的时间和方式。 它具有与 Payment Sheet 相同的[外观定制功能](https://docs.stripe.com/elements/appearance-api/mobile.md)。 **试用演示**:扫描此二维码或使用此[链接](https://apps.apple.com/us/app/stripe-payments-showcase/id6450683352)下载互动演示应用。 **最佳适用对象** - 客户在 Stripe 表单中选择支付方式,然后在您自己的用户界面中确认支付。 - 在客户选择支付方式后,调整总金额、应用折扣或收集额外信息。 **为…考虑其他选项** - 整个端到端支付流程可在单一表单内全程完成。要实现此功能,[请使用 Payment Sheet](https://docs.stripe.com/payments/mobile.md?in-app-ui=payment-sheet#choose-a-ui)。 - 直接在自己的屏幕上嵌入支付方式,并设置高度自定义的行。为此,[可使用 Payment Element](https://docs.stripe.com/payments/mobile.md?in-app-ui=payment-element#choose-a-ui)。 #### Payment Element ![一种支付流程,展示使用内嵌 Payment Element 收集支付方式的购物车界面](https://b.stripecdn.com/docs-statics-srv/assets/overview-embedded-inline.fa845b8ce13dee5940fb46c42b0570a4.png) *直接嵌入购物车的 Payment Element。* ![一种支付流程,在独立屏幕上展示使用 Payment Element 收集支付方式的购物车界面](https://b.stripecdn.com/docs-statics-srv/assets/overview-embedded-interstitial.8b11682b3e8a874883a232afc1195530.png) *独立屏幕上显示的 Payment Element。* ![Stripe 应用内支付展示 App Store 二维码](https://b.stripecdn.com/docs-statics-srv/assets/appstore_qr.ce33264690ffb3cebb2982458ccb496d.svg) Payment Element 以可嵌入视图而非表单形式展示支付方式,因此您可以将支付方式列表放置在应用程序的任何位置。当客户选择需要更多详细信息的支付方式时,Stripe 会展示一个表单以安全收集这些信息。您可以在自己的用户界面中控制支付确认的时间和方式。 您可以根据应用程序的导航模式和设计系统,通过 [Appearance API 指南](https://docs.stripe.com/elements/appearance-api/embedded-mobile.md)全面自定义支付方式行的外观和行为。 **试用演示**:扫描此二维码或使用此[链接](https://apps.apple.com/us/app/stripe-payments-showcase/id6450683352)下载互动演示应用。 **最佳适用对象** - 在结账布局和导航方面具有最大的灵活性。 - 支付选项可内嵌显示(例如,直接显示在购物车用户界面中),或显示在由您控制的独立屏幕上。 **为…考虑其他选项** - 整个支付流程可在单一表单内全程完成。要设置此功能,[请使用 Payment Sheet](https://docs.stripe.com/payments/mobile.md?in-app-ui=payment-sheet#choose-a-ui)。 - 在确认前,需要通过一个独立的“选择支付方式”步骤,而不是将支付方式直接嵌入。要实现此功能,[请使用 Flow Controller](https://docs.stripe.com/payments/mobile.md?in-app-ui=flow-controller#choose-a-ui)。 #### Item 1 ## 选择一个 API Stripe 的 In-App Payments 集成使用 [PaymentIntent](https://docs.stripe.com/payments/payment-intents.md) 或 [SetupIntent](https://docs.stripe.com/payments/setup-intents.md)。 ### 接受付款 | ⠀ | | | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | API | [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) | | 说明 | 立即收款并向客户收费。 我们的用户界面会显示“保存我的信息”复选框,允许客户保存其支付方式,以便未来结账时使用。了解有关[已保存支付方式](https://docs.stripe.com/payments/mobile.md#saved-payment-methods)的更多信息。 | | 支持的支付方式 | 支持一次性使用和重复使用两种模式 | | 示例 | - 通过单笔交易购买产品或服务(例如,电商结账) - 在订购出行服务或食品配送时付款 | | **开始使用** | [使用 Flow Controller 接受支付](https://docs.stripe.com/payments/mobile/accept-payment.md?integration=paymentsheet-flowcontroller&type=payment)[使用 Payment Element 接受支付](https://docs.stripe.com/payments/mobile/accept-payment-embedded.md?type=payment) | ### 设置支付方式 | ⠀ | | | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | API | [SetupIntent](https://docs.stripe.com/api/setup_intents/object.md) | | 说明 | 在_不_向客户收费的情况下,收集并保存支付方式,以备将来支付使用。 | | 支持的支付方式 | 仅限可重复使用的支付方式 | | 示例 | - 注册应用程序并在入驻流程中保存支付方式 - 在免费试用期开始时设置订阅服务的支付方式 - 为众筹活动收集支付详情(仅在达到目标后收费) - 在激活公用事业或服务前存储支付信息 | | **开始使用** | [使用 Flow Controller 设置支付方式](https://docs.stripe.com/payments/mobile/accept-payment.md?integration=paymentsheet-flowcontroller&type=setup)[使用 Payment Element 设置支付方式](https://docs.stripe.com/payments/mobile/accept-payment-embedded.md?type=setup) | ### 接受并设置支付 | ⠀ | | | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | API | 带有 [setup_future_usage](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-setup_future_usage) 的 [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) | | 说明 | 将 PaymentIntent 配置为保存支付方式,即可立即向客户收费,并保存其支付方式以备将来使用。 您可以通过配置 `setup_future_usage` 参数,要求保存所有支付方式。使用 `setup_future_usage` 后,将禁用一次性支付方式,如大多数“先买后付”([BNPL](https://docs.stripe.com/payments/buy-now-pay-later.md)) 服务。若要同时支持一次性支付和可重复使用支付方式,可针对特定支付方式配置未来使用选项,例如通过 [payment_method_options[card][setup_future_usage]](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-payment_method_options-card-setup_future_usage) 配置来保存银行卡信息。 | | 支持的支付方式 | 支持一次性使用和重复使用两种模式 | | 示例 | - 为用户注册收取预付费用的订阅服务(例如,立即收取第一个月的费用) - 收取初始购买费用,同时保存支付方式,以便后续收取杂费或增购 | | **开始使用** | [使用 Flow Controller 接受并设置支付](https://docs.stripe.com/payments/mobile/accept-payment.md?integration=paymentsheet-flowcontroller&type=paymentsfu)[使用 Payment Element 接受并设置支付](https://docs.stripe.com/payments/mobile/accept-payment-embedded.md?type=paymentsfu) | #### Item 2 ## 选择一个 API Stripe 的 In-App Payments 集成使用 [PaymentIntent](https://docs.stripe.com/payments/payment-intents.md) 或 [SetupIntent](https://docs.stripe.com/payments/setup-intents.md)。 ### 接受付款 | ⠀ | | | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | API | [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) | | 说明 | 立即收款并向客户收费。 我们的用户界面会显示“保存我的信息”复选框,允许客户保存其支付方式,以便未来结账时使用。了解有关[已保存支付方式](https://docs.stripe.com/payments/mobile.md#saved-payment-methods)的更多信息。 | | 支持的支付方式 | 支持一次性使用和重复使用两种模式 | | 示例 | - 通过单笔交易购买产品或服务(例如,电商结账) - 在订购出行服务或食品配送时付款 | | **开始使用** | [使用 Flow Controller 接受支付](https://docs.stripe.com/payments/mobile/accept-payment.md?integration=paymentsheet-flowcontroller&type=payment)[使用 Payment Element 接受支付](https://docs.stripe.com/payments/mobile/accept-payment-embedded.md?type=payment) | ### 设置支付方式 | ⠀ | | | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | API | [SetupIntent](https://docs.stripe.com/api/setup_intents/object.md) | | 说明 | 在_不_向客户收费的情况下,收集并保存支付方式,以备将来支付使用。 | | 支持的支付方式 | 仅限可重复使用的支付方式 | | 示例 | - 注册应用程序并在入驻流程中保存支付方式 - 在免费试用期开始时设置订阅服务的支付方式 - 为众筹活动收集支付详情(仅在达到目标后收费) - 在激活公用事业或服务前存储支付信息 | | **开始使用** | [使用 Flow Controller 设置支付方式](https://docs.stripe.com/payments/mobile/accept-payment.md?integration=paymentsheet-flowcontroller&type=setup)[使用 Payment Element 设置支付方式](https://docs.stripe.com/payments/mobile/accept-payment-embedded.md?type=setup) | ### 接受并设置支付 | ⠀ | | | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | API | 带有 [setup_future_usage](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-setup_future_usage) 的 [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) | | 说明 | 将 PaymentIntent 配置为保存支付方式,即可立即向客户收费,并保存其支付方式以备将来使用。 您可以通过配置 `setup_future_usage` 参数,要求保存所有支付方式。使用 `setup_future_usage` 后,将禁用一次性支付方式,如大多数“先买后付”([BNPL](https://docs.stripe.com/payments/buy-now-pay-later.md)) 服务。若要同时支持一次性支付和可重复使用支付方式,可针对特定支付方式配置未来使用选项,例如通过 [payment_method_options[card][setup_future_usage]](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-payment_method_options-card-setup_future_usage) 配置来保存银行卡信息。 | | 支持的支付方式 | 支持一次性使用和重复使用两种模式 | | 示例 | - 为用户注册收取预付费用的订阅服务(例如,立即收取第一个月的费用) - 收取初始购买费用,同时保存支付方式,以便后续收取杂费或增购 | | **开始使用** | [使用 Flow Controller 接受并设置支付](https://docs.stripe.com/payments/mobile/accept-payment.md?integration=paymentsheet-flowcontroller&type=paymentsfu)[使用 Payment Element 接受并设置支付](https://docs.stripe.com/payments/mobile/accept-payment-embedded.md?type=paymentsfu) | #### Item 3 ## 选择一个 API Stripe 的 In-App Payments 集成使用 [PaymentIntent](https://docs.stripe.com/payments/payment-intents.md) 或 [SetupIntent](https://docs.stripe.com/payments/setup-intents.md)。 ### 接受付款 | ⠀ | | | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | API | [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) | | 说明 | 立即收款并向客户收费。 我们的用户界面会显示“保存我的信息”复选框,允许客户保存其支付方式,以便未来结账时使用。了解有关[已保存支付方式](https://docs.stripe.com/payments/mobile.md#saved-payment-methods)的更多信息。 | | 支持的支付方式 | 支持一次性使用和重复使用两种模式 | | 示例 | - 通过单笔交易购买产品或服务(例如,电商结账) - 在订购出行服务或食品配送时付款 | | **开始使用** | [使用 Flow Controller 接受支付](https://docs.stripe.com/payments/mobile/accept-payment.md?integration=paymentsheet-flowcontroller&type=payment)[使用 Payment Element 接受支付](https://docs.stripe.com/payments/mobile/accept-payment-embedded.md?type=payment) | ### 设置支付方式 | ⠀ | | | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | API | [SetupIntent](https://docs.stripe.com/api/setup_intents/object.md) | | 说明 | 在_不_向客户收费的情况下,收集并保存支付方式,以备将来支付使用。 | | 支持的支付方式 | 仅限可重复使用的支付方式 | | 示例 | - 注册应用程序并在入驻流程中保存支付方式 - 在免费试用期开始时设置订阅服务的支付方式 - 为众筹活动收集支付详情(仅在达到目标后收费) - 在激活公用事业或服务前存储支付信息 | | **开始使用** | [使用 Flow Controller 设置支付方式](https://docs.stripe.com/payments/mobile/accept-payment.md?integration=paymentsheet-flowcontroller&type=setup)[使用 Payment Element 设置支付方式](https://docs.stripe.com/payments/mobile/accept-payment-embedded.md?type=setup) | ### 接受并设置支付 | ⠀ | | | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | API | 带有 [setup_future_usage](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-setup_future_usage) 的 [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md) | | 说明 | 将 PaymentIntent 配置为保存支付方式,即可立即向客户收费,并保存其支付方式以备将来使用。 您可以通过配置 `setup_future_usage` 参数,要求保存所有支付方式。使用 `setup_future_usage` 后,将禁用一次性支付方式,如大多数“先买后付”([BNPL](https://docs.stripe.com/payments/buy-now-pay-later.md)) 服务。若要同时支持一次性支付和可重复使用支付方式,可针对特定支付方式配置未来使用选项,例如通过 [payment_method_options[card][setup_future_usage]](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-payment_method_options-card-setup_future_usage) 配置来保存银行卡信息。 | | 支持的支付方式 | 支持一次性使用和重复使用两种模式 | | 示例 | - 为用户注册收取预付费用的订阅服务(例如,立即收取第一个月的费用) - 收取初始购买费用,同时保存支付方式,以便后续收取杂费或增购 | | **开始使用** | [使用 Flow Controller 接受并设置支付](https://docs.stripe.com/payments/mobile/accept-payment.md?integration=paymentsheet-flowcontroller&type=paymentsfu)[使用 Payment Element 接受并设置支付](https://docs.stripe.com/payments/mobile/accept-payment-embedded.md?type=paymentsfu) | ## 已保存的支付方式 Stripe 的 In-App Payments 支持保存、展示和管理已保存的银行卡、美国银行账户以及欧洲单一欧元支付区 (SEPA) 借记等支付方式。系统会自动处理同意收集流程,确保符合全球合规要求。 #### Item 1 ![Payment Sheet 保存的支付方式](https://b.stripecdn.com/docs-statics-srv/assets/ps-saved-payment-methods.da5ebb05306fb56bcce0737b3e06a0df.png) 访问 Payment Sheet 中保存的支付方式 #### Item 2 ![Payment Sheet 保存的支付方式](https://b.stripecdn.com/docs-statics-srv/assets/ps-saved-payment-methods.da5ebb05306fb56bcce0737b3e06a0df.png) 客户如何在 Payment Sheet 中访问已保存支付方式的示例 #### Item 3 ![Payment Element 保存的支付方式](https://b.stripecdn.com/docs-statics-srv/assets/pe-saved-payment-methods.6aef147c8b230f2cb50c115b2054f814.png) 客户如何在 Payment Element 中访问已保存支付方式的示例 [CustomerSessions API](https://docs.stripe.com/api/customer_sessions.md) 可对以下内容提供额外控制: - 何时显示或隐藏保存同意框 - 何时显示或隐藏已保存的支付方式 - 允许买家移除已保存的支付方式 - 阻止买家移除上次保存的支付方式 ## 功能和可用性 - **用户界面** 应用内支付 - **用户界面自定义** 广泛,使用 [外观 API](https://docs.stripe.com/elements/appearance-api/mobile.md) - **支付方式** 1 - [100 多种](https://docs.stripe.com/payments/payment-methods/integration-options.md#choose-how-to-add-payment-methods) - [动态支付方式](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md) - [使用 Link 实现更快捷的结账](https://docs.stripe.com/payments/link.md) - [Apple Pay](https://docs.stripe.com/apple-pay.md)、[Google Pay](https://docs.stripe.com/google-pay.md) 以及 [Amazon Pay](https://docs.stripe.com/payments/amazon-pay.md) - [自定义支付方式](https://docs.stripe.com/payments/mobile/custom-payment-methods.md) - **SDK 支持** [iOS](https://github.com/stripe/stripe-ios)、[Android](https://github.com/stripe/stripe-android) 和 [React Native](https://github.com/stripe/stripe-react-native) - **一次性和经常性付款** 是 - **欺诈保护** [是](https://docs.stripe.com/radar.md) - **全球支付** [是](https://stripe.com/global) 1钱包支付方式需要[注册您的域名](https://docs.stripe.com/payments/payment-methods/pmd-registration.md)。