ユーザーがサブスクリプションプランの変更を許可する方法

お知らせ
プロジェクトでユーザーがプランを変更できるようにする場合、決済インターフェースの正しい動作を設定する必要があります。これを行うには、カスタマーサクセスマネージャーに連絡するか、csm@xsolla.comに電子メールを送信してください。
ユーザーが現在または次の期間でサブスクリプションプランを変更できるようにしたり、1日に複数回プランを変更したりできるようにすることもできます。

どのように動作するか

  • 新しいプランを選択すると、現在のサブスクリプションの未使用期間についてユーザーの残高に返金が行われます。
  • 新しいサブスクリプションプランの支払いは、すべてユーザーの残高から行われます。残高が不足している場合は、プロジェクトで許可されている決済方法のいずれかによって追加で支払われます。
  • プラン変更の場合、次回請求期間からプラン変更するプロジェクトであっても、入金確認後すぐに引き落とされます。
  • 新しいプランの通貨が現在のプランの通貨と異なる場合、新しいプランの購入は通貨換算で行われます。

以下の場合は、プラン変更ができません:
  • ユーザーは、現在のプランから変更されるプランでアクティブなサブスクリプションをすでに持っています
  • ユーザーが変更したいサブスクリプションがアクティブ状態でない場合
  • ユーザーが変更を希望するサブスクリプションプランがライフタイムプランタイプである場合:このようなサブスクリプションプランは、指定された返金期間内にのみキャンセルすることができます
お知らせ
プロジェクトでプラングループが構成されている場合、プラン変更はグループ内でのみ可能です。グループの仕組みの詳細については、サブスクリプションベースの製品とプラングループの設定方法に関する説明をご覧ください。

入手方法

  1. アドミンページであなたのプロジェクトを開きます。
  2. サイドバーのサブスクリプションをクリックし、設定セクションに移動します。
  3. プラン変更」セクションで、「別のプランを選択する能力」のトグルを「オン」に設定します。
  4. プランの変更は、デフォルトで次の期間から許可されます。今期中にプランの変更を許可するには、「今すぐ」を選択します。このオプションを選択した場合、入金確認後すぐにプランが変更されます。
  5. プランを1日に複数回変更できるようにするには、「同じ日に複数回で別のプランを選択できる機能」を「オン」に設定します。
  6. 決済インターフェースを開くときは、次を使用します:

サーバー側のトークンを作成するAPIコールを介して決済UIを開く

  1. 以下をメソッドに渡して、決済UIを開くためのトークンを取得します:
    • purchase.subscription.operationパラメータでのchange_plan値。
    • purchase.subscription.plan_idパラメータでの新しいプランのID。
    • サブスクリプションベースの製品を使用している場合は、purchase.subscription.product_idパラメータのサブスクリプションベースの製品ID。取得するには、カスタマーサクセスマネージャーまでお問い合わせるか、csm@xsolla.comに電子メールを送信してください。
  2. 以下のいずれかの方法で決済インターフェイスを開きます:

クライアントサイドのAPIコールを使って、定期購入管理ページで決済UIを開く

エクソーラログインがプロジェクトで構成されている場合、クライアントサイドのAPIコールを使って、決済インターフェースを開くためのリンクを取得することができます。レスポンスで返されるリンクにより、サブスクリプション管理ページで決済UIを開くことができ、ユーザーはアクティブなサブスクリプションを選択したり、変更したりすることができます。

これを行うには、アプリケーションのクライアント側で、HTTP POSTリクエストを使用して決済インターフェイスへのリンクの受信を実装します:https://subscriptions.xsolla.com​/api/user/v1/projects/{project_id}/subscriptions/manage。 リクエストにはAuthorization: Bearer <client_user_jwt>ヘッダーが含まれている必要があります。<client_user_jwt>はユーザーのJSONウェブトークン(JWT)であり、Base64 標準に従ってエンコードされた一意のBase64エンコードトークンです。トークンと取得するには:

  • アプリケーションでログインとパスワードによる認証を行う場合は、Register new userおよびAuth by usernameとパスワードのAPIコールを使用してください。
  • ソーシャルネットワークを介した認証を利用する場合は、Auth via social network APIコールをご利用ください。
プロジェクトIDをパスパラメータprojectIdとして指定します。このパラメータは、アドミンページでプロジェクト名の隣に表示されます。 クエリーパラメータにcountryを指定します — ISO 3166-1 alpha-2規格に従ったユーザーの国名の二文字表記です。ロケールと通貨の選択に影響します。このパラメータを渡さなかった場合、国はユーザーのIPアドレスによって決定されます。

必要に応じて、カスタマイズのための追加パラメータを渡します。

リクエストボディパラメータ:

パラメータ種類説明文
plan_external_id
string必須です。サブスクリプションプランのexternal IDです。アドミンページ > サブスクリプション > サブスクリプションプランセクションで見つけることができます。
settings
objectカスタムプロジェクト設定(オブジェクト)。
settings.ui
objectインタフェース設定(オブジェクト)。
settings.ui.size
string決済UIのサイズ。以下を指定できます:
  • small:決済UIの最小サイズ。ウィンドウサイズが厳しく制限されている場合にこの値を使用します(寸法:620 x 630 px)
  • medium:推奨サイズ。この値を使用して、ライトボックスに決済UIを表示します(寸法:740 x 760)
  • large:決済UIを新しいウィンドウまたはタブに表示するのに最適なサイズ(寸法:820 x 840)
