コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
始める
支払い
財務の自動化
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
概要
Stripe Payments について
構築済みのシステムをアップグレード
支払いの分析
オンライン決済
概要ユースケースを見つけるManaged Payments
Payment Links を使用する
決済ページを構築
高度なシステムを構築
アプリ内実装を構築
決済手段
決済手段を追加
決済手段を管理
Link による購入の迅速化
支払いインターフェイス
Payment Links
Checkout
Web Elements
アプリ内 Elements
決済シナリオ
カスタムの決済フロー
柔軟なアクワイアリング
オーケストレーション
店頭支払い
端末
    概要
    対面支払いを受け付ける
    導入方法の設計
    リーダーを選択
    導入方法の設計
    クイックスタート
    サンプルアプリケーション
    テスト
    Terminal の設定
    実装方法を設定する
    リーダーに接続する
    決済の受け付け
    カード支払いを回収
    追加の支払い方法
    オフライン決済を受け付ける
    通信販売/電話販売の決済
    地域的な考慮事項
    購入時
    チップを回収する
    将来の使用に備えて支払い情報を収集して保存する
    柔軟なオーソリ
    決済後
    返金の取引
    領収書の提供
    Checkout のカスタマイズ
    カートの表示
    画面上の入力を収集
    スワイプで取得されたデータを収集
    NFC 機器のタップによって取得したデータを収集
    Apps on Devices
    リーダーを管理
    リーダーの注文、返品、交換
    リーダーの登録
    場所とゾーンの管理
    リーダーの設定
    Monitor Readers
    暗号化
    リファレンス
    API リファレンス
    モバイルリーダー
    スマートリーダー
    SDK 移行ガイド
      SDK v3 移行ガイド
    デプロイのチェックリスト
    Stripe Terminal リーダー製品シート
他の Stripe プロダクト
Financial Connections
仮想通貨
Climate
ホーム支払いTerminal

注

このページはまだ日本語ではご利用いただけません。より多くの言語で文書が閲覧できるように現在取り組んでいます。準備が整い次第、翻訳版を提供いたしますので、もう少しお待ちください。

Terminal SDK 移行ガイド

Stripe Terminal SDK の最新バージョンに移行する方法をご紹介します。

ページをコピー

Stripe Terminal iOS SDK および Android SDK が更新され、API と動作への重要な変更がいくつか行われました。その一部については Stripe Terminal SDK のシステムアップグレードが必要になります。Stripe は、SDK 間の一貫性を向上させ、アプリケーションロジックとシステムを効率化するために、定期的にメジャーバージョンの更新を行い、システムの機能や動作に影響を与える変更を加えています。このガイドでは、システムのアップグレードに関わる最新の変更について解説します。

注

新しい Stripe Terminal の導入を構築する場合は、導入を設計するページをご参照ください。

バージョン 4.0.0 への移行

Stripe Terminal iOS SDK および Android SDK のバージョン 4.0.0 に関する変更点をいくつかご紹介します。

  • 海外での支払い後に支払い情報を保存する
    • POS 端末に支払い情報を保存する際の顧客の同意収集プロセスを更新することで、アメリカ国外でも支払い後に支払い情報を保存できるようになりました。
  • スマートリーダーでの通信販売および電話注文 (MOTO) の支払いのサポートPreview
    • この機能はプレビューです。アクセスをリクエストするには、stripe-terminal-betas@stripe.com までお問い合わせください。
  • iOS プラットフォームのミニマムサポートバージョンに関する更新
  • モバイルと Tap to Pay の予期しない切断が発生したリーダーの自動再接続機能がデフォルトで有効化 (リーダーの回復力の向上)
  • リーダー接続機能と切断コールバックがすべてのリーダータイプで統合

アプリケーションが 4.0.0 より前のバージョンの Terminal iOS SDK を使用している場合、更新してカードの対面支払いをグローバルに受け付けるには変更がいくつか必要です。バージョン 3.9.1 から 4.0.0 への変更点のリストについては、SDK 変更ログをご覧ください。

iOS 14 以降のミニマムサポートバージョンに関する更新

Stripe は、開発者サポート業務を効率化するために SDK のミニマムサポートバージョンを定期的に更新しています。

現行の Terminal iOS SDK バージョン 3.X は、引き続き iOS 13 以降で動作するデバイスをサポートします。

PaymentIntent 設定後のカードの保存システムに関する更新

対面支払いで PaymentIntent が成功した後に決済手段を保存する場合、システムを次のように更新する必要があります。

  • Terminal の PaymentIntent を作成する際に、setup_future_usage パラメーターを渡します。これは、今後の支払いを同じカードを使用することを Stripe に通知します。

  • また、allow_redisplay を always または limited にして SCPCollectConfiguration に渡す必要があります。顧客の保存したカードを今後すべての決済フローで表示する場合は always を、サブスクリプションのような最初に設定した用途でのみ使用する場合は limited を渡します。

    支払い後に支払い情報を保存する方法についてご紹介します。

