Stripe iOS SDK 23 に移行する
Stripe iOS SDK が Swift モジュールのセットになりました。これによりアプリのバンドルのサイズが小さくなり、Swift API のサポートが向上しています。
この必須の移行により公開インターフェイスに変更されます。大半のコードは Xcode によって更新が自動的に提案されますが、お客様による変更もいくつか必要です。
要件
SDK で Xcode 13.2.1 以降が必要になりました。最小実装対象は iOS 13 です。
PaymentSheet
PaymentSheet を使用するには、StripePaymentSheet
モジュールを明示的にインポートする必要があります。
import Stripe
import StripePaymentSheet
モジュール
SDK は別々のモジュールに分割されるようになりました。必要なモジュールのみを含めることで、アプリのバンドルサイズを小さくすることができます。
モジュール | 機能 | 圧縮サイズ |
---|---|---|
StripePaymentSheet | Stripe の構築済みの支払い UI。 | 2.7MB |
Stripe | 以下のすべてのフレームワークに加えて、Issuing と基本的な実装が含まれます。 | 2.2MB |
StripePayments | Stripe Payments API のバインディング。 | 1.1MB |
StripePaymentsUI | Stripe Payments API、STPPaymentCardTextField、STPCardFormView、その他の UI エレメントのバインディング。 | 1.7MB |
StripeApplePay | STPApplePayContext を含む、Apple Pay のサポート。 | 0.4MB |
モジュールのインストール
選択したモジュール (「StripePaymentSheet」など) をアプリのターゲットに追加します。
カードフィールド
SDK 23 では、STPPaymentCardTextField
の .cardParams
パラメーターが .paymentMethodParams
に置き換えられているため、顧客の郵便番号の収集が簡単になりました。
ほとんどの状況で、cardTextField.paymentMethodParams
を Stripe API に直接渡すことができるようになりました。
var cardTextField: STPPaymentCardTextField // Collect card details let paymentIntentParams = STPPaymentIntentParams(clientSecret: paymentIntentClientSecret) let cardParams = cardTextField.cardParams let paymentMethodParams = STPPaymentMethodParams(card: cardParams, billingDetails: nil, metadata: nil) paymentIntentParams.paymentMethodParams = paymentMethodParams
var cardTextField: STPPaymentCardTextField // Collect card details let paymentIntentParams = STPPaymentIntentParams(clientSecret: paymentIntentClientSecret) paymentIntentParams.paymentMethodParams = cardTextField.paymentMethodParams
高度なカードフィールドの使用法
STPPaymentMethodCardParams に直接アクセスするには、.paymentMethodParams.card
を使用します。
var cardTextField: STPPaymentCardTextField let cardParams = cardTextField.cardParams
var cardTextField: STPPaymentCardTextField // STPPaymentCardTextField will never return a nil .card let cardParams = cardTextField.paymentMethodParams.card!
cardTextField.paymentMethodParams
はコピーを返します。cardTextField.paymentMethodParams.card
は直接設定しないでください。カード情報を設定する必要がある場合は、cardTextField.paymentMethodParams
を STPPaymentMethodParams
の新しいインスタンスに設定してください。
var cardTextField: STPPaymentCardTextField cardTextField.cardParams = myCardParams
var cardTextField: STPPaymentCardTextField let paymentMethodParams = STPPaymentMethodParams(card: myCardParams, billingDetails: nil, metadata: nil) cardTextField.paymentMethodParams = paymentMethodParams