コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けリソース
API & SDKヘルプ
概要
Billing
概要Billing API について
サブスクリプション
    概要
    サブスクリプションの仕組み
    始める
    クイックスタート
    連携の計画を立てる
    連携機能の構築
    ユースケース
    サブスクリプションについて
    請求モードを有効にする
    サブスクリプション・イベントの設定
    エンタイトルメント
    サブスクリプションの請求書
    サブスクリプションのスケジュール
    継続的な料金体系モデル
    強力な顧客認証 (SCA)
    サブスクリプションを設定する
    請求回収方法の設定
    料金表を埋め込む
    請求サイクルの設定
    サブスクリプションを管理
    サブスクリプションを Stripe に移行する
    製品またはサブスクリプション数量の設定
    複数のサブスクリプション期間
    サブスクリプションの遡及適用
    トライアル期間を設定
    後払い支払いによるサブスクリプションの処理
    クーポンを適用
    サブスクリプションの修正
    サブスクリプションの決済方法の管理
    アナリティクス
    iOS でサブスクリプションを管理する
Invoicing
従量課金
見積もり
顧客管理
Billing と他のプロダクトの連携
売上回収
オートメーション
実装内容をテストする
税金
概要
Stripe tax を使用
法規制の遵守・対応管理
レポート機能
概要
レポートの選択
レポートを設定
複数のアカウントのレポート
Reports API
収益認識
データ
概要
ビジネスデータのクエリ
Sigma
Data Pipeline
外部データをインポート
アメリカ
日本語
ホーム売上Subscriptions

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 アプリを安全に認証します。

顧客セッションエンドポイントを作成

エンドポイントは次のことを行う必要があります。

  1. ユーザーが認証されていることを確認します。
  2. ユーザーの Stripe 顧客 IDを作成または取得します。
  3. 必要なコンポーネントを有効にして顧客セッションを作成します。
  4. セッションの詳細をアプリに返します。

以下に実装例を示します。

応答形式

認証に成功した場合、エンドポイントはこれらのフィールドを返す必要があります。

フィールドタイプ説明
clientSecret文字列SDK を認証するために使用される顧客セッションシークレット
expiresAt数値有効期限タイムスタンプ(エポックからの秒数)
customer文字列Stripe 顧客 ID

認証に失敗した場合、HTTP 401 を返し、SDK の未認証状態をトリガーします。

SDK のインストールと設定
iOS

BillingSDK for iOS は、サブスクリプション管理と機能アクセスコントロールのためのネイティブ iOS エクスペリエンスを提供します。

SDK をプロジェクトに追加します。

プライベートプレビュー中に、BillingSDK パッケージをインストールします。

  1. Xcode でプロジェクトを開く
  2. ファイル → パッケージの依存関係の追加 を選択します。
  3. Search or Enter Package URL フィールドに https://github.com/stripe-samples/billing-ios-sdkと入力します。
  4. BillingSDKを選択し、Add Package をクリックします。

SDK の設定

BillingSDK のセットアップと認証を処理するために、共有クラスで SDK を初期化します。

注

SDK は内部的にスレッドセーフを処理するため、どのスレッドからでも安全に SDK のメソッドを呼び出すことができます。

顧客セッションプロバイダーの設定

Billing マネージャーに認証方法を追加します。

注

BillingSDK は Stripe と認証する必要がある場合、自動的にセッションプロバイダーを呼び出します。プロバイダーが nilを返すと、SDK は認証されていない状態になります。

サブスクリプション購入ボタンの表示
iOS

購入ボタンは、顧客にサブスクリプションを購入させるための組み込み済み UI 要素を提供します。各ボタンは、Stripe アカウント内の特定の商品と価格にリンクされています。

ダッシュボードに購入ボタンを作成

このガイドに従って、ダッシュボードに購入ボタンを作成してください。エンタイトルメントチェック機能を使用する予定の場合、作成した商品に エンタイトルメントが添付されていることを確認してください。

購入ボタンの表示

注

ユーザーが認証していない場合でも、購入ボタンは機能します。SDK は必要に応じて、購入時に新しい Stripe 顧客を作成します。

エンタイトルメントの確認と検証
iOS

エンタイトルメントを使用すると、顧客のアクティブなサブスクリプションに基づいてプレミアム機能へのアクセスを制御できます。

特定のエンタイトルメントをチェック

ユーザーが特定の機能にアクセスできるかどうかを検証します。

すべての有効なエンタイトルメントを取得

顧客がアクセスできるすべてのエンタイトルメントを取得します。

エンタイトルメントの変更をリッスン

エンタイトルメントが変更されたときに通知されるリスナーを設定します。

注

セッションが存在しない場合、getActiveEntitlements()は空の配列を返します。

カスタマーポータルの表示
iOS

カスタマーポータルでは、顧客はサブスクリプション、決済手段、請求を管理できます。

カスタマーポータルの表示

ユーザーがサブスクリプションを管理する必要がある場合にポータルを表示します。

警告

カスタマーポータルには、アクティブな認証済みセッションが必要です。ユーザーがログインしていない場合、SDK は.unauthenticated エラーをスローします。

外部リダイレクション(オプション)

ブラウザでポータルを開くこともできます。

セッション管理
iOS

セッション管理

ユーザーがサインアウトしたときに SDK をリセットし、セッションデータとキャッシュをクリアします。

実装内容をテストする

開発中は、サンドボックス API キーとサンドボックス顧客 ID を使用して、実際の決済を作成してください。

シナリオをテストする

これらの一般的なシナリオをテストします。

シナリオステップ
新規サブスクリプションの購入新規ユーザーに購入ボタンを表示
サブスクリプションの管理プラン変更にはカスタマーポータルを使用してください。
エンタイトルメントの確認hasEntitlementでプレミアム機能をチェックします。
エラー処理無効なキーまたは有効期限切れのセッションでテスト
サインアウトフローbilling.reset()でキャッシュされたデータがクリアされることを確認します。

参照情報

  • エンタイトルメント
  • カスタマーポータルを設定します
  • サブスクリプションの仕組み
このページはお役に立ちましたか。
はいいいえ
  • お困りのことがございましたら 、サポートにお問い合わせください。
  • 変更ログをご覧ください。
  • ご不明な点がございましたら、お問い合わせください。
  • LLM ですか?llms.txt を読んでください。
  • Powered by Markdoc