SetupIntent の支払いを使用しないカードの保存システムに関する更新

SetupIntent と PaymentIntent 間、また対面取引とオンライン取引間でシステムの形が統一されるよう、以前まですべての SetupIntent トランザクションで必須だった customerConsentCollected パラメーターを削除し、代わりに allowRedisplay パラメーターを SCPTerminal の collectSetupIntentPaymentMethod に追加しました。

請求なしで直接保存する方法についてご紹介します。

discoverReaders の使用に関する更新

  • リーダー検出の実行状況を示す新しい列挙値 discovering を SCPConnectionStatus に追加しました。構築済みのシステムがこの新しい列挙値に対応できることを確認し、関連する情報を顧客に伝達してください。

  • リーダー検出操作の複数同時処理を改善しました。以前までは、discoverReaders を複数回呼び出すと、操作がキューに入れられていました。新しい discoverReaders では、既存の操作の実行中に呼び出しが行われると、SDK が実行中の操作をキャンセルし、SCPErrorCanceledDueToIntegrationError エラーを返します。その後、discoverReaders の新しい操作が直ちに開始されます。

  • スマートリーダーおよび Tap to Pay リーダーを見つけると、操作の終了時に discoverReaders の完了ブロックが呼び出されるようになりました。この変更は、これらのリーダータイプに対するリーダー検出が長時間実行される操作ではないことを表しています。

  • SDK の SCPDiscoveryDelegate への参照を強力に保持していたバグを修正しました。アプリケーションが、検出イベントを受信するためのデリゲートへの強参照を保持していることを確認してください。

リーダー接続の利用に関する更新

  • リーダーの検出と接続で一貫したシステムパターンが保たれるように、以前のリーダー接続メソッド (connectBluetoothReader、connectInternetReader、connectLocalMobileReader) をすべて connectReader に統合しました。正確な接続タイプは、渡された接続設定によって決定されます。

  • モバイルリーダーと Tap to Pay リーダーでは、ReaderDelegate パラメーターが connectReader メソッドから削除され、代わりに以前 SCPReconnectionDelegate だった connectionConfig に移動しました。他のリーダータイプと同様に、スマートリーダーの InternetConnectionConfiguration も InternetReaderDelegate が渡されることを想定しています。これは、リーダーの切断などのイベントをシステムに警告します。

リーダーのタイプ接続の設定リーダーデリゲート
モバイルリーダーSCPBluetoothConnectionConfigurationSCPMobileReaderDelegate
スマートリーダーSCPInternetConnectionConfigurationSCPInternetReaderDelegate
タッチ決済SCPTapToPayConnectionConfigurationSCPTapToPayReaderDelegate

移行前

