Terminal SDK V3 移行ガイド
Stripe Terminal SDK (3.0.0) への移行方法を解説します。
Stripe Terminal iOS SDK および Android SDK が更新され、API と動作への重要な変更がいくつか行われました。その一部については Stripe Terminal SDK のシステムアップグレードが必要になります。Stripe は、SDK 間の一貫性を向上させ、アプリケーションロジックとシステムを効率化するために、定期的にメジャーバージョンの更新を行い、システムの機能や動作に影響を与える変更を加えています。このガイドでは、システムのアップグレードに関わる最新の変更について解説します。
注
新しい Stripe Terminal の導入を構築する場合は、導入を設計するページをご参照ください。
バージョン 3.0.0 に移行する
Stripe Terminal iOS および Android の SDK 3.0.0 に関する変更点をいくつかご紹介します。
- オフライン決済処理のサポートPreview
- オフラインモード機能は現在、非公開ベータ版でのみご利用いただけます。アクセスをリクエストするには、stripe-terminal-betas@stripe.com までお問い合わせください。アカウントのバックエンドで変更を有効にした後、更新された設定を有効にするには、SDK でリーダーを切断して再接続する必要があります。
- iOS と Android でサポートされる最小プラットフォームバージョンの更新
- 非推奨の機能とプロパティの削除
アプリケーションが 3.0.0 より前のバージョンの Terminal iOS SDK を使用している場合、アップグレードしてカードの対面支払いをグローバルに受け付けるために、いくつかの変更が必要です。バージョン 2.23.1 から 3.0.0 への変更点の詳細なリストについては、SDK 変更ログをご覧ください。
サポートされる最小バージョンを iOS 13 以降に更新
Stripe は、開発者に最適な体験を提供することを重視するため、SDK の最小サポートバージョンを定期的に更新しています。
Terminal iOS SDK の既存の 2.X バージョンでは、引き続き iOS 11 以降を実行するデバイスをサポートします。
DiscoveryConfiguration の使用方法を特定の DiscoveryConfiguration の実装向けに更新
さまざまな検出方法向けの設定に対応するため、SCPDiscoveryConfiguration は異なる複数のタイプで実装されるプロトコルになりました。DiscoveryMethod を提供する代わりに、特定のタイプのリーダーを検索するための個別のクラスから選択できるようになりました。
Configuration クラス | 使用状況 |
---|---|
SCPBluetoothScanDiscoveryConfiguration | この iOS デバイスの近くにある Bluetooth 対応リーダー |
SCPBluetoothProximityDiscoveryConfiguration | この iOS デバイスの近くにある Bluetooth 対応リーダーのサブセット |
SCPInternetDiscoveryConfiguration | このアカウントに登録されたインターネット接続型リーダー |
SCPLocalMobileDiscoveryConfiguration | この iOS デバイスの NFC リーダーを使用するタッチ決済 |
提供されたビルダークラスを使用して、目的の検出方法に適した検出設定を作成し、それを discoverReaders
に提供してください。ビルダーは、それぞれの設定でサポートされるプロパティのセッターを表示します。
discoverReaders と connectReader の使用方法の更新
discoverReaders
を呼び出すと、その他すべてのキャンセル方法と同様に、コードSCPErrorCanceled
のエラーで完了ブロックが呼び出されるようになりました。discoverReaders
は、connectReader
が呼び出されるとすぐに正しく完了されるようになりました。connectReader
が失敗した場合、リーダーの検出を再開するために、実装はdiscoverReaders
を新たに呼び出す必要があります。connectReader
を機能させるために、discoverReaders
を実行する必要はなくなりました。以前検出されたリーダーインスタンスを使用してconnectReader
を呼び出すことも、discoverReaders
を再開することなく接続を再試行することもできます。
ReconnectionDelegate の実装を更新
SCPReconnectionDelegate
は Terminal インスタンスの代わりに再接続されているリーダーのインスタンスを提供するようになりました。このデリゲートを以前実装している場合、メソッド名の terminal
を reader
に置き換える必要があります。
ビルダーを使用するための、パラメーターと Configuration クラスの使用方法の更新
SCPCollectConfiguration
や SCPPaymentIntentParameters
などの入力クラスが変更不可能になり、それらを作成する関連ビルダーが含まれるようになりました。すべてのビルダーには、入力を検証し、構築するクラスを作成するビルドメソッドが含まれます。
- Swift では、
build()
がスローされ、エラーを確認する必要があります。 - Objective-C では、
NSError **
out パラメーターを指定して、該当する場合にエラーを受け取ります。
SCPErrorBusy への依存を削除する
SCPErrorBusy
は削除されました。SDK 3.0.0 以降では、別のメソッドがまだ進行中の間に Terminal メソッドを呼び出すと、新しい呼び出しがキューに追加されるようになりました。コマンドは、前のコマンドがすべて完了した後で実行されます。以前 SCPErrorBusy
を防ぐために状態を追跡していた場合、または SCPErrorBusy
を解消するために自分で作成したコマンドをキューに追加していた場合は、コマンドキューを使用してコードをシンプルにできます。アプリケーションで SCPErrorBusy
を使用してコマンドが実行中であるかを把握していた場合は、コードを参照し、キューに入れるコマンドが多くなりすぎて問題が発生していなかったかを確認してください。
オフライン決済のサポートを確認する
オフライン決済では SCPPaymentIntent.
は null になります。構築済みのシステムがオンライン決済のみに対応している場合、stripeId
は常に表示されるため、ID が存在していることの確認以外に必要な変更はありません。オフライン時に支払いを処理する方法について、詳細はオフラインでカード支払いを回収するをご覧ください。
プロセス呼び出しを更新して確定する
SCPTerminal.
は SCPTerminal.
に名前が変わり、SCPTerminal.
は SCPTerminal.
に名前が変わりました。これらのメソッドのパラメーターに変更はありませんが、エラータイプはそれぞれ SCPConfirmPaymentIntentError
と SCPConfirmRefundError
に変更されています。
readReusableCard の使用を SetupIntents の使用に更新
SCPTerminal.
is removed. SetupIntents are the recommended path for saving payment methods without charging. SetupIntents follow a similar pattern to PaymentIntents where you create, collect, and then confirm the SetupIntent in the SDK. See Save payment details for online re-use for more details.