iOS でサブスクリプションを管理非公開プレビュー
BillingSDK for iOS で継続支払いを受け付け、エンタイトルメントを管理します。
BillingSDK for iOSを使用して、iOS アプリで直接、サブスクリプションの決済を受け付け、顧客にサブスクリプションを管理させ、エンタイトルメントを管理します。この SDK は、購入ボタンを表示し、カスタマーポータルを表示し、プレミアム機能へのアクセスを制御するためのエンタイトルメントをチェックするための UI コンポーネントを提供します。
はじめに
BillingSDK for iOS を使用するには、以下のものが必要です。
- 顧客セッションを作成するバックエンドサーバー
- プライベートプレビューにアクセスできる Stripe アカウント
- iOS 15.0 以降および macOS 12.0 以降
- Xcode 15.0 以降
作成する内容
このガイドでは以下の方法を説明します。
- 顧客セッションを作成するサーバーエンドポイントの設定
- BillingSDK for iOS のインストールと設定
- サブスクリプション購入のための購入ボタンの表示
- プレミアム機能へのアクセスを制御するためのエンタイトルメントの確認
- サブスクリプション管理のためのカスタマーポータルの表示
- エラー処理とセッション状態の管理
完全なサンプルアプリは BillingSDK for iOS リポジトリにあります。
認証済みユーザー用に 顧客セッションを生成するサーバーエンドポイントを作成します。これらのセッションは、Stripe の Billing API で iOS アプリを安全に認証します。
顧客セッションエンドポイントを作成
エンドポイントは次のことを行う必要があります。
- ユーザーが認証されていることを確認します。
- ユーザーの Stripe 顧客 IDを作成または取得します。
- 必要なコンポーネントを有効にして顧客セッションを作成します。
- セッションの詳細をアプリに返します。
以下に実装例を示します。
応答形式
認証に成功した場合、エンドポイントはこれらのフィールドを返す必要があります。
フィールド | タイプ | 説明 |
---|---|---|
clientSecret | 文字列 | SDK を認証するために使用される顧客セッションシークレット |
expiresAt | 数値 | 有効期限タイムスタンプ(エポックからの秒数) |
customer | 文字列 | Stripe 顧客 ID |
認証に失敗した場合、HTTP 401 を返し、SDK の未認証状態をトリガーします。
BillingSDK for iOS は、サブスクリプション管理と機能アクセスコントロールのためのネイティブ iOS エクスペリエンスを提供します。
SDK をプロジェクトに追加します。
プライベートプレビュー中に、BillingSDK パッケージをインストールします。
- Xcode でプロジェクトを開く
- ファイル → パッケージの依存関係の追加 を選択します。
- Search or Enter Package URL フィールドに
https://github.
と入力します。com/stripe-samples/billing-ios-sdk BillingSDK
を選択し、Add Package をクリックします。
SDK の設定
BillingSDK のセットアップと認証を処理するために、共有クラスで SDK を初期化します。
注
SDK は内部的にスレッドセーフを処理するため、どのスレッドからでも安全に SDK のメソッドを呼び出すことができます。
顧客セッションプロバイダーの設定
Billing マネージャーに認証方法を追加します。
注
BillingSDK は Stripe と認証する必要がある場合、自動的にセッションプロバイダーを呼び出します。プロバイダーが nil
を返すと、SDK は認証されていない状態になります。
開発中は、サンドボックス API キーとサンドボックス顧客 ID を使用して、実際の決済を作成してください。
シナリオをテストする
これらの一般的なシナリオをテストします。
シナリオ | ステップ |
---|---|
新規サブスクリプションの購入 | 新規ユーザーに購入ボタンを表示 |
サブスクリプションの管理 | プラン変更にはカスタマーポータルを使用してください。 |
エンタイトルメントの確認 | hasEntitlement でプレミアム機能をチェックします。 |
エラー処理 | 無効なキーまたは有効期限切れのセッションでテスト |
サインアウトフロー | billing. でキャッシュされたデータがクリアされることを確認します。 |