ConnectReaderViewController.swift
Swift
// Call `connectBluetoothReader` with the selected reader and a connection config // to register to a location as set by your app. let connectionConfig: BluetoothConnectionConfiguration do { connectionConfig = try BluetoothConnectionConfigurationBuilder(locationId:
"{{LOCATION_ID}}"
).build() } catch { // Handle the error building the connection configuration return } Terminal.shared.connectBluetoothReader(selectedReader, delegate: readerDelegate, connectionConfig: connectionConfig) { reader, error in if let reader = reader { print("Successfully connected to reader: \(reader)") } else if let error = error { print("connectBluetoothReader failed: \(error)") } }

移行後

ConnectReaderViewController.swift
Swift
// Call `connectReader` with the selected reader and a connection config // to register to a location as set by your app. let connectionConfig: BluetoothConnectionConfiguration do { connectionConfig = try BluetoothConnectionConfigurationBuilder(delegate: yourMobileReaderDelegate, locationId:
"{{LOCATION_ID}}"
) .build() } catch { // Handle the error building the connection configuration return } Terminal.shared.connectReader(selectedReader, connectionConfig: connectionConfig) { reader, error in if let reader = reader { print("Successfully connected to reader: \(reader)") } else if let error = error { print("connectReader failed: \(error)") } }

詳しくは、リーダーへの接続に関する Stripeドキュメントをご覧ください。

モバイルリーダーと Tap to Pay リーダーで自動再接続がデフォルトで有効になりました

  • モバイルリーダーおよび Tap to Pay リーダーの Terminal のシステムの回復力を高めるため、リーダーが予期せず切断された場合の自動再接続がデフォルトで有効になります。

  • 再接続プロセスの間、ユーザーにリーダーの状態を知らせるために、アプリに通知を表示させることをお勧めします。SCPReconnectionDelegate は、リーダーの再接続メソッドを処理するために削除されました。その役割は、それぞれの ReaderDelegate に統合されています。再接続イベントを処理するには、モバイルリーダーの場合 MobileReaderDelegate を、Tap to Pay リーダーの場合 TapToPayReaderDelegate を使用します。

  • 独自のリーダー再接続ロジックを実装し、この動作を維持したい場合は、setAutoReconnectOnUnexpectedDisconnect を false に設定して自動再接続をオフにします。

移行前

ReaderViewController.swift
Swift
import StripeTerminal extension ReaderViewController: ReconnectionDelegate { // MARK: ReconnectionDelegate func terminal(_ terminal: Terminal, didStartReaderReconnect cancelable: Cancelable) { // 1. Notified at the start of a reconnection attempt // Use cancelable to stop reconnection at any time } func terminalDidSucceedReaderReconnect(_ terminal: Terminal) { // 2. Notified when reader reconnection succeeds // App is now connected } func terminalDidFailReaderReconnect(_ terminal: Terminal) { // 3. Notified when reader reconnection fails // App is now disconnected } }

移行後

ReaderViewController.swift
Swift
import StripeTerminal extension ReaderViewController: MobileReaderDelegate { // MARK: MobileReaderDelegate func reader(_ reader: Reader, didStartReconnect cancelable: Cancelable, disconnectReason: DisconnectReason) { // 1. Notified at the start of a reconnection attempt // Use cancelable to stop reconnection at any time } func readerDidSucceedReconnect(_ reader: Reader) { // 2. Notified when reader reconnection succeeds // App is now connected } func readerDidFailReconnect(_ reader: Reader) { // 3. Notified when reader reconnection fails // App is now disconnected } }

詳細およびコードスニペットの内容については、自動再接続の試行に関する Stripe ドキュメントをご覧ください。

リーダー切断の処理に関する更新

  • SCPTerminalDelegate から terminal:didReportUnexpectedReaderDisconnect: が削除され、リーダーの切断が生じた場合に通知されるよう、すべてのリーダータイプの切断コールバックを統一しました。ReaderDelegates の一部として reader:didDisconnect: を使用した場合、リーダーの切断時に通知が届きます。モバイルリーダーの場合、SCPDisconnectReason で切断の理由を確認できます。

自動再接続が有効になっている場合、SDK がリーダーとの再接続に失敗して切断されると、-readerDidFailReconnect: メソッドと reader:didDisconnect: メソッドの両方が呼び出されます。

移行前

ReaderViewController.swift
Swift
import StripeTerminal class ReaderViewController: UIViewController, TerminalDelegate { override func viewDidLoad() { super.viewDidLoad() Terminal.shared.delegate = self } // ... // MARK: TerminalDelegate func terminal(_ terminal: Terminal, didReportUnexpectedReaderDisconnect reader: Reader) { // Consider displaying a UI to notify the user and start rediscovering readers } }

移行後

ReaderViewController.swift
Swift
import StripeTerminal class ReaderViewController: UIViewController, MobileReaderDelegate { override func viewDidLoad() { super.viewDidLoad() // Set the reader delegate when connecting to a reader } // ... func reader(_ reader: Reader, didDisconnect reason: DisconnectReason) { // Consider displaying a UI to notify the user and start rediscovering readers } }

詳しくは、切断の手動処理に関する Stripeドキュメントをご覧ください。

決済の受け付けシステムに関する更新

  • 返された Cancelable オブジェクトを使用して confirmPaymentIntent をキャンセルできるようになりました。これは、確認プロセスが非同期である QR コード決済に有効です。同様に、confirmSetupIntent と confirmRefund もキャンセルできるようになりました。
  • paymentMethodTypes の指定方法 (SCPPaymentIntentParameters と SCPSetupIntentParameters) を更新しました。これにより、安全性とモバイル SDK 間の一貫性が改善されます。以前は、このパラメーターが文字列の配列で表記されていました ([card_present] など)。現在は SCPPaymentMethodType の列挙値が使用されています。
  • Terminal::cancelPaymentIntent または Terminal::cancelSetupIntent を呼び出した場合に、実行中の支払い処理がキャンセルされるようになりました。これは、PaymentIntent と SetupIntent のキャンセルフローを改善するために行われた変更です。PaymentIntent をキャンセルする前に .collectPaymentMethod などの支払い処理を個別にキャンセルする必要はありません。
  • SCPPaymentIntent.stripeId との一貫性を持たせるために、SCPSetupIntent.stripeId の null 指定が可能になりました。stripeId の値は引き続き有効ですが、コンパイルエラーを回避するために、SCPSetupIntent.stripeId が null になるケースをコードで安全に処理できるかご確認ください。

名称変更および廃止に関する更新

  • BluetoothReaderDelegate は MobileReaderDelegate に名前を変更しました。
  • SCPReaderSoftwareUpdate, で、SCPUpdateTimeEstimate を SCPUpdateDurationEstimate に、estimatedUpdateTime をdurationEstimate に名前を変更しました。これにより、インテントが把握しやすくなります。
  • SCPOfflineDetails で、オフライン中に支払いが作成または確認されたときに利用できる支払いの詳細を表示すようにしました。オフラインの支払いが発生した時間の名前を collectedAt から storedAt に変更し、Terminal Android SDK の命名規則に合わせました。
  • すべての SDK の関数名とエラーコードにおいて、「local mobile 」と 「apple built in 」の名前を「Tap To Pay 」に変更しました。
このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc