Terminal SDK 移行ガイド
Stripe Terminal SDK (バージョン 5.0.0) への移行方法を解説します。
Stripe Terminal iOS SDK および Android SDK が更新され、API と動作への重要な変更がいくつか行われました。その一部については Stripe Terminal SDK のシステムアップグレードが必要になります。Stripe は、SDK 間の一貫性を向上させ、アプリケーションロジックとシステムを効率化するために、定期的にメジャーバージョンの更新を行い、システムの機能や動作に影響を与える変更を加えています。このガイドでは、システムのアップグレードに関わる最新の変更について解説します。
メモ
新しい Stripe Terminal の導入を構築する場合は、導入を設計するページをご参照ください。
バージョン 5.0.0 への移行
Stripe Terminal iOS および Android の SDK バージョン 5.0.0 に関する変更点は、以下のとおりです。
- シンプルな決済統合
- 収集する手順と確定する手順を組み合わせた 1 回のメソッド呼び出しで、決済、セットアップインテント、返金を処理します。
- Swift の最新非同期バリアントと Kotlin Coroutines をサポートし、複雑な非同期フローを簡素化
- iOS では Swift の並行処理 (async/await)、Android では Kotlin のコルーチン。
- 顧客キャンセルはデフォルトで有効
- サポート対象のリーダーでは、顧客は決済、セットアップ、返金、データ収集フロー中にデフォルトで取引をキャンセルできるようになりました。
- モバイルリーダーと Tap to Pay リーダーの自動再接続の可観測性の向上
- モバイルリーダー (Bluetooth および USB) および Tap to Pay リーダーの接続ステータスの状態を増やし、リーダーの自動再接続処理を強化。
- Android の Tap to Pay の Discover カード受け付けサポート 公開プレビュー
- Android の Tap to Pay で Discover カード決済を受け付けます。
- iOS 14.0 から iOS 15.0 へのミニマムサポートプラットフォームバージョンの更新
アプリケーションで現在 5.0.0 より前のバージョンの Terminal iOS SDK を使用している場合は、アップグレードするためにいくつかの変更を行う必要があります。バージョン 4.x から 5.0.0 への変更の詳細なリストについては、SDK 変更ログを参照してください。
iOS 15 以降のミニマムサポートバージョンに関する更新
Stripe は、開発者サポート業務を効率化するために SDK のミニマムサポートバージョンを定期的に更新しています。
現行の Terminal iOS SDK バージョン 4.X は、引き続き iOS 14 以降で動作するデバイスをサポートします。
シンプルな決済統合
統合決済処理への更新
v5 SDK には、収集するステップと確定するステップを 1 つの操作に統合するメソッドが含まれています。既存の collectPaymentMethod メソッドと confirmPaymentIntent メソッドは引き続き機能しますが、よりシンプルな統合には統合メソッドの使用をお勧めします。
processPaymentIntent で決済を処理する
2 ステップの収集と確定を、1 つの processPaymentIntent メソッド呼び出しに置き換えます。
_導入前 _
導入後
processRefund で返金を処理する
collectRefundPaymentMethod メソッドと confirmRefund メソッドは非推奨になりました。代わりに processRefund を使用してください。
_導入前 _
導入後
processSetupIntent を使用してセットアップインテントを処理する
2 ステップの収集と確定を、1 つの processSetupIntent メソッド呼び出しに置き換えます。
_導入前 _
導入後
Swift 非同期バリアントサポート
SDK は Terminal メソッドに非同期バリアントを提供するようになりました。補完ハンドラを入れ子にする代わりに、よりすっきりとした連続的なコードを作成できます。
_導入前 _
let cancelable = Terminal.shared.collectPaymentMethod(paymentIntent, collectConfig: collectConfig) { collectedPaymentIntent, collectError in guard let collectedPaymentIntent = collectedPaymentIntent else { // Payment method collection failed return } Terminal.shared.confirmPaymentIntent(collectedPaymentIntent) { confirmedPaymentIntent, confirmError in // Handle confirmation } }
導入後
let collectTask = Task { do { let collectedIntent = try await Terminal.shared.collectPaymentMethod(paymentIntent, collectConfig: collectConfig) let confirmedIntent = try await Terminal.shared.confirmPaymentIntent(collectedIntent) // Payment successful } catch { // Handle error } } // Use collectTask.cancel() to cancel the operation when needed
プラットフォームと初期化
Terminal 初期化の更新
setTokenProvider メソッドは削除されました。Terminal. シングルトンにアクセスする前に、静的な Terminal. メソッドを使用して SDK を初期化する必要があります。
_導入前 _
導入後
リーダーの検出と接続
DiscoveryConfiguration 初期化の更新
DiscoveryConfiguration オブジェクトを init または new で直接初期化できなくなりました。関連するビルダークラスを使用する必要があります。
_導入前 _
導入後
再接続ステータス変更の処理
新しい . 値が ConnectionStatus 列挙型に追加されました。再接続中は、再接続が成功するまで Terminal. は nil になります。
_導入前 _
導入後
easyConnect による効率的な接続
iOS SDK 5.1 以降を使用したスマートリーダーと Tap to Pay の実装では、検出と接続を 1 つのメソッド呼び出しにまとめた Terminal. を使用できるようになりました。
_導入前 _
導入後
インターネットリーダーの検出フィルタリング
インターネットリーダーの検出で、リーダー ID またはシリアル番号によるフィルタリングがサポートされるようになりました。特定のリーダーを検出するには、InternetDiscoveryConfigurationBuilder の discoveryFilter プロパティを設定します。
_導入前 _
導入後
決済の受け付けとデータ収集
顧客キャンセルがデフォルトで有効になりました
サポート対象のリーダーでは、顧客が取引をキャンセルする機能が デフォルトで有効 になりました。customerCancellation プロパティは Bool から新しい SCPCustomerCancellation 列挙型に変更されました。
_導入前 _
導入後
Interac 返金パラメーターの更新
PaymentIntent ID を使用して Interac 返金の SCPRefundParameters を作成する場合は、PaymentIntent の clientSecret も渡す必要があります。clientSecret を必要としない請求 ID を引き続き使用することもできます。
_導入前 _
導入後