カタログUIを作成する
カタログUIを作成する方法は3つあります:
独自のインターフェースを使用する
独自のインターフェイスでディレクトリを作成する場合、以下のことを使用できます:
- 独自のデータ保存と任意の権限設定オプション。この場合、カタログUIはお客様側で実装してください。
- 独自の認証とプランを取得するサーバーメソッド。プランのリストを取得した後、カタログUIをお客様側で実装します。
- エクソラログインとクライアント側のAPIコール。
エクソラログインとクライアント側のAPIコール
カタログを実装するには:
- クライアントメソッドを使用して、サブスクリプションプランのリストを取得します:
- プロジェクトにサブスクリプションベースの製品が構成されている場合、クライアントサイドのメソッドを使用して、製品別のサブスクリプションプランを取得します
- プロジェクトにサブスクリプションベースの製品が構成されていない場合、プランのリストを取得するためのクライアントサイドのメソッドを使用します
- 受信したプランのリストをインターフェースの表示を実装します。
商品ごとのサブスクリプションプランを取得するクライアント側のメソッド
アプリケーションのクライアント側で、HTTP GETリクエストを使用して、プランのリストを取得することを実装します:https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/products/{productId}/plans
。
リクエストには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
— プロジェクトID。このパラメータは、パブリッシャーアカウントでプロジェクト名の側に表示されます。
productID
— サブスクリプションベースのプロダクトIDです。取得するには、アカウントマネージャにお問い合わせください。
クエリパラメータとして指定します:
パラメータ | 種類 | 説明文 |
---|---|---|
plan_id | array of integers | プランID。 |
| array of strings | プランのexternal ID。パブリッシャーアカウントのサブスクリプション > サブスクリプションプラン > プランセクション、またはプランを取得するAPIコールで確認できます。 |
| integer | ページ内の要素数の制限。デフォルトでは15件が表示されます。 |
| integer | リスト生成元のエレメントの番号。デフォルトでは、カウントは0から始まります。 |
| string | インターフェイス言語を2文字の小文字で表す。ISO 639-1値を受け入れます。このパラメータが渡されない場合、言語はユーザーのIPアドレスによって決定されます。 |
| string | 二文字のISO 3166-1 alpha-2指定は、ユーザーの国を識別するために使用されます。このパラメータは、ロケールと通貨の選択に影響します。このパラメータが渡されない場合、国はユーザーのIPアドレスによって決定されます。 |
curl -X 'GET' \
'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/products/{productId}/plans?country=RU ' \
-H 'accept: application/json' \
-H 'Authorization: Bearer client_user_jwt'
- js
{
"items": [
{
"plan_id": 54321,
"plan_external_id": "PlanExternalId",
"plan_group_id": "TestGroupId",
"plan_type": "all",
"plan_name": "Localized plan name",
"plan_description": "Localized plan description",
"plan_start_date": "2021-04-11T13:51:02+03:00",
"plan_end_date": "2031-04-11T13:51:02+03:00",
"trial_period": 7,
"period": {
"value": 1,
"unit": "month"
},
"charge": {
"amount": 4.99,
"setup_fee": 0.99,
"currency": "USD"
},
"promotion": {
"promotion_charge_amount": 3.99,
"promotion_remaining_charges": 3
}
}
],
"has_more": false
}
プランのリストを取得するクライアント側のメソッド
アプリケーションのクライアント側で、HTTP GETリクエストを使用して、プランのリストを取得することを実装します:https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/plans
。
リクエストには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
として指定します。このパラメータは、パブリッシャーアカウントでプロジェクト名の隣に表示されます。
クエリパラメータとして指定します:
パラメータ | 種類 | 説明文 |
---|---|---|
plan_id | array of integers | プランID。 |
| array of strings | プランのexternal ID。パブリッシャーアカウントのサブスクリプション > サブスクリプションプラン > プランセクション、またはプランを取得するAPIコールで確認できます。 |
| integer | ページ内の要素数の制限。デフォルトでは15件が表示されます。 |
| integer | リスト生成元のエレメントの番号。デフォルトでは、カウントは0から始まります。 |
| string | インターフェイス言語を2文字の小文字で表す。ISO 639-1値を受け入れます。このパラメータが渡されない場合、言語はユーザーのIPアドレスによって決定されます。 |
| string | 二文字のISO 3166-1 alpha-2指定は、ユーザーの国を識別するために使用されます。このパラメータは、ロケールと通貨の選択に影響します。このパラメータが渡されない場合、国はユーザーのIPアドレスによって決定されます。 |
curl -X 'GET' \
'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/plans?country=RU ' \
-H 'accept: application/json' \
-H 'Authorization: Bearer client_user_jwt'
- js
{
"items": [
{
"plan_id": 54321,
"plan_external_id": "PlanExternalId",
"plan_group_id": "TestGroupId",
"plan_type": "all",
"plan_name": "Localized plan name",
"plan_description": "Localized plan description",
"plan_start_date": "2021-04-11T13:51:02+03:00",
"plan_end_date": "2031-04-11T13:51:02+03:00",
"trial_period": 7,
"period": {
"value": 1,
"unit": "month"
},
"charge": {
"amount": 4.99,
"setup_fee": 0.99,
"currency": "USD"
},
"promotion": {
"promotion_charge_amount": 3.99,
"promotion_remaining_charges": 3
}
}
],
"has_more": false
}
エクソラ決済ステーションを使用する
決済UIでカタログが作成される方法は、以下のプロジェクトの認証設定に依存します:
独自の認証システム
アプリケーションが独自の認証システムを使用する場合:
- サーバーのトークンを作成するAPIコールによるトークンの取得を実装します。リクエストでは、
user.id
およびuser.email
パラメータでユーザー情報を渡します。 - Pay Station Embed、iframe、または新しいウィンドウで決済UIを開くことを実装します。
- js
{
"user": {
"id": {
"value": "1234567",
"hidden": true
}
},
"settings": {
"project_id": 123456,
"language": "en",
"currency": "USD"
}
}
エクソラログイン
プロジェクトでエクソラログインが設定されている場合:
アプリケーションのクライアント側で、HTTP POSTリクエストを使用して、決済UIを開くことを実装します:https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/subscriptions/buy
。
リクエストには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アドレスによって決定されます。
リクエストボディパラメータ:
パラメータ | 種類 | 説明文 |
---|---|---|
| string | 必須。サブスクリプションプランのexternal ID。パブリッシャーアカウント > サブスクリプション > サブスクリプションプランセクションで見つかります。 |
| object | カスタムプロジェクト設定(オブジェクト)。 |
| object | インタフェース設定(オブジェクト)。 |
| string | 決済UIのサイズ。以下を指定できます:
|
| string | 決済インターフェースのテーマ。default (既定)またはdefault_dark に指定できます。 |
| string | デバイスの種類。desktop (既定)またはmobile に指定できます。 |
| object | デスクトップバージョン(オブジェクト)のインターフェース設定。 |
| object | ヘッダー設定(オブジェクト)。 |
| boolean | デスクトップ版決済ステーションに閉じるボタンを表示する設定。このボタンは決済ステーションを閉じて、settings.return_url パラメータで指定されたURLにユーザーをリダイレクトします。デフォルトはfalse です。 |
| boolean | 決済インターフェースにヘッダーを表示するかどうかを示します。 |
| string | ヘッダーの外観。compact (この場合、ゲーム名とユーザーIDはヘッダーに表示されません)またはnormal にすることができます。 |
| boolean | true の場合、ヘッダーにはあなたのロゴが表示されます(最初にあなたのアカウントマネージャーに画像を提供してください)。 |
| boolean | ヘッダーにプロジェクト名を表示するかどうかを示します。 |
| string | ヘッダーを表示する方法。compact (プロジェクト名とユーザーIDを隠す)またはnormal (既定)に指定できます。 |
| string | ユーザーは、保存された決済方法を使用してのみ決済を行うことができます。saved_accounts に指定できます。 |
| boolean | モバイル版の決済インターフェースでフッターを非表示にするかどうかを示します。 |
| boolean | モバイル版決済ステーションに閉じるボタンを表示する設定。このボタンは決済ステーションを閉じて、settings.return_url パラメータで指定されたURLにユーザーをリダイレクトします。デフォルトはfalse です。 |
| string | EULAへのリンク。 |
| string | 決済ステーションのインターフェースモード。user_account のみとなります:ヘッダーにはユーザーアカウントのナビゲーションメニューのみが含まれています。ユーザーは商品を選択したり、決済を行うことはできません。このモードは、デスクトップ上でのみ使用できます。 |
| object | ユーザーアカウントの詳細(オブジェクト)。 |
| object | 履歴サブメニュー。 |
| integer | セクションを決済UIのドロップダウンメニューに表示するかどうか。true またはfalse を指定できます。パラメータが渡されない場合、セクションは表示されません。 |
| integer | 決済インターフェースのドロップダウンメニューにあるセクションの場所。 |
| object | マイアカウントページ。 |
| integer | 決済UIのドロップダウンにおけるセクションの場所。 |
| boolean | セクションを決済UIのドロップダウンメニューに表示するかどうか。true またはfalse を指定できます。パラメータが渡されない場合、セクションは表示されません。 |
| object | マイ決済アカウントサブメニュー。 |
| integer | 決済UIのドロップダウンにおけるセクションの場所。 |
| boolean | サブメニューを表示するかどうか。true またはfalse を指定できます。パラメータが渡されない場合、セクションが表示されます。 |
| object | サブスクリプション管理サブメニュー。 |
| boolean | サブメニューを表示するかどうか。true またはfalse を指定できます。パラメータが渡されない場合、セクションが表示されます。 |
settings.ui.user_account.subscriptions.order | integer | 決済UIのドロップダウンにおけるセクションの場所。 |
| string | 標準の決済通貨。ISO 42173文字通貨コード。 |
| string | ゲーム内のトランザクションID。各ユーザーの支払いに対して一意でなければならなりません。 |
| integer | 決済方法ID。決済方法IDのリストはパブリッシャーアカウントを参照するか、決済方法を取得するAPIコールを使用して取得できます。 |
| 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 | 手動リダイレクト用のボタンのテキスト。 |
必要に応じて、カスタマイズのための追加パラメータを渡します。
curl -X 'POST' \
'https://subscriptions.xsolla.com/api/user/v1/projects/{project_id}/subscriptions/buy?country=RU ' \
-H 'accept: application/json' \
-H 'Authorization: Bearer client_user_jwt'
{
"plan_external_id": "PlanExternalId",
"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": "string",
"locale": "string",
"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"
}
}
}
{
"link_to_ps": "https://secure.xsolla.com/paystation2/?access_token=<access_token>"
}
エクソラ決済ステーションにサブスクリプションカタログを表示した例:
エクソラサイトビルダーを使用する
エクソラサイトビルダーで、サブスクリプションを販売するにはサイトを作成し、設定することができます。そのためには、ウェブショップのテンプレートを使って、サイトを作成します。ウェブショップのロール設定については、ユーザー認証のあるウェブショップに関する説明を参照してください。
誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。