サブスクリプション情報を取得する
サブスクリプションを利用したアクティビティの情報は、以下の方法で取得できます:
- APIコールを利用して情報をリクエストする(サーバーレス統合に適用する)
- ウェブフックを利用してサブスクリプションのステータスが自動的に変更されたときに情報を取得する(サーバー統合に適用する)
APIコール経由でセットアップする
アプリケーションのクライアント側では、HTTP GETリクエストを利用してユーザーのサブスクリプション情報を取得することを実装します。
エクソラAPIはHTTPアクセス認証を使用します。リクエストはヘッダーAuthorization: Bearer <client_user_jwt>
を含む必要があり、<client_user_jwt>
はBase64標準に従ってエンコードされた一意のトークンです。それを取得するには:
- ログインとパスワードによる認証を行う場合は、新規ユーザー登録とユーザー名とパスワードによる認証APIコールを使用してください。
- ソーシャルネットワークを介して認証する場合は、ソーシャルネットワークによる認証APIコールを使用します。
プロジェクトIDをパスパラメータprojectId
として指定します。このパラメータは、パブリッシャーアカウントでプロジェクト名の隣に表示されます。
クエリのパラメータとして指定します:
limit
— ページに表示される要素数の上限(デフォルトでは15個の要素が表示されます)。offset
— リストが生成された要素の番号(カウントは0から始まります)。locale
— インターフェイスの言語(デフォルトでは英語)。ISO 639-1規格に準拠した値を受け入れます。
- curl
'https://subscriptions.xsolla.com/api/user/v1/projects/{projectId}/subscriptions?locale=ru&limit=5&offset=5 ' \
-H 'accept: application/json' \
-H 'Authorization: Bearer client_user_jwt'
- js
{
"items": [
{
"id": 11111111,
"plan_id": 11111,
"plan_external_id": "TestChangePlanBase",
"plan_name": "package_recurrent_name_66053",
"plan_description": "package_recurrent_description_66053",
"product_id": null,
"product_external_id": null,
"product_name": null,
"product_description": null,
"status": "active",
"date_create": "2021-03-11T13:50:11+03:00",
"date_next_charge": "2031-04-11T13:51:02+03:00",
"date_last_charge": "2021-03-11T13:51:02+03:00",
"charge": {
"amount": "0.2500",
"currency": "USD"
},
"period": {
"value": 1,
"unit": "day"
}
}
],
"has_more": true
}
ウェブフックをセットアップする
サブスクリプションソリューションでは、以下のイベントのウェブフックをサポートしています:
- サブスクリプションを支払う:
- サブスクリプションを更新する:
- サブスクリプションをキャンセルする:キャンセルされたサブスクリプション(パブリッシャーアカウントでサブスクリプションがキャンセルされたか、またはすべての有効期間の支払いがキャンセルされた)
- 返金:
- 返金(パブリッシャーアカウントで支払いがキャンセルされました)
- 更新されたサブスクリプション(支払いはキャンセルされましたが、サブスクリプションはまだアクティブです。これは、ユーザーが誤ってサブスクリプションの支払いを2回行い、最後の支払いのみをキャンセルした場合に発生する可能性があります。)
- キャンセルされたサブスクリプション(パブリッシャーアカウントで支払いがキャンセルされたか、すべての有効期間にわたってすべての支払いがキャンセルされました)
ウェブフックをセットアップするには:
- パブリッシャーアカウントで、プロジェクト設定 > ウェブフックに移動します。
- ウェブフックブロックでトグルをオンに設定します。
- ウェブフックURLを指定します。設定を保存するをクリックします。
パブリッシャーアカウントでのウェブフックをテストする
- パブリッシャーアカウント > プロジェクト設定 > ウェブフックで、サブスクリプションタブに移動します。
- ウェブフックをテストするには、プロジェクトの値(ユーザーID、インボイスID)を指定して、指定されたウェブフックURLへのリクエストで送信します。実際の値がない場合は、任意の値を入力することができます。次のフォームフィールドに入力します:
- ユーザーID
- エクソラインボイスID
- 数量
- 通貨
- プランID
- サブスクリプション製品(任意)
- インボイスID — 内部注文番号(任意)
- 試用期間( サンドボックスモードでサブスクリプション購入をテストするまたはサブスクリプション更新をテストするには、
0
値を設定します。)

