ユーザーがサブスクリプションプランの変更を許可する方法
お知らせ
プロジェクトでユーザーがプランを変更できるようにする場合、決済インターフェースの正しい動作を設定する必要があります。これを行うには、カスタマーサクセスマネージャーに連絡するか、csm@xsolla.comに電子メールを送信してください。
どのように動作するか
- 新しいプランを選択すると、現在のサブスクリプションの未使用期間についてユーザーの残高に返金が行われます。
- 新しいサブスクリプションプランの支払いは、すべてユーザーの残高から行われます。残高が不足している場合は、プロジェクトで許可されている決済方法のいずれかによって追加で支払われます。
- プラン変更の場合、次回請求期間からプラン変更するプロジェクトであっても、入金確認後すぐに引き落とされます。
新しいプランの通貨が現在のプランの通貨と異なる場合、新しいプランの購入は通貨換算で行われます。
- ユーザーは、現在のプランから変更されるプランでアクティブなサブスクリプションをすでに持っています
- ユーザーが変更したいサブスクリプションがアクティブ状態でない場合
- ユーザーが変更を希望するサブスクリプションプランがライフタイムプランタイプである場合:このようなサブスクリプションプランは、指定された返金期間内にのみキャンセルすることができます
お知らせ
プロジェクトでプラングループが構成されている場合、プラン変更はグループ内でのみ可能です。グループの仕組みの詳細については、サブスクリプションベースの製品とプラングループの設定方法に関する説明をご覧ください。
入手方法
- パブリッシャーアカウントでプロジェクトを開きます。
- サイドバーのサブスクリプションをクリックし、設定セクションに移動します。
- プラン変更セクションで、「別のプランを選択する能力」のトグルを「オン」に設定します。
- プランの変更は、デフォルトで次の期間から許可されます。今期中にプランの変更を許可するには、「今すぐ」を選択します。このオプションを選択した場合、入金確認後すぐにプランが変更されます。
- プランを1日に複数回変更できるようにするには、「同じ日に複数回で別のプランを選択できる機能」を「オン」に設定します。
- 決済インターフェースを開くときは、次を使用します:
- サーバー側のトークンを作成するAPIコール
- プロジェクトでエクソーラログインを使用する場合、決済UIを開くためのリンクを取得するクライアント側のAPIコール
サーバー側のトークンを作成するAPIコールを介して決済UIを開く
- 以下をメソッドに渡して、決済UIを開くためのトークンを取得します:
purchase.subscription.operation
パラメータでのchange_plan
値。purchase.subscription.plan_id
パラメータでの新しいプランのID。- サブスクリプションベースの製品を使用している場合は、
purchase.subscription.product_id
パラメータのサブスクリプションベースの製品ID。取得するには、カスタマーサクセスマネージャーまでお問い合わせるか、csm@xsolla.comに電子メールを送信してください。
- 以下のいずれかの方法で決済インターフェイスを開きます:
クライアントサイドの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コールをご利用ください。
projectId
として指定します。このパラメータは、パブリッシャーアカウントでプロジェクト名の隣に表示されます。
クエリーパラメータにcountry
を指定します — ISO 3166-1 alpha-2規格に従ったユーザーの国名の二文字表記です。ロケールと通貨の選択に影響します。このパラメータを渡さなかった場合、国はユーザーのIPアドレスによって決定されます。必要に応じて、カスタマイズのための追加パラメータを渡します。
リクエストボディパラメータ:
パラメータ | 種類 | 説明文 |
---|---|---|
| string | 必須です。サブスクリプションプランのexternal IDです。パブリッシャーアカウント > サブスクリプション > サブスクリプションプランセクションで見つけることができます。 |
| object | カスタムプロジェクト設定(オブジェクト)。 |
| object | インタフェース設定(オブジェクト)。 |
| string | 決済UIのサイズ。以下を指定できます:
|
| string | 決済UIのテーマ。default 、default_dark またはカスタムテーマIDに指定できます。 |
| string | デバイスの種類。desktop (既定)またはmobile に指定できます。 |
| object | デスクトップバージョン(オブジェクト)のインターフェース設定。 |
| object | ヘッダー設定(オブジェクト)。 |
| boolean | デスクトップ版ペイステーションに閉じるボタンを表示する設定。このボタンはペイステーションを閉じて、settings.return_url パラメータで指定されたURLにユーザーをリダイレクトします。デフォルトはfalse です。 |
| boolean | 決済UIにヘッダーを表示するかどうかを示します。 |
| string | ヘッダーの外観。compact (この場合、ゲーム名とユーザーIDはヘッダーに表示されません)またはnormal にすることができます。 |
| boolean | true の場合、ヘッダーにはあなたのロゴが表示されます(最初にあなたのカスタマーサクセスマネージャーに画像を提供してください)。 |
| boolean | ヘッダーにプロジェクト名を表示するかどうかを示します。 |
| string | ヘッダーを表示する方法。compact (プロジェクト名とユーザーIDを隠す)またはnormal (既定)に指定できます。 |
| string | ユーザーは、保存された決済方法を使用してのみ決済を行うことができます。saved_accounts に指定できます。 |
| boolean | モバイル版の決済UIでフッターを非表示にするかどうかを示します。 |
| boolean | モバイル版ペイステーションに閉じるボタンを表示する設定。このボタンはペイステーションを閉じて、settings.return_url パラメータで指定されたURLにユーザーをリダイレクトします。デフォルトはfalse です。 |
| string | ペイステーションのインターフェースモード。user_account のみとなります:ヘッダーにはユーザーアカウントのナビゲーションメニューのみが含まれています。ユーザーは商品を選択したり、決済を行うことはできません。このモードは、デスクトップ上でのみ使用できます。 |
| string | ご希望の決済通貨。3文字のISO 4217通貨コード。 |
| string | ゲーム内のトランザクションID。各ユーザーの支払いに対して一意でなければならなりません。 |
| integer | 決済方法ID。決済方法IDのリストは、パブリッシャーアカウントで取得できます。 |
| string | ページを使用して決済後にユーザーをリダイレクトします。パラメータuser_id 、foreigninvoice 、invoice_id とstatus は、自動的にリンクに追加されます。 |
| object | リダイレクトポリシー設定(オブジェクト)。 |
| string | 決済後、ユーザーをリターンURLにリダイレクトする決済状況。none 、successful 、successful_or_canceled 、any またはなし にすることができます。 |
settings.redirect_policy.delay | integer | ユーザーがリターンURLに自動的にリダイレクトされるまでの遅延時間(秒)。 |
| string | 決済後、ユーザーをリターンURLにリダイレクトする決済状況。none 、successful 、successful_or_canceled 、any またはなし にすることができます。 |
| string | 手動リダイレクト用のボタンのテキスト。 |
Copy
- curl
1curl -X 'POST' \
2'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/subscriptions/manage?country=RU ' \
3 -H 'accept: application/json' \
4 -H 'Authorization: Bearer client_user_jwt'
5{
6 "settings": {
7 "ui": {
8 "size": "large",
9 "theme": "string",
10 "version": "desktop",
11 "desktop": {
12 "header": {
13 "is_visible": true,
14 "visible_logo": true,
15 "visible_name": true,
16 "type": "compact",
17 "close_button": true
18 }
19 },
20 "mobile": {
21 "mode": "saved_accounts",
22 "footer": {
23 "is_visible": true
24 },
25 "header": {
26 "close_button": true
27 }
28 },
29 "license_url": "string",
30 "mode": "user_account",
31 "user_account": {
32 "history": {
33 "enable": true,
34 "order": 1
35 },
36 "payment_accounts": {
37 "enable": true,
38 "order": 1
39 },
40 "info": {
41 "enable": true,
42 "order": 1
43 },
44 "subscriptions": {
45 "enable": true,
46 "order": 1
47 }
48 }
49 },
50 "currency": "str",
51 "locale": "st",
52 "external_id": "string",
53 "payment_method": 1,
54 "return_url": "string",
55 "redirect_policy": {
56 "redirect_conditions": "none",
57 "delay": 0,
58 "status_for_manual_redirection": "none",
59 "redirect_button_caption": "string"
60 }
61 }
62}
応答の例:
Copy
- javascript
1{
2 "link_to_ps": "https://secure.xsolla.com/paystation2/?access_token=<access_token>"
3}
この記事は役に立ちましたか?
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。