settings.ui.theme
string決済インターフェースのテーマ。defaultdefault_darkまたはカスタムテーマIDに指定できます。
settings.ui.version
stringデバイスの種類。desktop(既定)またはmobileに指定できます。
settings.ui.desktop
objectデスクトップバージョン(オブジェクト)のインターフェース設定。
settings.ui.desktop.header
objectヘッダー設定(オブジェクト)。
settings.ui.desktop.header.close_button
booleanデスクトップ版ペイステーションに閉じるボタンを表示する設定。このボタンはペイステーションを閉じて、settings.return_urlパラメータで指定されたURLにユーザーをリダイレクトします。デフォルトはfalseです。
settings.ui.desktop.header.is_visible
boolean決済インターフェースにヘッダーを表示するかどうかを示します。
settings.ui.desktop.header.is_visible.type
stringヘッダーの外観。compact(この場合、ゲーム名とユーザーIDはヘッダーに表示されません)またはnormalにすることができます。
booleantrueの場合、ヘッダーにはあなたのロゴが表示されます(最初にあなたのカスタマーサクセスマネージャーに画像を提供してください)。
settings.ui.desktop.header.visible_name
booleanヘッダーにプロジェクト名を表示するかどうかを示します。
settings.ui.desktop.header.type
stringヘッダーを表示する方法。compact(プロジェクト名とユーザーIDを隠す)またはnormal(既定)に指定できます。
settings.ui.mobile.mode
stringユーザーは、保存された決済方法を使用してのみ決済を行うことができます。saved_accountsに指定できます。
booleanモバイル版の決済インターフェースでフッターを非表示にするかどうかを示します。
settings.ui.mobile.header.close_button
booleanモバイル版ペイステーションに閉じるボタンを表示する設定。このボタンはペイステーションを閉じて、settings.return_urlパラメータで指定されたURLにユーザーをリダイレクトします。デフォルトはfalseです。
settings.ui.mode
stringペイステーションのインターフェースモード。user_accountのみとなります:ヘッダーにはユーザーアカウントのナビゲーションメニューのみが含まれています。ユーザーは商品を選択したり、決済を行うことはできません。このモードは、デスクトップ上でのみ使用できます。
settings.currency
stringご希望の決済通貨。3文字のISO 4217通貨コード。
settings.external_id
stringゲーム内のトランザクションID。各ユーザーの支払いに対して一意でなければならなりません。
settings.payment_method
integer決済方法ID。決済方法IDのリストは、アドミンページで取得できます。
settings.return_url
stringページを使用して決済後にユーザーをリダイレクトします。パラメータuser_idforeigninvoiceinvoice_idstatusは、自動的にリンクに追加されます。
settings.redirect_policy
objectリダイレクトポリシー設定(オブジェクト)。
settings.redirect_policy.redirect_conditions
string決済後、ユーザーをリターンURLにリダイレクトする決済状況。nonesuccessfulsuccessful_or_canceledanyまたはなしにすることができます。
settings.redirect_policy.delay
integerユーザーがリターンURLに自動的にリダイレクトされるまでの遅延時間(秒)。
settings.redirect_policy.status_for_manual_redirection
string決済後、ユーザーをリターンURLにリダイレクトする決済状況。nonesuccessfulsuccessful_or_canceledanyまたはなしにすることができます。
settings.redirect_policy.redirect_button_caption
string手動リダイレクト用のボタンのテキスト。
リクエストの例:
Copy
Full screen
Small screen
curl -X 'POST' \
'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/subscriptions/manage?country=RU  ' \
  -H 'accept: application/json' \
  -H 'Authorization: Bearer client_user_jwt'
{
  "settings": {
    "ui": {
      "size": "large",
      "theme": "string",
      "version": "desktop",
      "desktop": {
        "header": {
          "is_visible": true,
          "visible_logo": true,
          "visible_name": true,
          "type": "compact",
          "close_button": true
        }
      },
      "mobile": {
        "mode": "saved_accounts",
        "footer": {
          "is_visible": true
        },
        "header": {
          "close_button": true
        }
      },
      "license_url": "string",
      "mode": "user_account",
      "user_account": {
        "history": {
          "enable": true,
          "order": 1
        },
        "payment_accounts": {
          "enable": true,
          "order": 1
        },
        "info": {
          "enable": true,
          "order": 1
        },
        "subscriptions": {
          "enable": true,
          "order": 1
        }
      }
    },
    "currency": "str",
    "locale": "st",
    "external_id": "string",
    "payment_method": 1,
    "return_url": "string",
    "redirect_policy": {
      "redirect_conditions": "none",
      "delay": 0,
      "status_for_manual_redirection": "none",
      "redirect_button_caption": "string"
    }
  }
}

応答の例:

Copy
Full screen
Small screen
{
  "link_to_ps": "https://secure.xsolla.com/paystation2/?access_token=<access_token>"
}
この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
最終更新日: 2024年9月30日

誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。

問題を報告する
当社は常にコンテンツを見直しています。お客様のご意見は改善に役立ちます。
フォローアップ用のメールをご提供してください
ご意見ありがとうございました!