サブスクリプションソリューションにより、ユーザーは特定の条件下でサービスのパッケージにアクセスできます。主な機能:
- サブスクリプションベースの製品を定義します。
- プランを定義します。各通貨のプランを作成および構成し、試用期間を設定し、猶予期間を構成し、サブスクライブしたユーザーを表示し、特定のユーザーのサブスクリプションステータスを変更できます。
- ユーザーがダッシュボードからサブスクリプションを管理できるようにします。ユーザーは詳細なサブスクリプション情報の確認、支払い履歴の表示、プランの変更、サブスクリプションの一時停止/更新/キャンセルを行うことができます。
- パブリッシャーアカウントからユーザーサブスクリプションを管理します:各通貨のプランを作成と構成、試用期間を設定、猶予期間を構成、サブスクライブしたユーザーを表示、特定ユーザーのサブスクリプションステータスを変更する。
- 保存した支払いアカウントを使用して自動更新を有効にします。
- ユーザーが手動でサブスクリプションを更新できるようにします。
用語集
サブスクリプションプラン
サブスクリプションプラン — ユーザーがサービスにアクセスするための請求条件(請求金額、通貨、頻度)。
サブスクリプションベースの製品
サブスクリプションベースの製品 — ユーザーがサブスクリプションを購入するときにユーザーに提供されるサービスまたはサービスのセット。
サブスクリプション
サブスクリプション — 製品と選択したプランの組み合わせ。ユーザーは、サブスクリプションプランを選択してサービスへのアクセス権を受け取ると、サブスクリプションを取得します。ユーザーが同時に取得できるサブスクリプションの数は、プロジェクト内の製品の数によって異なります。
例1
製品:ゲームへのアクセス
- サブスクリプションプラン
Silver :1ヶ月あたり10ドル - サブスクリプションプラン
Gold :1年あたり100ドル
ユーザーは次のサブスクリプションのいずれかを選択できます:
- サブスクリプション1:月額10ドルプランのゲームへアクセスする
- サブスクリプション2:年間100ドルプランでのゲームへアクセスする
例2
製品1:ゲーム1へアクセスする
製品2:ゲーム2へのアクセス
- サブスクリプションプラン:1か月あたり10ドル
ユーザーは2つのサブスクリプションを同時に取得できます:
- サブスクリプション1:月額10ドルプランでgame1にアクセスする
- サブスクリプション2:月額10ドルプランでgame2にアクセスする
猶予期間
猶予期間とは、サブスクリプションの有効期限が切れた後、ユーザーがゲームにアクセスできる期間を定義する期間です。機能:
- 猶予期間は、一括払いタイプのサブスクリプションにのみ対応しています。自動更新のサブスクリプションの支払いは自動的に処理されます。
- パブリッシャーアカウントで猶予期間の長さを変更することができます。
- システムは、ユーザーが購読料を支払うか、猶予期間が終了するまで、毎日支払いのリマインダーを送信します。
- ユーザーは、サブスクリプション料金の全額を支払います。ユーザーが猶予期間に費やした日数は、これらの日数がメインのサブスクリプションに含まれるため、メインの請求期間から削除されます。
- プラン設定の猶予期間フィールドの値が0の場合、プランには猶予期間がありません。
請求の再試行回数
請求の再試行回数は、サブスクリプションのお金を引き出すための試行回数を定義する値です。これは、保存された決済アカウントを持つ自動更新サブスクリプションでのみサポートされており、お金の引き出しに失敗した後に有効になります。機能:
- システムは1日1回、決済アカウントからの引き出しを試みます。
- システムは、サブスクリプションが更新されるか、ユーザーによってキャンセルされるか、請求の再試行回数を超えた後にキャンセルされるまで、お金の引き出しを試みます。
- この設定が有効な場合、ユーザーは請求の再試行回数が超過するまでサブスクリプションにアクセスすることができます。
- ユーザーによってサブスクリプションが更新された場合、システムが請求試行に費やした日数(試行ごとに1日)は、これらの日数がメインのサブスクリプションに含まれるため、メインの課金期間から削除されます。
仕組み
ステップ1
ステップ2
ステップ3
ユーザーフロー
サブスクリプションのステータス
サブスクリプションのステータスは、次のいずれかです。
- 有効。プライマリステータス。サブスクリプションは、最初の決済が成功した後に作成され、有効化されます。有効なサブスクリプションでのみ追加料金が発生します。
- キャンセル済み。次のいずれかの理由により、サブスクリプションはキャンセルされ、即時に有効になります:
- APIメソッドまたはエクソラパブリッシャーアカウントからステータスが変更されました。
- ユーザーによりキャンセルされました。
- 期限切れ、パラメータに有効期限が設定されている場合。
- 請求の最大試行回数を超えました。これはデフォルトでは3回です。変更するには、アカウントマネージャーにお問い合わせください。
- ゲームでユーザーが見つかりません。
- ユーザーアカウントが削除されました。
- 更新なし。サブスクリプションの更新がキャンセルされました。サブスクリプションは、ステータスがキャンセル済みに変わる前に現在の請求サイクルが終了するまで続きます。以下のいずれかの理由により、更新をキャンセルすることができます:
- APIメソッドまたはパブリッシャーアカウントからステータスが変更されました。
- メールリンクを介してユーザーによってキャンセルされました。
- ユーザーアカウントが削除されました。
統合フロー
サブスクリプションを統合するには:
- エクソラパブリッシャーアカウントを登録します。
- プロジェクトを作成します。
- プランをセットアップします。
- ウェブフックをセットアップします。
- トークンを取得します。
- UIオープンフローを構成します。
- 製品をセットアップします。
プロジェクトの作成
- プロジェクトに移動し、プロジェクトを作成するをクリックします。
- セットアップモードで:
- ウェブフックURLを指定します。
- プロジェクトウェブフックに署名するための秘密キーを生成します。
プランを設定する
- サブスクリプション設定に移動します:プロジェクト>ストア>サブスクリプション。
- 以下のパラメーターを特定します:
- 名前
- 請求サイクル
ウェブフックの設定
サブスクリプションには次のウェブフックを実装する必要があります:
メッセージ本文なし、HTTPコード204ありの応答でウェブフックの受信を承認します。APIリファレンスから、ウェブフックについて(例など)詳しくご参照いただけます。
ウェブフックのハンドラをテストするときは、プロジェクト設定>ウェブフックセクションを開いてください。
トークンの取得
サブスクリプションと統合するには、トークンを取得する必要があります。トークンは、ゲーム/ユーザーデータと支払い設定を含む文字列です。
エクソラAPIは基本アクセス認証を採用しています。マーチャントIDをユーザー名、APIキーをパスワードとして指定します。
トークンの取得はこのURLから:
- curl
https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token
トークンのリクエスト
サブスクリプションUIに渡すパラメーターを含めることで、HTTP POST要求を変更できます。リクエストとレスポンスはどちらもJSON形式です。
以下は、エクソラ PHP SDKを使用してPHPでトークンを取得する方法のサンプルコードです。別のプログラミング言語を使用している場合は、CURLタブをクリックしてCURL例をご覧ください。
- php
- curl
<?php
use Xsolla\SDK\API\XsollaClient;
use Xsolla\SDK\API\PaymentUI\TokenRequest;
$tokenRequest = new TokenRequest($projectId, $userId);
$tokenRequest->setUserEmail('email@example.com')
->setExternalPaymentId('12345')
->setSandboxMode(true)
->setUserName('USER_NAME');
$xsollaClient = XsollaClient::factory(array(
'merchant_id' => MERCHANT_ID,
'api_key' => API_KEY
));
$token = $xsollaClient->createPaymentUITokenFromRequest($tokenRequest);
curl -v https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token \
-X POST \
-u your_merchant_id:merchant_api_key \
-H 'Content-Type:application/json' \
-H 'Accept: application/json' \
-d '
{
"user": {
"id": {
"value": "1234567"
},
"email": {
"value": "email@example.com"
}
},
"settings": {
"project_id": 14004,
"mode": "sandbox"
}
}'
パラメータの完全なリストはAPIリファレンスをご参照ください。
支払処理のテスト
支払い処理をテスト方法:
- サンドボックスを使用
- 実際の支払いを行い、パブリッシャーアカウント経由で払い戻し
エクソラサンドボックスは独立した環境で、実際の決済を除くライブ環境のすべての機能をサポートします。サンドボックスにアクセスするには、トークンを取得する際に"mode":"sandbox"を送信します。
銀行カード決済をテストするには:
- サンドボックスモードでサブスクリプションUIを開きます。
- 購入するアイテムを選択してください。
- 支払い方法のクレジット/デビットカードグループを選択します。
- 銀行カード情報を入力します。残りのフィールドに値を入力します。エラーを生成するために、誤った詳細(カード番号、有効期限、またはCVV)を指定することもできます。
実際の支払いを行って支払プロセスをテストするには、銀行カードを使用することもお勧めします:
- サブスクリプションUIを開きます。
- 購入するアイテムを選択してください。
- 支払い方法のクレジット/デビットカードグループを選択します。
- 有効な銀行カード情報を入力します。
- 支払いが完了したら、パブリッシャーアカウントの取引検索セクションに移動します。
- テスト取引を選択して、払い戻し(取引状態は完了でなければなりません)をクリックします。
サブスクリプションUIを開く
サブスクリプションUIを新しいウィンドウで開くには、次のリンクを使用します:https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN、そこでACCESS_TOKENは前のステップで取得したトークンです。テストの目的で、次のURLを使用します:https://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN。
製品のセットアップ
APIメソッドは、サブスクリプションベースの製品の管理に使用されます。
プロモーションオプション
クーポン
クーポン機能を使うと、パートナーはクーポンコードのついたクーポンキャンペーンを作成できます。このコードは、パートナーがアップロードする、もしくは、パブリッシャー・アカウントから生成することが可能です。ユーザーはクーポンを使って、仮想通貨や仮想アイテム、サブスクリプションプランの体験期間を受け取れます。必要に応じて、交換回数と有効期限を変更してください。
ボーナス
ボーナス機能を使用すると、サブスクリプションの購入時にボーナスアイテムを受け取ることができます。
レシピ
こちらのレシピは、次のようなサブスクリプションの上級機能を試すときに役立ちます: