调至内容部分
创建账户
或
登录
Stripe 文档徽标
/
询问人工智能
创建账户
登录
开始
付款
销售收入
平台和交易市场
资金管理
开发人员资源
概览
关于 Stripe 支付
升级您的集成
支付分析
线上付款
概览查找您的用例Managed Payments
使用 Payment Link
构建结账页面
构建高级集成
构建应用内集成
支付方式
添加支付方式
管理支付方式
用 Link 更快结账
支付接口
Payment Links
结账
Web Elements
应用内 Element
支付场景
处理多种货币
自定义支付流程
灵活收单
编排
线下支付
Terminal
    概览
    接受线下付款
    集成设计
    选择读卡器
      Stripe 读卡器 S700
      BBPOS WisePOS E
      Stripe Reader M2 读卡器
      BBPOS WisePad 3 读卡器
      Tap to Pay
      Verifone P400
      BBPOS Chipper 2X BT
    设计集成
    快速开始
    示例应用
    测试
    Terminal 设置
    设置您的集成
    连接读卡器
    接受付款
    收取银行卡付款
    其他支付方式
    支持线下支付
    邮购和电话订购付款
    地区考虑因素
    结账过程中
    收取小费
    收集并保存付款详情以供将来使用
    灵活授权
    结账后
    退款交易
    提供收据
    自定义 Checkout
    购物车显示
    收集屏幕输入内容
    收集刷卡数据
    收集 NFC 设备的轻触数据
    设备上的应用程序
    管理读卡器
    订购、退回、更换读卡器
    注册读卡器
    管理位置和区域
    配置读卡器
    监控读卡器
    加密
    参考
    API 参考
    移动读卡器
    智能读卡器
    SDK 迁移指南
    部署检查表
    Stripe Terminal 读卡器产品表
超越支付功能
成立公司
加密货币
Financial Connections
Climate
了解欺诈
Radar 欺诈保护
管理争议
验证身份
首页付款TerminalSelect your reader

Tap to Pay

Learn how to accept contactless payments on a compatible iPhone or Android device.

Looking for a no-code solution? Accept payments from the Stripe Dashboard mobile app.

Use Tap to Pay on Android to accept in-person contactless payments with compatible NFC-equipped Android devices.

Tap to Pay on Android includes support for Visa, Mastercard, American Express contactless cards, and NFC-based mobile wallets (Apple Pay, Google Pay, and Samsung Pay). PIN entry is supported. Additionally, eftpos is supported in Australia. Stripe includes Tap to Pay on Android in the Terminal Android SDK and the Terminal React Native SDK, and enables payments directly in your Android mobile app.

Availability

丹麦
德国
意大利
新加坡
新西兰
法国
澳大利亚
爱尔兰
瑞典
美国
芬兰
英国
荷兰

Availability in Public preview

加拿大
卢森堡
奥地利
挪威
捷克
比利时
波兰
瑞士
葡萄牙
西班牙
马来西亚

Get started

Integrate the latest version of the Terminal Android SDK to include the latest bug fixes and features. You can view version-specific updates and bug fixes in the SDK changelog. The minimum required SDK version to support all available countries is 2.21.1. The minimum required SDK version to collect PIN is 4.3.0. The minimum required SDK version to accept eftpos in Australia is 4.3.0.

Device and minimum SDK version requirements can change due to updated compliance requirements or security vulnerabilities. To make sure your solution is up to date with Tap to Pay requirements, please subscribe to terminal-announce@lists.stripe.com.

