Confirmation Tokens に移行
PaymentMethod の代わりに ConfirmationToken を使用して決済を処理する
このガイドでは、モバイル統合でレガシーの PaymentMethod から ConfirmationToken に移行する方法を説明します。
PaymentMethod の代わりに ConfirmationToken オブジェクトを使用して、以下を実行できます。
- サーバー側のコードをシンプルに: インテントを確定するときに、
mandate_を手動で作成したり、data return_とurl shippingを渡したりする必要はありません。 - データの処理: 配送先情報とその他の決済コンテキストが自動的に含まれます。
 
| 機能 | PaymentMethod (レガシー) | ConfirmationToken | 
|---|---|---|
| 支払いの確定 | ||
| 将来の使用を設定する | 手動 | 自動 | 
| 配送先情報 | 手動 | 自動 | 
| 同意書データ | 手動 | 自動 | 
| 戻り URL | 手動 | 自動 | 
| サーバー側のセキュリティコードの再収集 | 
はじめに
このガイドは、レガシーの PaymentMethod を使用した既存のモバイル統合があることを前提としています。新しい統合を構築する場合は、デフォルトで ConfirmationTokens を使用する 決済の受け付け ガイドに従ってください。
クライアントコードを更新するクライアント側
決済の詳細にアクセスして使用するには、confirmationToken を受信するコールバックを渡します。
let intentConfig = PaymentSheet.IntentConfiguration( mode: .payment(amount: 1099, currency: "USD") ) { paymentMethod, shouldSavePaymentMethod, intentCreationCallback in // Make a request to your server, passing paymentMethod.stripeId ) { confirmationToken, intentCreationCallback in // Make a request to your server to create a PaymentIntent and return its client secret. // Optionally pass confirmationToken.stripeId if doing server-side confirmation. let myServerResponse: Result<String, Error> = ... switch myServerResponse { case .success(let clientSecret): intentCreationCallback(.success(clientSecret)) case .failure(let error): intentCreationCallback(.failure(error)) } }
サーバーコードを更新するサーバー側
支払いを受け付けるときに、PaymentIntent または SetupIntent を確認する場所を選択できます。
クライアントサイドでの確認: サーバーが未確認の Intent を作成し、その
client_をアプリに返します。その後、モバイル SDK が Intent を直接 Stripe に確認します。secret サーバーサイドでの確認: アプリが ConfirmationToken をサーバーに送信すると、サーバー側で
confirm: trueを設定して、Intent の作成と確認を 1 回の API 呼び出しで行います。確認処理はすべてサーバー上で行われ、Stripe API を呼び出す際に支払いフローをより細かく制御できます。
確定時に PaymentIntent または SetupIntent に直接指定されるパラメーター (shipping など) は、ConfirmationToken の対応するプロパティを上書きします。
注
以前に PaymentMethod オブジェクトを検査していた場合、ConfirmationToken の paymentMethodPreview プロパティを使用して決済手段の詳細にアクセスできるようになりました。