# タッチ決済 サポートされている iPhone または Android デバイスでタッチ決済を受け付ける方法について説明します。 ノーコードソリューションをお探しの場合は、[Stripe ダッシュボードモバイルアプリ](https://docs.stripe.com/no-code/in-person.md) から決済を導入してください。 # iPhone > This is a iPhone for when platform is ios. View the full page at https://docs.stripe.com/terminal/payments/setup-reader/tap-to-pay?platform=ios. iPhone のタッチ決済を使用すると、[対応している iPhone](https://docs.stripe.com/terminal/payments/setup-reader/tap-to-pay.md?platform=ios#supported-devices)で対面での非接触型決済を受け付けることができます。 iPhone のタッチ決済には、Visa、Mastercard、American Express の非接触型カード、NFC 対応のモバイルウォレット (Apple Pay、Google Pay、Samsung Pay)、および [QR ベースの決済手段](https://docs.stripe.com/terminal/payments/additional-payment-methods.md)が含まれています。PIN 入力はサポートされています。さらに、アメリカでは、Discover が、カナダでは Interac が、オーストラリアでは eftpos がサポートされています。Stripe は、iOS 端末 SDK と React Native SDK に iPhone のタッチ決済を組み込み、iOS モバイルアプリで直接決済できるようにします。 > プラットフォームの場合、iPhone のタッチ決済の使用には、[Apple Acceptance Platform User Terms and Conditions (Apple 製品を受け付けるプラットフォームのユーザー向け利用規約)](https://stripe.com/legal/apple-acceptance-platform) が適用されます。 ### 提供状況 - AT - AU - BE - CA - CH - CZ - DE - DK - ES - FR - GB - IE - IT - NL - NZ - PL - PT - SE - SG - US > iPhone のタッチ決済はプエルトリコではご利用いただけません。 ### (公開プレビュー版)の提供状況 - BG - CY - EE - FI - HR - HU - JP - LI - LT - LU - LV - MT - NO - RO - SI - SK ## 始める #### iOS iPhone のタッチ決済には、[SCPDiscoveryMethodTapToPay](https://stripe.dev/stripe-terminal-ios/docs/Enums/SCPDiscoveryMethod.html#/c:@E@SCPDiscoveryMethod@SCPDiscoveryMethodTapToPay) 検出オプションと [connectReader](https://stripe.dev/stripe-terminal-ios/docs/Classes/SCPTerminal.html#/c:objc(cs) SCPTerminal(im)connectReader:delegate:connectionConfig:completion:) メソッドが導入されています。最新バージョンの [Terminal iOS SDK](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=ios) を導入して、最新のバグ修正と機能を含めます。バージョン固有の更新とバグ修正は、[SDK 変更ログ](https://github.com/stripe/stripe-terminal-ios/blob/master/CHANGELOG.md)で確認できます。 デバイスおよび最小 SDK バージョンの要件は、コンプライアンス要件の更新やセキュリティの脆弱性を理由に変更される可能性があります。最新のタッチ決済 要件に対応したソリューションを維持するには、[terminal-announce@lists.stripe.com](https://groups.google.com/a/lists.stripe.com/g/terminal-announce) に登録してください。 iOS アプリケーションで Tap to Pay を有効にするには、以下の手順に従います。 1. エンタイトルメントを[リクエスト](https://developer.apple.com/documentation/proximityreader/setting-up-the-entitlement-for-tap-to-pay-on-iphone?language=objc)。 1. Terminal iOS SDK を[設定](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=iOS)します。 1. Tap to Pay リーダーに[連結](https://docs.stripe.com/terminal/payments/connect-reader.md?terminal-sdk-platform=ios&reader-type=tap-to-pay)します。 1. Tap to Pay リーダーで支払いを[回収](https://docs.stripe.com/terminal/payments/collect-card-payment.md?terminal-sdk-platform=ios)します。 ### エンタイトルメントとビルドファイル iPhone のタッチ決済を使用してアプリケーションで支払いを受け付けるには、まず、[Apple Developer アカウント](https://developer.apple.com/documentation/proximityreader/setting-up-the-entitlement-for-tap-to-pay-on-iphone?language=objc) から Tap to Pay on iPhone の開発エンタイトルメントをリクエストし、設定する必要があります。内部テストが完了したら、配布エンタイトルメントをリクエストする必要があります。 アプリのビルド・ターゲットに開発者エンタイトルメント・ファイルを追加したら、以下を追加します: | | | | | キー | `com.apple.developer.proximity-reader.payment.acceptance` | | 値のタイプ | `boolean` | | 値 | `true` または `1` | iPhone のタッチ決済の実装は複雑なプロセスで、アプリを Apple に提出して承認を得る必要があります。詳細な手順については、ガイドをダウンロードしてください: {% button href=“https://docs.stripecdn.com/fd6123a72c0ea6d22019c125f9a35d855fe859b4e327faeb89a2934091830744.pdf”" %}Tap to Pay ガイド (PDF) #### React Native iPhone のタッチ決済には、[tapToPay](https://stripe.dev/stripe-terminal-react-native/api-reference/modules/Reader.IOS.html#DiscoveryMethod) の検出オプションと [connectReader](https://stripe.dev/stripe-terminal-react-native/api-reference/interfaces/StripeTerminalSdkType.html#connectreader-1) メソッドが導入されています。最新バージョンの [Terminal React Native SDK](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=react-native) を導入し、最新のバグ修正と機能を含めます。バージョン固有の更新とバグ修正は、[SDK 変更ログ](https://github.com/stripe/stripe-terminal-android/blob/master/CHANGELOG.md)で確認できます。 デバイスおよび最小 SDK バージョンの要件は、コンプライアンス要件の更新やセキュリティの脆弱性を理由に変更される可能性があります。最新のタッチ決済 要件に対応したソリューションを維持するには、[terminal-announce@lists.stripe.com](https://groups.google.com/a/lists.stripe.com/g/terminal-announce) に登録してください。 お使いのアプリケーションでタッチ決済を有効にするには、以下の手順に従います。 1. エンタイトルメントを[リクエスト](https://developer.apple.com/documentation/proximityreader/setting-up-the-entitlement-for-tap-to-pay-on-iphone?language=objc)。 1. Terminal iOS SDK を[設定](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=react-native)します。 1. タッチ決済リーダーに[接続](https://docs.stripe.com/terminal/payments/connect-reader.md?terminal-sdk-platform=react-native&reader-type=tap-to-pay)します。 1. Tap to Pay リーダーで支払いを[回収](https://docs.stripe.com/terminal/payments/collect-card-payment.md?terminal-sdk-platform=react-native)します。 ### エンタイトルメントとビルドファイル iPhone のタッチ決済を使用してアプリケーションで支払いを受け付けるには、まず、[Apple Developer アカウント](https://developer.apple.com/documentation/proximityreader/setting-up-the-entitlement-for-tap-to-pay-on-iphone?language=objc) から Tap to Pay on iPhone の開発エンタイトルメントをリクエストし、設定する必要があります。内部テストが完了したら、配布エンタイトルメントをリクエストする必要があります。 アプリのビルド・ターゲットに開発者エンタイトルメント・ファイルを追加したら、以下を追加します: | | | | | キー | `com.apple.developer.proximity-reader.payment.acceptance` | | 値のタイプ | `boolean` | | 値 | `true` または `1` | iPhone のタッチ決済の実装は複雑なプロセスで、アプリを Apple に提出して承認を得る必要があります。詳細な手順については、ガイドをダウンロードしてください: {% button href=“https://docs.stripecdn.com/fd6123a72c0ea6d22019c125f9a35d855fe859b4e327faeb89a2934091830744.pdf”" %}Tap to Pay ガイド (PDF) ## 対応デバイス タッチ決済には、1 年以内の iOS バージョンを実行する iPhone XS 以降が必要です。[Apple の Business Register のドキュメント](https://register-docs.apple.com/tap-to-pay-on-iphone/docs/sdk-and-api-guide#ios-versions-and-deprecation-management) には、サポートされている iOS バージョンが一覧表示されています。最適なパフォーマンスを得るため、最新バージョンの iOS に更新するようにしてください。 > Tap to Pay は、iOS のベータリリースではご利用になれません。 ## カード保有者の本人確認の制限とフォールバック [一定額](https://support.stripe.com/questions/what-are-the-regional-contactless-limits-for-stripe-terminal-transactions)を超える一部の非接触型カード取引では、PIN 入力などの追加のカード所有者確認方法 (CVM) が必要になる場合があります。iPhone のタッチ決済は、iOS 16.4 以降を実行しているデバイスの PIN 入力をサポートしています。 NFC ウォレットの支払い (Apple Pay、Google Pay、Samsung Pay) は通常、PIN を必要としません。ただし、イギリス、カナダ、フィンランドでは、地域の要件とカード発行会社のポリシーが非接触型決済に影響を与える可能性があります。 イギリスでは、カード発行会社によっては、強力な顧客認証 (SCA) でデバイスへのカードの挿入が必要になる場合があります。この場合は、カードが挿入されていないと、PIN 画面が表示される前に支払いが拒否され、その理由は `offline_pin_required` になります。 カナダとフィンランドでは、発行されるカードの多くがオフライン PIN のみであるため、PIN を入力するには、デバイスへの挿入などの物理的な接触が必要ですが、これはタッチ決済ではサポートされていません。 このようなシナリオでは、顧客に別のカードを試すようにお願いするか、別の方法で支払いを回収することをお勧めします。たとえば、Terminal カードリーダーを使用したり、[決済用リンク](https://docs.stripe.com/payment-links.md)を送信したりします。 モバイルデバイスで支払いを回収するときは、チップ情報が読み取られるまでカードをリーダーにかざしてください。カードが接触したときに、最初の振動から数秒待つ必要がある場合があります。支払いが拒否された場合は、Terminal カードリーダーなど、別の方法で支払いを回収します。リーダーへのアクティブな接続は、一度に 1 つだけです。 PIN を受け付けられる市場で PIN エントリーをテストするには、末尾が .03 の[物理テストカード](https://docs.stripe.com/terminal/references/testing.md#physical-test-cards)を使用します。PIN を受け付けられない市場では、カードがタッチされた後、0.03 で終わる取引は PIN の入力をユーザーに許可する代わりに、`online_or_offline_pin_required` エラーコードを返します。 ## ベストプラクティスとプロモーションのガイドライン iPhone のタッチ決済でユーザー体験を最適化して、Apple の審査プロセスに合格するようにするには、[Human Interface Guidelines (ヒューマンインターフェイスガイドライン) (英語)](https://developer.apple.com/design/human-interface-guidelines/technologies/tap-to-pay-on-iphone/) に従います。 以下の点をご検討ください。 - アプリの起動時にバックグラウンドでリーダーを接続して、支払い回収時の待機時間を短縮します。 - [自動再接続](https://docs.stripe.com/terminal/payments/connect-reader.md?terminal-sdk-platform=ios&reader-type=tap-to-pay#automatically-attempt-reconnection)を使用すると、アプリがフォアグラウンドになったときにリーダーに再接続されるようになり、待ち時間を短縮できます。 - 製品内プロモーションやテキストメッセージ、メールアラートなど、非接触型決済を互換性のある iPhone で受け付ける方法についてユーザーをガイドできるように加盟店に対して研修を行ってください。詳しくは Apple の[開発者向けマーケティングガイド](https://developer.apple.com/tap-to-pay/marketing-guidelines/)をご覧ください。iOS 18 のデバイスでは、Apple の [ProximityReaderDiscovery API](https://developer.apple.com/documentation/proximityreader/proximityreaderdiscovery) を使用して数行のコードを追加するだけで、iPhone のタッチ決済について加盟店研修を行うことができます。Apple はこのコンテンツが最新で、貴社の拠点がある地域に適合していることを保証します。 - [Apple のブランドガイドライン](https://developer.apple.com/tap-to-pay/marketing-guidelines/#editorial-guidelines)に沿ったメッセージテンプレートやデザインアセットを活用し、iPhone のタッチ決済に関するマーケティングキャンペーンを立ち上げ、プロモーションすることができます。これらのアセットにアクセスするには、[Stripe パートナー](https://stripe.com/partners/become-a-partner)として登録し、[パートナーポータル](https://portal.stripe.partners/s)をご利用ください。 # Android > This is a Android for when platform is android. View the full page at https://docs.stripe.com/terminal/payments/setup-reader/tap-to-pay?platform=android. Android のタッチ決済を使用すると、[対応している NFC 搭載の Android デバイス](https://docs.stripe.com/terminal/payments/setup-reader/tap-to-pay.md?platform=android#supported-devices)で対面での非接触型決済を受け付けることができます。 Android のタッチ決済には、Visa、Mastercard、American Express、Discover の非接触型カード、NFC ベースのモバイルウォレット (Apple Pay、Google Pay、Samsung Pay)、および [QR ベースの支払い方法](https://docs.stripe.com/terminal/payments/additional-payment-methods.md)が含まれています。PIN 入力もサポートされています。また、オーストラリアでは eftpos が利用可能で、カナダでは Interac がパブリックプレビューとして提供されており、フランスでは Cartes Bancaires がパブリックプレビューとして提供されています。Stripe は、TerminalAndroidSDK およびTerminalReactNativeSDK に Android のタッチ決済を含めており、Android モバイルアプリで直接決済を有効にできます。 ### 提供状況 - AT - AU - BE - CH - DE - DK - FI - FR - GB - IE - IT - MY - NL - NZ - PL - SE - SG - US ### (公開プレビュー版)の提供状況 - BG - CA - CY - CZ - EE - ES - GI - HR - HU - LI - LT - LU - LV - MT - NO - PT - RO - SI - SK ## 始める #### Android 最新バージョンの [Terminal Android SDK](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=android) を導入して、最新のバグ修正と機能を含めます。バージョン固有の更新とバグ修正は、[SDK 変更ログ](https://github.com/stripe/stripe-terminal-android/blob/master/CHANGELOG.md)で確認できます。 デバイスおよび最小 SDK バージョンの要件は、コンプライアンス要件の更新やセキュリティの脆弱性を理由に変更される可能性があります。最新のタッチ決済 要件に対応したソリューションを維持するには、[terminal-announce@lists.stripe.com](https://groups.google.com/a/lists.stripe.com/g/terminal-announce) に登録してください。 お使いの Android アプリケーションでタッチ決済を有効にするには、以下の手順に従います。 1. Terminal Android SDK を[設定](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=android)します。 1. 既存の `stripeterminal` の依存関係を以下の依存関係に置き換えます。 #### Kotlin ```kotlin dependencies { implementation("com.stripe:stripeterminal-taptopay:5.4.0") implementation("com.stripe:stripeterminal-core:5.4.0") // ... } ``` 1. タッチ決済リーダーに[接続](https://docs.stripe.com/terminal/payments/connect-reader.md?terminal-sdk-platform=android&reader-type=tap-to-pay)します。 1. Tap to Pay リーダーで支払いを[回収](https://docs.stripe.com/terminal/payments/collect-card-payment.md?terminal-sdk-platform=android)します。 #### React Native [Terminal React Native SDK](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=react-native) の最新バージョンを導入し、最新のバグ修正と機能を含めます。 デバイスおよび最小 SDK バージョンの要件は、法令遵守要件の更新やセキュリティの脆弱性を理由に変更される可能性があります。最新の Tap to Pay 要件に対応したソリューションを維持するには、[terminal-announce@lists.stripe.com](https://groups.google.com/a/lists.stripe.com/g/terminal-announce) に登録してください。アプリケーションで Tap to Pay を有効にするには、以下のようにします。 1. Terminal React Native SDK を[設定](https://docs.stripe.com/terminal/payments/setup-integration.md?terminal-sdk-platform=react-native)します。 1. タッチ決済リーダーに[接続](https://docs.stripe.com/terminal/payments/connect-reader.md?terminal-sdk-platform=react-native&reader-type=tap-to-pay)します。 1. Tap to Pay リーダーで支払いを[回収](https://docs.stripe.com/terminal/payments/collect-card-payment.md?terminal-sdk-platform=react-native)します。 ## 対応デバイス Android のタッチ決済は、携帯電話、キオスク、タブレット、ハンドヘルドデバイスなど、さまざまな Android デバイスで機能します。次のすべての条件を満たすデバイスのみを検出して接続できます。 - 機能的で統合された NFC センサーと ARM ベースのプロセッサーを搭載 - ルートが指定されておらず、デバイスのブートローダーがロックされ変更されていない - Android 13 以降を実行している - 過去 12 カ月間にセキュリティ更新プログラムがインストールされている - Google モバイルサービスを使用しており、かつ Google Play Store アプリがインストールされている - ECDH のハードウェアサポート付きのキーストアがある ([`FEATURE_HARDWARE_KEYSTORE`](https://developer.android.com/reference/android/content/pm/PackageManager#FEATURE_HARDWARE_KEYSTORE) のバージョンは 100 以降である必要があります) - インターネットへの安定した接続状態 - メーカーから提供された、変更されていない OS を実行します - 開発者オプションが無効になっています > タッチ決済は Android のベータ版では動作しません。 Android デバイス エミュレーターは、タッチ決済ではサポートされていません。シミュレートリーダーと実稼働リーダーで同じデバイス要件が適用されるため、開発者はテスト中に最も現実的な体験を得られます。 ### デバイスタイプ サポートされているデバイスタイプには、次のものが含まれますが、これらに限定されません。 | デバイスタイプ | メーカー | モデル | | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -------------------------- | | カウンタートップ | [Sunmi](https://partner.posportal.com/stripe/stripe/catalog/category/view/id/11/) | D3 MINI、V3 MIX | | ハンドヘルド | Honeywell | CT32、CT37 | | iMin | Lark 1 | | [Sunmi](https://partner.posportal.com/stripe/stripe/catalog/category/view/id/11/) | L3、V3 | | Zebra | TC53E | | キオスク | [Sunmi](https://partner.posportal.com/stripe/stripe/catalog/category/view/id/11/) | Qualcomm 6225 チップ搭載 Flex 3 | | レジ | iMin | Falcon 2 | | [Sunmi](https://partner.posportal.com/stripe/stripe/catalog/category/view/id/11/) | T3、T3 PRO | | タブレット | HMD Global | HMD T21 | | Samsung Galaxy | Tab Active5 | | [Sunmi](https://partner.posportal.com/stripe/stripe/catalog/category/view/id/11/) | CPad | | Oukitel | RT3 Plus | | Ulefone | Armor Pad 4 Ultra | 一部のメーカーは、GMS 認定デバイスと非 GMS 認定デバイスの両方を製造しています。GMS 認定を受けていないデバイスを使用している場合、デバイスを接続しようとすると、「`ATTESTATION_FAILURE: Device is not Google Mobile Services (GMS) certified`というエラーが表示されます。これが発生した場合は、製造元に問い合わせて問題を解決してください。 ### 携帯電話 サポートされている携帯電話には、次のものが含まれますが、これらに限定されません。 | メーカー | モデル | | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Asus | ROG Phone 7 シリーズ、ROG Phone 8 シリーズ、ROG Phone 9、Zenfone 10、Zenfone 11 Ultra、Zenfone 12 Ultra、Zenfone 9 | | Google | Pixel 10、Pixel 10 Pro、Pixel 10 Pro Fold、Pixel 10 Pro XL、Pixel 6、Pixel 6 Pro、Pixel 6a、Pixel 7、Pixel 7 Pro、Pixel 7a、Pixel 8、Pixel 8 Pro、Pixel 8a、Pixel 9、Pixel 9 Pro、Pixel 9 Pro Fold、Pixel 9 Pro XL、Pixel 9a、Pixel Fold | | Honor | 100、200、200 Lite、200 Pro、200 Smart、400、400 Lite、400 Pro、400 Smart、90、90 Lite、90 Smart、Magic V2、Magic V3、Magic V5、Magic Vs、Magic4 Pro、Magic5 Pro、Magic6、Magic6 Lite 5G、Magic6 Pro、Magic7 Lite、Magic7 Pro、Magic8 Lite、Magic8 pro、X5c Plus、X6、X6a、X6b、X6c、X7b、X7b 5G、X7c 5G、X7c 5G、X7c 5G、X7c 5G、 X7d、X8a、X8b、X9b 5G、X9c、X9c Smart、X9d | | Infinix | GT 20 Pro、GT 30、GT 30 Pro、HOT 40 Pro、HOT 40i、HOT 50 5G、HOT 50 Pro、HOT 50 Pro+、HOT 60 5G、HOT 60 Pro、HOT 60 Pro+、HOT 60i、NOTE 30、NOTE 30 Pro、NOTE 40 Pro、NOTE 40 5G、NOTE 40 Pro、NOTE 40 Pro 5G、NOTE 40 Pro+ 5G、NOTE 50 NOTE 50 Pro、NOTE 50 Pro+ 5G、NOTE 50S 5G、SMART 10 PLUS、ZERO 30、ZERO 40 | | Motorola | ThinkPhone 25 by motorola、ThinkPhone by Motorola、edge (2022)、edge 2023、edge 2024、edge 2025、edge 30 ultra、edge 40、edge 40 neo、edge 40 pro、edge 50、edge 50 fusion、edge 50 neo、edge 50 pro、edge 50 ultra、edge 60、edge 60 fusion、edge 60 neo、edge 60 pro、edge 60 stylus、edge 70、edge plus (2022)、edge plus 2023、edge plus 5G UW (2022)、moto g - 2025、moto g play - 2024、moto g power - 2025、moto g power 5G - 2024、moto g stylus 5G - 2023、moto g stylus 5G - 2024、moto g stylus 5G - 2025、moto g04、moto g04s、moto g05、moto g06、moto g06 power、moto g14、moto g15、moto g35 5G、moto g54 5G、moto g55 5G、moto g56 5G、moto g57 power、moto g64 5G、moto g64y 5G、moto g66j 5G、moto g67 power 5G、moto g72、moto g73 5G、moto g75 5G、moto g85 5G、moto g86 5G、moto g86 power 5G、moto g96 5G、razr 2022、razr 2023、razr 2024、razr 2025、razr 40、razr 40 ultra、razr 50、razr 50 ultra、razr 60、razr 60 ultra、razr plus 2023、razr plus 2024、razr plus 2025、razr ultra 2025 | | OnePlus | 10 Pro、10 Pro 5G、10R 5G、10T 5G、11 5G、11R 5G、12、12R、13、13R、13T、13s、15、Ace 5、Ace 6、Nord 3 5G、Nord 4、Nord 5、Nord CE4 Lite 5G、Nord CE5、Nord N30 SE 5G、Oneplus Ace 2 Pro、Open | | Oppo | A3、A3 Pro 5G/A3 5G/A80 5G、A38、A40/A3/A40m、A40/A40m、A5 5G、A5 Pro、A5 Pro 5G、A5/A5m、A58、A5x、A60、A60 5G、A78、A78 5G、A79 5G、A80 5G、F25 Pro 5G、Find N2 Flip、Find N3、Find N3 Flip、Find N5、Find X5 Pro、Find X6、Find X6 Pro、Find X7 Ultra、Find X8、Find X8 Pro、Find X9、Find X9 Pro、OPPO A38、OPPO A6 Pro 5G、OPPO A60 5G/ A3 5G、OPPO F31 5G、OPPO Reno8 Pro 5G、OPPO Reno8 T、Reno 11、Reno 11 Pro、Reno10 5G、Reno10 Pro+ 5G、Reno11 F 5G、Reno11 F 5G/Reno11 A、Reno12 5G、Reno12 F、Reno12 F 5G、Reno12 F/FS 5G、Reno12 Pro、Reno12 Pro 5G、Reno13 5G、Reno13 F 5G、Reno13 F 5G / Reno13 A、Reno13 Pro 5G、Reno14 5G、Reno14 F 5G、Reno14 F 5G/Reno14 FS 5G、Reno14 Pro 5G、realme C51 | | Redmi | 12 5G、13C 5G、15、15 5G、15C 5G、K50、K60 Pro、K60 Ultra、K70、Note 12、Note 12 ターボ、Note 13、Note 13 5G、Note 13 Pro、Note 13 Pro 5G、Note 13 Pro+ 5G、Note 14、Note 14 5G、Note 14 Pro 5G、Note 14 Pro 5G、Note 14 Pro+、Note 14 Pro+、Note 14 Pro+ 5G、Turbo 3 | | Samsung Galaxy | A04s、A05s、A13、A14、A14 5G、A15、A15 5G、A16、A16 5G、A17、A17 5G、A23 5G、A24、A25 5G、A26 5G、A33 5G、A34 5G、A35 5G、A36 5G、A53 5G、A53 5G UW、A54 5G、A55 5G、A56 5G、F34 5G、F54 5G、Flip7 FE、M13、M14 5G、M15 5G、M33 5G、M34 5G、M35 5G、M36 5G、M53 5G、M56 5G、S22、S22 Ultra、S22+、S23、S23 FE、S23 Ultra、S23+、S24、S24 FE、S24 Ultra、S24+、S25、S25 Edge、S25 FE、S25 Ultra、S25+、Tab Active5、Tab Active5 5G、Tab Active5 Pro、Tab Active5 Pro 5G、Wide8、XCover7、XCover7 Pro、Z Flip4、Z Flip5、Z Flip6、Z Flip7、Z Fold4、Z Fold5、Z Fold6、Z Fold7 | | Xiaomi | 12、12 Pro、12T、12T Pro、13、13 Lite、13 Pro、13 Ultra、13T、13T Pro、14、14 Pro、14 Ultra、14T、14T Pro、15、15 Ultra、17 Pro Max、MIX Fold 3、MIX Fold 4 | ## ユーザーインターフェイス Android の Tap to Pay には決済収集画面があります。アプリケーション側で決済を収集する準備が完了すると、Stripe Terminal SDK がその画面を引き継いで収集プロセスを処理します。[process payment](https://docs.stripe.com/terminal/payments/collect-card-payment.md#process-payment) メソッドを呼び出した後、アプリケーションは実行中のままで、Tap to Pay はカード会員に対してカードまたは NFC ベースのモバイルウォレットをタップするように求める全画面プロンプトを表示します。カードの読み取りエラーが発生した場合は、再試行を求めるプロンプトが表示されます。タップに成功すると、成功の表示が返され、アプリケーションに制御が戻ります。 ### デバイス固有の NFC タップゾーン 可能な場合、Android のタッチ決済 SDK はタップゾーンの位置をエンドユーザーが理解できるように自動でタップゾーンインジケーターを移動させます。 ![](https://d37ugbyn3rpeym.cloudfront.net/videos/terminal/ttpa-onscreen-demo-1.mp4)![](https://d37ugbyn3rpeym.cloudfront.net/videos/terminal/ttpa-onscreen-demo-2.mp4) SDK がタップゾーンの位置を自動的に判定できない場合 (タップゾーンが画面外にある場合など)、代わりにデフォルトの表示が使用されます。 ![](https://d37ugbyn3rpeym.cloudfront.net/videos/terminal/ttpa-default-demo.mp4) ### ユーザー体験の設定 - [TapToPayUxConfiguration (Android)](https://stripe.dev/stripe-terminal-android/external/com.stripe.stripeterminal.external.models/-tap-to-pay-ux-configuration/index.html) - [TapToPayUxConfiguration (React Native)](https://stripe.dev/stripe-terminal-react-native/api-reference/types/TapToPayUxConfiguration.html) また、Terminal SDK を使用して、タップ画面、エラー画面、成功画面の色、タップゾーンインジケーターの位置などのデフォルトのタップ画面を上書きできます。このメソッドは初期化プロセス中またはリーダーの接続プロセス中に呼び出されます。この関数は、アプリの実行中にタップ画面のデザインを調整する必要がある場合に何度でも呼び出すことができます。このメソッドはタップ画面の外観のみに影響し、PIN 収集画面やシミュレーション済みの支払いプロンプトには影響しません。 #### Android #### Kotlin ```kotlin val config = TapToPayUxConfiguration.Builder() .tapZone( TapToPayUxConfiguration.TapZone.Front(0.5f, 0.3f) ) .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) ``` #### React Native ```js import { useStripeTerminal, DarkMode, } from '@stripe/stripe-terminal-react-native'; const { setTapToPayUxConfiguration } = useStripeTerminal(); const callSetTapToPayUxConfiguration = async () => { let tapZone = { indicator: 'front', xBias: 0.5, yBias: 0.3, }; let darkMode = DarkMode.DARK; let colors = { primary: '#FF008686', error: '#FFCC0000', }; let config = { tapZone: tapZone, darkMode: darkMode, colors: colors, }; const { error } = await setTapToPayUxConfiguration(config); if (error) { console.log('setTapToPayUxConfiguration error', error); return; } console.log('setTapToPayUxConfiguration success'); }; ``` ![](https://d37ugbyn3rpeym.cloudfront.net/videos/terminal/ttpa-configuration-demo.mp4) ## カード保有者の本人確認の制限とフォールバック [一定額を超える](https://support.stripe.com/questions/what-are-the-regional-contactless-limits-for-stripe-terminal-transactions)一部の非接触型カード取引では、PIN 入力などの追加のカード所有者確認方法 (CVM) が必要になる場合があります。Android のタッチ決済は、Terminal Android SDK [4.3.0](https://github.com/stripe/stripe-terminal-android/releases/tag/v4.3.0) 以降で PIN 入力に対応しています。 PIN は次の 2 つのシナリオで収集されます。 - 取引金額が[カード保有者確認方法 (CVM) の上限を超えています](https://support.stripe.com/questions/what-are-the-regional-contactless-limits-for-stripe-terminal-transactions)。この場合、PIN は [collectPaymentMethod](https://stripe.dev/stripe-terminal-android/core/com.stripe.stripeterminal/-terminal/collect-payment-method.html) が返される前に収集されます。PIN が入力されるか、PIN の回収がキャンセルされると、アプリケーションにフォーカスが戻ります。 ![Android のタッチ決済のローカル PIN のフロー](https://b.stripecdn.com/docs-statics-srv/assets/ttpa-local-pin-flow.0f134662b73c0dfa4eaf1e57f09fd17a.png) - カード発行会社は[強力な顧客認証 (SCA)](https://stripe.com/guides/strong-customer-authentication) リクエストを行います。この場合、PIN は [confirmPaymentIntent](https://stripe.dev/stripe-terminal-android/core/com.stripe.stripeterminal/-terminal/confirm-payment-intent.html) 中に収集されます。カード発行会社が PIN リクエストを行わない限り、`confirmPaymentIntent` 後にフォーカスはアプリケーションに戻ります。この場合、PIN が入力されるか、PIN の入力がキャンセルされるまで、PIN の入力が再びフォーカスされます。 ![Android のタッチ決済の SCA PIN のフロー](https://b.stripecdn.com/docs-statics-srv/assets/ttpa-sca-pin-flow.4144d0670052a3544bfe573182bb9487.png) ### PIN エラー処理 PIN は、次の条件の場合にのみ収集できます。 - [開発者向けオプション](https://developer.android.com/studio/debug/dev-options)は無効です。 - [アクセシビリティサービス](https://developer.android.com/guide/topics/ui/accessibility/service)が登録されていないか、実行されていません。 - [画面録画](https://support.google.com/android/answer/9075928)はアクティブではありません。 - [画面オーバーレイウィンドウ](https://developer.android.com/privacy-and-security/risks/tapjacking)はありません - アクティブなインターネット接続があります。 また、第三者がスクリーンショットを撮ろうとした場合にも、PIN の収集は失敗します。 これらの要因のいずれかが原因で PIN の収集に失敗した場合は、エラーの原因に関する追加情報を含む `TAP_TO_PAY_INSECURE_ENVIRONMENT` エラーが表示されます。ユーザーが支払いを再試行して PIN を入力するための、実行可能な次のステップを提供することをおすすめします。 ### 地域的な PIN に関する考慮事項 NFC ウォレットの支払い (Apple Pay、Google Pay、Samsung Pay) は通常、PIN を必要としません。ただし、イギリス、カナダ、フィンランドでは、地域の要件とカード発行会社のポリシーが非接触型決済に影響を与える可能性があります。 イギリスでは、カード発行会社によっては、強力な顧客認証 (SCA) でデバイスへのカードの挿入が必要になる場合があります。この場合は、カードが挿入されていないと、PIN 画面が表示される前に支払いが拒否され、その理由は `offline_pin_required` になります。 カナダとフィンランドでは、発行されるカードの多くがオフライン PIN のみであるため、PIN を入力するには、デバイスへの挿入などの物理的な接触が必要ですが、これはタッチ決済ではサポートされていません。 このようなシナリオでは、顧客に別のカードを試すようにお願いするか、別の方法で支払いを回収することをお勧めします。たとえば、Terminal カードリーダーを使用したり、[決済用リンク](https://docs.stripe.com/payment-links.md)を送信したりします。 モバイルデバイスで支払いを回収するときは、チップ情報が読み取られるまでカードをリーダーにかざしてください。カードが接触したときに、最初の振動から数秒待つ必要がある場合があります。支払いが拒否された場合は、Terminal カードリーダーなど、別の方法で支払いを回収します。リーダーへのアクティブな接続は、一度に 1 つだけです。 ### PIN UX セキュリティ上の理由により、ピンパッドは画面の中央に表示されません。ランダムに決定される位置に表示されます。 ![Android のタッチ決済のPIN 収集画面](https://b.stripecdn.com/docs-statics-srv/assets/ttpa-pin-screen.ceb66e1d9695de8ca517e39265a2be10.png) ピンパッドが中心から外れているのは想定どおりの動作です ## ベストプラクティスとプロモーションのガイドライン 最適なユーザー体験を提供できるように、次の項目を検討してください。 - アプリの起動時にバックグラウンドでリーダーを接続して、支払い回収時の待機時間を短縮します。 - [自動再接続](https://docs.stripe.com/terminal/payments/connect-reader.md?terminal-sdk-platform=android&reader-type=tap-to-pay#automatically-attempt-reconnection)を使用すると、アプリがフォアグラウンドになったときにリーダーに再接続されるようになり、待ち時間を短縮できます。 - プロダクト内のプロモーション、テキストやメールのアラートなどの、互換性のある Android デバイスで非接触型決済を受け付ける方法をユーザーに伝えられるようにする研修を加盟店に提供します。 - 当社のメッセージテンプレートやデザインアセットを活用して、Android のタッチ決済に関するマーケティングキャンペーンを立ち上げ、プロモーションできます。これらのアセットにアクセスするには、[Stripe パートナー](https://stripe.com/partners/become-a-partner)として登録し、[パートナーポータル](https://portal.stripe.partners/s/login/?language=en_US&ec=302&startURL=%2Fs%2F)をご利用ください。 ## 次のステップ - [実装方法を設定する](https://docs.stripe.com/terminal/payments/setup-integration.md)