To enable Tap to Pay in your Android application:

  1. Set up the Terminal Android SDK.
  2. Replace your existing stripeterminal dependencies with the following dependencies:
    build.gradle.kts
    Kotlin
    Groovy
    No results
    dependencies { implementation("com.stripe:stripeterminal-taptopay:4.6.0") implementation("com.stripe:stripeterminal-core:4.6.0") // ... }
  3. Connect to the Tap to Pay reader.
  4. Collect the payment data with the Tap to Pay reader.
  5. Confirm the payment.

Supported devices

Tap to Pay on Android works with a variety of Android devices such as mobile phones, kiosks, tablets, handheld devices, and so on. You can only discover and connect to devices that meet all of the following criteria:

  • Has a functioning, integrated NFC sensor and ARM-based processor
  • Isn’t rooted and device bootloader is locked and unchanged
  • Runs a current version of Android (Android 11 or above)
  • Uses Google Mobile Services and has the Google Play Store app installed
  • Has a hardware backed keystore
  • Supports generating key pairs using a variety of key algorithms, including RSA and AES from the Android keystore
  • A stable connection to the internet
  • Runs the unmodified manufacturer provided OS

注意

Tap to Pay doesn’t work on beta releases of Android.

Android device emulators aren’t supported by Tap to Pay. The same device requirements are enforced in the simulated and production reader to give developers the most realistic experience during testing.

Device types

Supported device types include, but aren’t limited to:

Type of device ManufacturerModels
Countertop SunmiD3 MINI, V3 MIX
Handheld AmobilePD602
HoneywellCT45
ChainwayC66
CiontekCS30, CS50C
iMinSwift 2 Pro
SunmiL2s PRO, V2S
ZCSZ92
ZebraTC26
Kiosk Elo Touch Solutions22in-I-Series-4
SunmiK2
Register iMinFalcon2
SunmiT3 PRO
Tablet Samsung Galaxy TabActive Pro, Active3, Active4 Pro, Active5
HMD GlobalHMD T21
HosotonH101
OukitelRT3
UlefoneArmor Pad Pro

Some manufacturers produce both GMS and non-GMS certified devices. If you’re using a non-GMS certified device, you’ll receive an error stating ATTESTATION_FAILURE: Device is not Google Mobile Services (GMS) certified when attempting to connect the device. If this occurs, contact the manufacturer to resolve the issue.

Mobile phones

Supported mobile phones include, but aren’t limited to:

ManufacturerModels
AsusZenphone 9
Google Pixel2 XL, 3, 3 XL, 3a, 4, 4a, 5, 5a 6, 6 Pro, 6a, 7, 7a, 7 Pro, 8, 8 Pro, 8a, 9 Pro, 9 Pro XL
NokiaG22, G60, X10, X30
Honor70, 90, 90 Lite, Magic5 Lite, Magic6 Pro, Magic6 Lite, X6a, X6b, X7, X7b, X8
HuaweiP30 Pro
InfinixHot 40 Pro
LGV60 ThinQ
MotorolaEdge 5G UW, G, G Stylus 5G, G9 Play, G34, G54, G84
OnePlusNord N200, Nord CE, Nord N30, 12R, 6T
OppoA60, A98, FindX2 Pro, Find X2 Lite, Find X3 Pro, Find X5 Pro, Reno5, Reno 7, Reno8, Reno10 Pro, Reno 12 Pro
Samsung GalaxyA04s, A10, A12, A13, A14, A15, A20e, A21s, A22, A23, A24, A31, A32, A33, A34, A40, A51, A52, A52s, A53, A54, A55, A70, A71, F23, M52, Note10+, Note20, Note20 Ultra, Note9, S10, S10+, S10e, S20, S20 FE, S20 Ultra, S20+, S21, S21 FE, S21 Ultra, S21+, S21+ Plus, S22, S22 Ultra, S22+, S23, S23 FE, S23 Ultra, S23+, S24, S24 Ultra, S24+, S9, S9+
XiaomiRedmi Note 9 Pro, Redmi 10, Redmi Note 10 Pro, Redmi Note 11, Redmi Note 11 Pro, Redmi 12, Redmi 12C, Redmi Note 13 Pro, Redmi 13C, 11T Pro, 11 Lite, 12T, 13T Pro,

User interface

Tap to Pay on Android includes payment collection screens. When your application is ready to collect a payment, the Stripe Terminal SDK takes over the display to handle the collection process. After you call the collect payment method, your application continues to run while Tap to Pay displays a full-screen prompt that instructs the cardholder to tap their card or NFC-based mobile wallet. If there’s an error reading the card, a prompt for retry displays. A successful tap returns a success indication and then your application regains control to confirm the payment.

Device-specific NFC tap zone UI

The Tap to Pay on Android SDK supports device-specific UX that dynamically indicates to the end user where the tap zone is located on the device. View examples of what the UX might look like in practice:

Generic UX

Device-specific UX

UX Configuration

SDK Reference

  • TapToPayUxConfiguration (Android)

You can override the default UX using the Terminal Android SDK, including colors of the tap zone, error message, success animation, and the position of the tap zone indicator. Call this method during your initialization or reader connection process. You can invoke this function multiple times if you need to adjust the appearance of the Tap to Pay screen during the lifetime of your application. This method only affects the appearance of the production Tap to Pay payment prompt; it doesn’t impact the PIN collection screen or the simulated payment prompt. View an example of customizing the UX:

SettingsActivity.kt
Kotlin
Java
No results
val config = TapToPayUxConfiguration.Builder() .tapZone( TapToPayUxConfiguration.TapZone.Manual.Builder() .indicator(TapToPayUxConfiguration.TapZoneIndicator.FRONT) .position(TapToPayUxConfiguration.TapZonePosition.Manual(0.5f, 0.3f)) .build() ) .colors( TapToPayUxConfiguration.ColorScheme.Builder() .primary(TapToPayUxConfiguration.Color.Value(Color.parseColor("#FF008686"))) .success(TapToPayUxConfiguration.Color.Default) .error(TapToPayUxConfiguration.Color.Resource(android.R.color.holo_red_dark)) .build() ) .darkMode( TapToPayUxConfiguration.DarkMode.DARK ) .build() Terminal.getInstance().setTapToPayUxConfiguration(config)

Cardholder verification limits and fallback

Some contactless card transactions above certain amounts might require additional cardholder verification methods (CVM) such as PIN entry. Tap to Pay on Android supports PIN entry on Terminal Android SDK 4.3.0 or later.

The PIN is collected in two scenarios:

  1. The transaction amount is above the cardholder verification method (CVM) limit.

In this case, the PIN is collected before collectPaymentMethod returns. Focus returns to your application after the PIN is entered or PIN collection is canceled.

Tap to Pay on Android local PIN flow
  1. The issuer makes a Strong Customer Authentication (SCA) request.

In this case, the PIN is collected during confirmPaymentIntent. Focus returns to your application after confirmPaymentIntent, unless the issuer makes a PIN request. In that case, PIN collection takes focus again until the PIN is entered or PIN collection is canceled.

Tap to Pay on Android SCA PIN flow

PIN error handling

You can only collect a PIN under the following conditions:

  • Developer options are disabled.
  • Accessibility services aren’t registered or running.
  • Screen recording isn’t active.
  • There are no screen overlay windows
  • You have an active internet connection.

PIN collection also fails if any party attempts to take a screenshot.

If PIN collection fails due to one of these factors, you receive a TAP_TO_PAY_INSECURE_ENVIRONMENT error with additional information about the cause of the error. We recommend providing actionable next steps for the user to retry the payment to prompt for a PIN.

Regional PIN considerations

NFC wallet payments (Apple Pay, Google Pay, and Samsung Pay) usually don’t require a PIN. However, in the UK, Canada, and Finland, regional requirements and card issuer policies can affect contactless payments.

In the UK, depending on the issuer, Strong Customer Authentication might require some cards to be inserted into a device. In such cases, if the card isn’t inserted, the payment is declined before the PIN screen appears, with the reason offline_pin_required.

In Canada and Finland, many issued cards are offline PIN only, meaning that entering the PIN requires physical contact, such as insertion into a device, which isn’t supported with Tap to Pay.

In these scenarios, we recommend asking the customer to try a different card or collecting payment in a different way. For example, using a Terminal card reader or sending a Payment Link.

When collecting payment with your mobile device, hold the card to the reader until it reads the chip information. You might need to wait a few seconds after the initial vibration when the card makes contact. In the event of a decline, use another method to collect payment, such as a Terminal card reader. You can only have one active connection to a reader at a time.

PIN UX

For security reasons, the pin pad doesn’t always appear in the center of the screen. It appears in a randomly determined position.

Tap to Pay on Android PIN collection screen

An off-center pin pad is expected behavior.

Best practices and promotion guidelines

Ensure an optimal user experience by considering the following:

  • Connect to the reader in the background on app startup to reduce wait times when collecting a payment.
  • Use automatic reconnection to reconnect to the reader when the app comes to the foreground to reduce wait times.
  • Provide merchant education to guide your users on how to accept contactless payments on a compatible Android device, including in-product promotion and text or email alerts.
  • Launch and promote your Tap to Pay on Android marketing campaigns using our messaging templates and design assets. Become a Stripe Partner here to access these assets in the partner portal.

Next steps

  • Set up your integration
此页面的内容有帮助吗?
是否
  • 需要帮助?联系支持。
  • 加入我们的早期使用计划。
  • 查看我们的更改日志。
  • 有问题?联系销售。
  • LLM? Read llms.txt.
  • Powered by Markdoc