- テストをクリックします。
- テストの成功メッセージを受信したことを確認します。テストが成功した場合、サーバーは204 HTTPステータスコードを返します。失敗した場合は、サーバーから400または500 HTTPステータスコードとエラーの説明が返されます。
サブスクリプション購入をテストする
決済をテストする場合、ユーザー検証、決済、および作成されたサブスクリプションの各ウェブフックは、ウェブフックをセットアップするステップで指定したURLに送信されます。支払いプロセスをテストするには:
- サンドボックスモードを使用します(サブスクリプション試用期間が0日の場合)
- 実際の支払いを行い、パブリッシャーアカウントから返金を開始します(サブスクリプション試用期間が0日を超える場合)
サンドボックスモード
- サンドボックスモード用のトークンを取得します。試用期間(
trial_days
)パラメータに0
の値を渡します。 - 決済方法のクレジットカード/デビットカードグループを選択します。
- テスト用の銀行カード情報を入力して、残りのフィールドに任意の値を入力してください。誤った情報(カード番号、有効期限、CVV)を指定して、エラーを発生させることもできます。
- ウェブフックをセットアップするステップで指定されたURLでユーザーの確認、支払いおよび更新されたサブスクリプションのウェブフックを受け取ります。
実際のお支払い
試用期間のあるサブスクリプションの支払いをテストするには、実際のお支払いを使用する必要があります:
- パブリッシャーアカウントでウェブフックのテストを完了し、サブスクリプションモジュールを有効にします。
- ライセンス契約を締結します。これをするには、パブリッシャーアカウント > 会計 > ライセンス契約に移動し、契約書を記入し、確認を待ちます。
- 実際のお支払いのためのトークンを取得します。
"mode":"sandbox"
パラメータを削除してください。- 以下のリンクから決済UIを開きます:
https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN
、そこでACCESS_TOKEN
は前のステップで得られたトークンです。 - 決済方法のクレジットカード/デビットカードグループを選択します。
- 有効な銀行カード情報を入力してください。
- ウェブフックをセットアップするステップで提供されたウェブフックURLでユーザーの確認、支払いおよび更新されたサブスクリプションウェブフックを受け取ります。
- 支払いを返金します。これを行うには、パブリッシャーアカウント > サポート > 取引検索にアクセスしてください。
- テスト取引を選択し、その他(•••)メニューボタンをクリックします。ポップアップメニューの返金をクリックします(取引のステータスは完了である必要があります)。これはキャンセルされたサブスクリプションと返金ウェブフックを送信します。
サブスクリプションの更新をテストする
サブスクリプションの更新をテストするには:
- サンドボックスモードのトークンを取得します。試用期間(
trial_days
)パラメータに0
の値を渡します。 - 任意の決済方法を使用してサブスクリプションの支払いを行います。
- サンドボックスモードで支払いインターフェースを再度開きます。
- 任意の決済方法を使用してサブスクリプションを更新するには、再度支払います。
- ウェブフックを設定するステップで指定したウェブフックURLでユーザーの確認、支払いおよび更新されたサブスクリプションのウェブフックを取得します。
テストサブスクリプションのキャンセル
サブスクリプションのキャンセルをテストするには、以下を使用します:
サブスクリプションで検索する
- パブリッシャーアカウントでサポート > 加入者に移動します。
- キャンセルしたいサブスクリプションを探します。
- サブスクリプションのステータスメニューを開き、以下を選択します:
- キャンセルと返金するはキャンセルされたサブスクリプションと返金ウェブフックを受け取ります。
- 返金なしでキャンセルするはキャンセルされたサブスクリプションウェブフックを受け取ります。
最近の取引で検索する
- パブリッシャーアカウントで、サポート > 取引検索に移動します。
- キャンセルされた最後の取引を検索します。
- その他(•••)アイコンをクリックします。ポップアップメニューの返金をクリックして、キャンセルされたサブスクリプションおよび返金のウェブフックを受け取ります。
APIコールを使用する
サブスクリプションの更新APIコールを使用して、サブスクリプションのステータスをキャンセル済みに変更し、キャンセルされたサブスクリプションwebhookを受け取ります。
サンドボックスモードで決済UIを開く
サンドボックス決済UIを開くには、アクティブなsandbox
モードのトークンを取得します。必要なトークンを使用してリンクを取得する方法は次の通り:
パブリッシャーアカウント経由
- パブリッシャーアカウントでウェブフックをテストします。試用期間がないサブスクリプションをテストする場合は、試用期間フィールドに値を
0
に指定します。テストが成功したときの確認メッセージを受け取ると、サンドボックスのURLのヘッダーの下に、必要なトークンを含むリンクが表示されます。
- サンドボックスURLリンクをたどります。
APIコール経由
"settings":{"mode":"sandbox"}
パラメータをトークンを作成するメソッドに渡します。"purchase": {"subscription":{"trial_days": 0}}
パラメータを渡して、試用期間のないサブスクリプションをテストします。- 以下のリンクを使用します:
https://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN
、ここでACCESS_TOKEN
は前のステップで取得したトークンです。
誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。