Migrate to Stripe iOS SDK 25
Swift と Objective-C のアプリを最新の iOS SDK メジャーバージョンに移行します。 This migration guide helps you update your iOS app to use the latest Stripe SDK. It’s especially helpful if you’re coming from old (pre v21) SDK versions.
要件 The latest SDK requires Xcode 15 or later. The minimum deployment target is iOS 13. v25 Migration instructions can be found here .
v24 PaymentSheet PaymentSheet は、決済手段を縦または横のレイアウトで表示します。このメジャーバージョン以前のバージョンでは、PaymentSheet はデフォルトで横型レイアウトに設定されていました。現在、Stripe はレイアウトを自動で最適化しています。特定のレイアウトを設定したい場合は、PaymentSheet. Configuration. paymentMethodLayout プロパティを . horizontal または . vertical に設定します。
このサンプルコードは、レイアウトを以前のデフォルトである横型に戻します。
var configuration = PaymentSheet . Configuration ( )
configuration . paymentMethodLayout = . horizontal
基礎実装 クレジットカードおよびウォレットでの支払いの回収に使用されていたレガシーの基礎実装はサポートされなくなりました。
アプリが以下のいずれかの API に依存している場合は、基礎実装が使用されます。移行ガイド の手順に従って、Mobile Payment Element に移行してください。
STPCustomerContextSTPPaymentContextSTPPaymentOptionsViewControllerSTPAddCardViewControllerSTPShippingAddressViewControllerv23 モジュール SDK は別々のモジュールに分割されるようになりました。必要なモジュールのみを含めることで、アプリのバンドルサイズを小さくすることができます。
モジュール 機能 圧縮サイズ StripePaymentSheet Stripe の構築済みの支払い UI 。 2.7MB Stripe 以下のすべてのフレームワークに加えて、Issuing と基本的な実装 が含まれます。 2.2MB StripePayments Stripe Payments API のバインディング。 1.1MB StripePaymentsUI Stripe 支払い API、STPPaymentCardTextField 、STPCardFormView、その他の UI エレメントのバインディング。 1.7MB StripeApplePay STPApplePayContext を含む、Apple Pay のサポート 。0.4MB
モジュールのインストール 選択したモジュール (「StripePaymentSheet」など) をアプリのターゲット に追加します。
PaymentSheet PaymentSheet を使用するには、StripePaymentSheet モジュールを明示的にインポートする必要があります。
import StripePaymentSheet
カードフィールド SDK 23 では、STPPaymentCardTextField の . cardParams パラメーターが . paymentMethodParams に置き換えられているため、顧客の郵便番号を簡単に収集できるようになります。
ほとんどの状況で、cardTextField. paymentMethodParams を Stripe API に直接渡すことができるようになりました。
var cardTextField : STPPaymentCardTextField
let paymentIntentParams = STPPaymentIntentParams ( clientSecret : paymentIntentClientSecret )
let cardParams = cardTextField . cardParams
let paymentMethodParams = STPPaymentMethodParams ( card : cardParams , billingDetails : nil , metadata : nil )
paymentIntentParams . paymentMethodParams = paymentMethodParams
var cardTextField : STPPaymentCardTextField
let paymentIntentParams = STPPaymentIntentParams ( clientSecret : paymentIntentClientSecret )
paymentIntentParams . paymentMethodParams = cardTextField . paymentMethodParams
高度なカードフィールドの使用法 STPPaymentMethodCardParams に直接アクセスするには、. paymentMethodParams. card を使用します。
var cardTextField : STPPaymentCardTextField
let cardParams = cardTextField . cardParams
var cardTextField : STPPaymentCardTextField
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
v22 The minimum iOS deployment target was changed to iOS 12 in this version.
v21 The SDK was re-written in Swift, and some manual changes are required.
Cocoapods のユーザーは、Cocoapods 1.10 以降に更新する必要があります。 Stripe クラス Stripe クラスが StripeAPI という名前になりました。
Stripe . setDefaultPublishableKey ( "pk_test_TYooMQauvdEDq54NiTphI7jx"
)
Stripe . additionalEnabledApplePayNetworks = [ . JCB ]
func application ( _ app : UIApplication , open url : URL , options : [ UIApplication . OpenURLOptionsKey : Any ] = [ : ] ) - > Bool {
return Stripe . handleURLCallback ( with : url )
}
StripeAPI . defaultPublishableKey = "pk_test_TYooMQauvdEDq54NiTphI7jx"
StripeAPI . additionalEnabledApplePayNetworks = [ . JCB ]
func application ( _ app : UIApplication , open url : URL , options : [ UIApplication . OpenURLOptionsKey : Any ] = [ : ] ) - > Bool {
return StripeAPI . handleURLCallback ( with : url )
}
プロパティー 一部の setX() 関数が、Swift のプロパティになりました。
Stripe . setDefaultPublishableKey ( "pk_test_TYooMQauvdEDq54NiTphI7jx"
)
StripeAPI . defaultPublishableKey = "pk_test_TYooMQauvdEDq54NiTphI7jx"
STPPaymentConfiguration STPPaymentConfiguration の additionalPaymentOptions 設定が、applePayEnabled と fpxEnabled の 2 つの Bool になりました。
STPPaymentConfiguration . shared . additionalPaymentOptions = [ . fpx ]
STPPaymentConfiguration.shared.applePayEnabled = false
STPPaymentConfiguration.shared.fpxEnabled = true
エラー処理 グローバルの STPError 定数は、STPError クラスになりました。
if ( error . userInfo [ STPCardErrorCodeKey ] == STPInvalidNumber ) {
return "Invalid card number"
}
if ( error . userInfo [ STPError . cardErrorCodeKey ] == STPCardErrorCode . invalidNumber ) {
return "Invalid card number"
}
STPTheme STPTheme. default() が STPTheme. defaultTheme になりました。
STPTheme . default ( ) . primaryForegroundColor = . systemRed
STPTheme . defaultTheme . primaryForegroundColor = . systemRed