# Basic Integration から Payment Sheet への移行 レガシーのモバイル SDK 実装を SDK から削除される前にアップグレードします。 2024 年 11 月 4 日より、Stripe の [iOS SDK](https://github.com/stripe/stripe-ios)、[Android SDK](https://github.com/stripe/stripe-android)、[React Native SDK](https://github.com/stripe/stripe-react-native) では、クレジットカードとウォレットの支払いを回収するためのレガシーの基本的な実装はサポートされなくなります。 - 2024年11月4日以降に発行されたSDKバージョンを使用するには、アプリ内の Basic Integration コード参照を削除し、Payment Sheet にアップグレードする必要があります。 - 旧バージョンの SDK でも決済を処理できますが、重要なセキュリティの拡張機能や新機能を利用できないリスクがあります。 Payment Sheetにアップグレードすると、以下のサービスをご利用いただけます: - Stripe のスピーディーな決済である [Link](https://docs.stripe.com/payments/link/mobile-payment-element-link.md) を含む 100 種類以上のグローバルな決済手段 - 買い手が将来の購入に備えて保存した決済手段を表示する機能 - [Appearance API](https://docs.stripe.com/elements/appearance-api/mobile.md?platform=ios)。アプリに合わせてデザインをカスタマイズできます。 ![Basic Integration から Payment Sheet に移行した場合のメリット例](https://b.stripecdn.com/docs-statics-srv/assets/mobile-bi-migration-to-mpe.df130554a0f82a3a3c84a6602944f823.png) iOS の Basic Integrationに含まれるもの: - `STPCustomerContext` - `STPPaymentContext` - `STPPaymentOptionsViewController` - `STPAddCardViewController` - `STPShippingAddressViewController` Android の Basic Integration に含まれるもの: - `CustomerSession` - `PaymentSession` - `PaymentMethodsActivity` - `AddPaymentMethodActivity` - `PaymentFlowActivity` ## Payment Sheet への移行 基本的な実装は通常、次の 2 つのいずれかの方法で使用されます。 1. **決済ページ**: ユーザーはクレジットカードを入力し、アプリのボタンをクリックして購入を完了します。 1. **ウォレット**: ユーザーはアプリにクレジットカードを追加し、そのクレジットカードを使用して後から別のフローで支払いを行います。 決済ページまたはウォレットの中から、ユースケースに一致するタブを以下から選択します。 #### 決済ページ 以下の導入ガイドを参考に、アプリの決済ページに Payment Sheet を実装してください: - [iOS 実装](https://docs.stripe.com/payments/accept-a-payment-deferred.md?platform=ios&type=payment&integration=paymentsheet-flowcontroller) - [Android 実装](https://docs.stripe.com/payments/accept-a-payment-deferred.md?platform=android&type=payment&integration=paymentsheet-flowcontroller) 上記のリンクにある導入ガイドには、デフォルトの Payment Sheet [導入ガイド](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=mobile&platform=ios)といくつかの重要な点で違いがあります。 ### Flow Controller Payment Sheetには、「Flow Controller」 (SDKから`PaymentSheet.FlowController` としてインポート)と呼ばれるバリアントがあります。Basic Integration と同様に、Flow Controller を使用すると、シートで支払いの詳細を収集し、ユーザーが決済の最終ボタンをタップしたときに支払いを処理することができます。 ### インテントの作成時間 Basic Integration から Payment Sheet に移行する場合は、`PaymentSheet.IntentConfiguration` オブジェクトを `PaymentSheet` に提供して、Payment Sheet をレンダリングした後にインテントを作成します。`PaymentSheet.IntentConfiguration` オブジェクトの `mode` プロパティを `payment` に設定し、取引の金額と通貨を指定します。 ### 将来使用するための設定 基本的な実装では、ユーザーは、モバイルアプリケーションでアカウントにカードを追加できます。`PaymentSheet.FlowController` で同じ動作を得るには、`PaymentSheet.IntentConfiguration` オブジェクトの `setupFutureUsage` パラメーターを `onSession` に設定します。 #### ウォレット 以下の導入ガイドを使用して、アプリにウォレットコンテキストのPayment Sheetを実装してください: - [iOS 実装](https://docs.stripe.com/payments/accept-a-payment-deferred.md?platform=ios&type=setup&integration=paymentsheet) - [Android 実装](https://docs.stripe.com/payments/accept-a-payment-deferred.md?platform=android&type=setup&integration=paymentsheet) 上記のリンクにある導入ガイドには、デフォルトの Payment Sheet [導入ガイド](https://docs.stripe.com/payments/accept-a-payment.md?payment-ui=mobile&platform=ios)といくつかの重要な点で違いがあります。 ### インテントの作成時間 Basic Integration から Payment Sheet に移行する場合は、`PaymentSheet.IntentConfiguration` オブジェクトを`PaymentSheet` に提供して、Payment Sheet をレンダリングした後にインテントを作成します。`PaymentSheet.IntentConfiguration` オブジェクトの`mode` プロパティを「`setup`」に設定し、取引金額と通貨を指定します。 ### 設定モード Payment Sheetはセットアップモードで、クレジットカードが自動的に保存されるように設定されており、Basic Integrationの動作と一致しています。 ## その他のレガシーの依存関係を確認する Payment Sheet にアップグレードするには、モバイル導入内の他の依存関係を更新する必要があります。以下のセクションをレビューして、移行が包括的であることを確認してください。 ### Charges API から移行する トークンを使用して Charge API をまだ導入してしている場合は、Intents APIに移行する必要があります。リンク先の Payment Sheet 導入ガイドには、Intents の使用方法の詳細が記載されています。また、[Payment Intents API への移行](https://docs.stripe.com/payments/payment-intents/migration.md)でも詳細を確認することもできます。 ### 設定を変換する Basic Integrationでは、導入のカスタマイズにConfigurationオブジェクトを使用します (iOSの場合は`STPPaymentConfiguration`、Androidの場合は`PaymentSessionConfig`)。Basic Integration の設定を`PaymentSheet.Configuration` に変換し、Payment Sheet をカスタマイズします。