インゲームストア / プレイヤーインベントリ
  ドキュメントに戻る

インゲームストア

プレイヤーインベントリ

インベントリは、ユーザーが購入、獲得、または消費できるゲーム内のすべてのアイテムのセットです。

エクソーラプレイヤーインベントリを使用すると、パートナーは次のことができます:

  • すべてのプラットフォームでユーザーのすべての購入とプレミアム報酬を同期しますエクソーラAPIを使用して、。
  • ユーザーのインベントリ内のアイテムと通貨を付与および取り消します。

どのように動作するか

プレイヤーインベントリは、ユーザーIDによってユーザーのインベントリを管理します。ユーザーIDは、エクソーラログインを通じて実装されます。独自の識別システムを構成した場合、クライアントAPIメソッドにペイステーションアクセストークンを使用できます。

プレイヤーインベントリAPIメソッドを使用するには、認証を構成する必要があります。

ユーザーのインベントリには、消耗品と非消耗品の両方が含まれる場合があります。消耗品は購入してインベントリに数回追加し、ゲームクライアントを通じてインベントリから削除できます。非消耗品のアイテムは、一度だけ購入してインベントリに追加できます。ゲームサーバーを通じて、購入のキャンセルとインベントリからの削除ができます。

上記のスキームは、プレイヤーインベントリで操作する次の原則を示しています。

    インベントリの取得

  1. ユーザーは、エクソーラログインアカウントまたは識別方法によってゲーム内で識別されます。
  2. アプリケーション(クライアント)は、現在のユーザーインベントリーを取得するメソッドを呼び出して購入とユーザーの報酬のリストを取得し、現在のユーザーの仮想残高を取得メソッドを呼び出して仮想通貨の残高を取得します。
  3. エクソーラインベントリサーバーは、ユーザーが現在所有している購入、報酬、または残高に関する情報をクライアントに返します。

    エクソーラストアを介したゲーム内購入

  1. ユーザーは、エクソーラログインアカウントまたは識別方法によってゲーム内で識別されます。
  2. ユーザーはエクソーラストアで購入します。
  3. コンテンツ購入イベントがエクソーラインベントリサーバーに送信され、その後、購入したアイテムがユーザーのインベントリに自動的に付与されます。
お知らせ
このアルゴリズムはエクソーラ側で完全に実装されており、ゲームサーバー側での操作は必要ありません。

    サードパーティの公開プラットフォーム(Steam、PlayStationなど)を介したアプリ内購入

  1. ユーザーは、プラットフォームアカウントを使用してゲームにログインします。
  2. ユーザーは、プラットフォームの支払いシステムを通じて購入します。
  3. ゲームサーバーは、購入したアイテムをユーザーに付与するメソッドを呼び出して、エクソーラインベントリサーバーでの購入を許可し、ゲーム内で固有のユーザーIDを送信します。
  4. エクソーラインベントリサーバーは、指定されたIDでユーザーのインベントリに購入を追加します。
お知らせ
ゲームのサーバー側では、さまざまな公開プラットフォーム上のユーザーアカウント間の同期を確保する必要があります。

    ユーザーへの報酬の付与

  1. ユーザーは、エクソーラログインアカウントまたは識別方法を使用して、ゲーム内で識別されます。
  2. あなたのサーバーは、アイテムをユーザーに付与するメソッドを呼び出して報酬を付与し、ゲーム内で固有のユーザーIDを送信します。
  3. エクソーラインベントリサーバーは、指定されたIDを持つユーザーのインベントリに報酬を追加します。
お知らせ
ゲームのサーバー側では、さまざまな公開プラットフォーム上のユーザーアカウント間の同期を確保する必要があります。

    インベントリの同期

  1. ユーザーは、エクソーラログインアカウント、識別メソッド、または第三者のプラットフォームアカウントによってゲーム内で識別されます。
  2. 必要に応じて、ゲームサーバーはユーザーアカウントを同期します。
  3. ゲームクライアントは、現在のユーザーインベントリーを取得するメソッドを呼び出して、使用可能なゲーム内購入を確認し、固有のユーザーIDを送信します。
  4. エクソーラインベントリサーバーは、指定されたIDの使用可能なアイテムのリストを返します。

統合フロー

プレイヤーインベントリを有効にするには:

  1. エクソーラインゲームストアをセットアップします。
  2. 認証をセットアップします。
  3. インベントリ管理のメソッドを実装します。

認証設定

セキュリティを提供するために、許可および取り消しメソッドはゲームサーバーによって呼び出されます。上記の方法では、基本的なアクセス認証を実装する必要があります。

ユーザーのインベントリを取得してアイテムを消費するメソッドは、SDKまたはAPIを介してゲームクライアントによって呼び出されます。次は可能な認証オプション:

  1. エクソーラログインが接続された場合、エクソーラログインJWTを利用してリクエストを認証します。
  2. 独自の識別システムをセットアップしている場合は、ペイステーションアクセストークンを使用してリクエストを認証します。

お知らせ
独自のユーザー識別方法を使用する場合、user.idをサーバーベースのアイテムの付与および取り消しメソッドに伝送します。ペイステーションアクセストークンに使用するuser.idと同一である必要があります。

エクソーラログイン経由の認証

  1. 指示に従ってアドミンページプロジェクトをセットアップします。
  2. JSONウェブトークンまたはOAuth 2.0プロトコルを使用して、承認メソッドの呼び出しを実装します。

ユーザーデータがエクソーラデータストレージに保存されている場合には、以下のメソッドの呼び出しを実装します:

お知らせ
エクソーラAPIを呼び出すには、ゲームエンジンやプラットフォームに対応したSDKの既成のメソッドを利用することができます。

ユーザーデータがPlayFabデータストレージに保存されている場合には、PlayFabレシピを使用します。

ユーザーデータが御社に保存されている場合には、カスタムストレージレシピを使用します。

ペイステーションアクセストークン経由の認証

認証フロー:

  1. お使いのアプリケーション(クライアント)は認証リクエストを御社のサーバーに送信します。
  2. サーバーはマーチャントIDとAPIキーをエクソーラサーバーに送信し、access_tokenを要求します。
  3. エクソーラサーバーは御社のサーバーにaccess_tokenを送信します。
  4. 御社のサーバーはaccess_tokenをクライアントに送信します。

返されたaccess_tokenCommerce APIでの認証のための認証トークンとして使用されます。また、ストアインターフェースの構築のためにも使用されます。

基本アクセス認証のセットアップ

エクソーラAPIインベントリからアイテムを付与および取り消すためのサーバーコマンドは、基本アクセス認証を使用します。APIへのすべてのリクエストにはAuthorization: Basic <your_authorization_basic_key>ヘッダ、ここで、<your_authorization_basic_key>は、Base64標準に従ってエンコードされたマーチャントID:APIキーペアです。

アドミンページに移動して、次のパラメータを見つけます:

  • マーチャントIDは以下の場所で表示されます:
    • プロジェクト設定 > ウェブフックセクション。
    • 会社設定 > 会社セクション。
    • アドミンページページのブラウザーアドレスバーのURL。URLは以下の形式があります:`https://publisher.xsolla.com/​マーチャントID/アドミンページセクション`。

  • APIキーは、作成時に一度だけアドミンページに表示され、お客様側で保存する必要があります。次のセクションで新しいキーを作成できます:
    • 会社設定 > APIキー
    • プロジェクト設定 > APIキー
注意

APIキーの操作については、APIリファレンスを参照してください。

キーに関する推奨事項:

  • 生成されたAPIキーは、お客様側で保存してください。APIキーは、アドミンページで作成時に一度だけ表示することができます。
  • APIキーは秘密にしておいてください。APIキーは、お客様の個人アカウントとアドミンページのプロジェクトへのアクセスを提供します。
  • APIキーはサーバーに保存する必要があり、決してバイナリやフロントエンドに保存してはいけません。

Copy
Full screen
Small screen

http

  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
POST https://store.xsolla.com/api/v2/project/{project_id}/inventory/reward
Headers:
  Authorization: Basic <your_authorization_basic_key>
curl --request POST \
--url 'https://store.xsolla.com/api/v2/project/{project_id}/inventory/reward' \
--header 'authorization: Basic <your_authorization_basic_key>'
<?php

$uri = 'https://store.xsolla.com/api/v2/project/{project_id}/inventory/reward';

$auth = base64_encode('your_merchant_id:your_merchant_api_key');

$headers = [
    'Authorization: Basic ' . $auth,
    'Content-Type: application/json',
    'Accept: application/json',
];

$request = curl_init($uri);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_POSTFIELDS, []);
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($request);
print_r($response);
var client = new RestClient("https://store.xsolla.com/api/v2/project/{project_id}/inventory/reward");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

headers = { 'authorization': "Basic <your_authorization_basic_key>" }

conn.request("POST", "https://store.xsolla.com/api/v2/project/{project_id}/inventory/reward", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://store.xsolla.com/api/v2/project/{project_id}/inventory/reward
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic <your_authorization_basic_key>'

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://store.xsolla.com/api/v2/project/{project_id}/inventory/reward")
  .post()
  .addHeader("authorization", "Basic <your_authorization_basic_key>")
  .build();

Response response = client.newCall(request).execute();
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://store.xsolla.com/api/v2/project/{project_id}/inventory/reward");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");

xhr.send(data);

インベントリ管理メソッド

インベントリ管理メソッドには、次のメソッドが含まれます:

アイテムをユーザーに付与する

アイテムをユーザーに付与する APIメソッドを実装して、指定したアイテムをユーザーのインベントリに追加するか、仮想通貨を残高に追加します。

リクエスト:

Copy
Full screen
Small screen
<?php
$uri = 'https://store.xsolla.com/api/v2/project/44056/inventory/reward';
$body = '
    [
        {
          "user": {
            "id": "0125760a-6810-11e9-84c0-42010aa80029"
          },
          "comment": "Quest completed",
          "platform": "xsolla",
          "items": [
            {
              "sku": "boots_1",
              "quantity": 5
            },
            {
              "sku": "crystal_pack_1",
              "quantity": 3
            }
          ]
        },
        {
          "user": {
            "id": "a7d10a4e-3f68-43cc-a6b2-893d2c68fd14"
          },
          "comment": "Daily reward",
          "platform": "xsolla",
          "items": [
            {
              "sku": "helmet_1",
              "quantity": 2
            },
            {
              "sku": "minigun_1",
              "quantity": 3
            }
          ]
        }
    ]';

$auth = base64_encode('44056:your_merchant_api_key');

$headers = [
    'Authorization: Basic ' . $auth,
    'Content-type: application/json'
];

$request = curl_init($uri);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $body);
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($request);

レスポンス:

Copy
Full screen
Small screen
{
    "count": 2,
    "operations": [
        {
            "user_id": "0125760a-6810-11e9-84c0-42010aa80029",
            "platform": "xsolla",
            "comment": "Quest completed",
            "items": [
                {
                    "sku": "boots_1",
                    "quantity": 5
                },
                {
                    "sku": "crystal_pack_1",
                    "quantity": 3
                }
            ]
        },
        {
            "user_id": "a7d10a4e-3f68-43cc-a6b2-893d2c68fd14",
            "platform": "xsolla",
            "comment": "Daily reward",
            "items": [
                {
                    "sku": "helmet_1",
                    "quantity": 2
                },
                {
                    "sku": "minigun_1",
                    "quantity": 3
                }
            ]
        }
  ]
}

インベントリアイテムを取り消す

インベントリアイテムを取り消す APIメソッドを実装して、指定したアイテムをユーザーのインベントリから取り消すか、残高から仮想通貨を取り消します。

リクエスト:

Copy
Full screen
Small screen
<?php
$uri = 'https://store.xsolla.com/api/v2/project/44056/inventory/revoke';
$body = '
    [
        {
          "user": {
            "id": "0125760a-6810-11e9-84c0-42010aa80029"
          },
          "comment": "Remove from inventory",        
          "items": [
            {
              "sku": "boots_1",
              "quantity": 5
            },
            {
              "sku": "crystal_pack_1",
              "quantity": 3
            }
          ]
        },
        {
          "user": {
            "id": "a7d10a4e-3f68-43cc-a6b2-893d2c68fd14"
          },
          "comment": "Cheater",
          "items": [
            {
              "sku": "helmet_1",
              "quantity": 2
            },
            {
              "sku": "minigun_1",
              "quantity": 3
            }
          ]
        }
    ]';

$auth = base64_encode('44056:your_merchant_api_key');

$headers = [
    'Authorization: Basic ' . $auth,
    'Content-type: application/json'
];

$request = curl_init($uri);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $body);
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($request);
print_r($response);

レスポンス:

Copy
Full screen
Small screen
{
    "count": 2,
    "operations": [
        {
            "user_id": "0125760a-6810-11e9-84c0-42010aa80029",
            "platform": "xsolla",
            "comment": "Remove from inventory",
            "items": [
                {
                    "sku": "boots_1",
                    "quantity": 5
                },
                {
                    "sku": "crystal_pack_1",
                    "quantity": 3
                }
            ]
        },
        {
            "user_id": "a7d10a4e-3f68-43cc-a6b2-893d2c68fd14",
            "platform": "xsolla",
            "comment": "Cheater",
            "items": [
                {
                    "sku": "helmet_1",
                    "quantity": 2
                },
                {
                    "sku": "minigun_1",
                    "quantity": 3
                }
            ]
        }
    ]
}

購入したアイテムをユーザーに付与する

購入したアイテムをユーザーに付与する APIメソッドを実装して、サードパーティプラットフォームで購入が行われたときにアイテムをユーザーのインベントリに追加します。

リクエスト:

Copy
Full screen
Small screen
<?php
$uri = 'https://store.xsolla.com/api/v2/project/44056/inventory/purchase';
$body = '
    [
        {
          "user": {
            "id": "0125760a-6810-11e9-84c0-42010aa80029"
          },
          "comment": "Purchase in App Store",
          "platform": "app_store_ios",
          "purchase": {
            "amount": "3.99",
            "currency": "USD",
            "external_purchase_id": "MS6TGW7023",
            "external_purchase_date": "2020-01-25T05:00:00+05:00"
          },        
          "items": [
            {
              "sku": "boots_1",
              "quantity": 5
            },
            {
              "sku": "crystal_pack_1",
              "quantity": 3
            }
          ]
        },
        {
          "user": {
            "id": "a7d10a4e-3f68-43cc-a6b2-893d2c68fd14"
          },
          "comment": "Purchase in Google Play",
          "platform": "google_play",
          "purchase": {
            "amount": "1.99",
            "currency": "EUR",
            "external_purchase_id": "GPA.3357-9348-5932-89841",
            "external_purchase_date": "2020-02-14T05:00:00+05:00"
          },
          "items": [
            {
              "sku": "helmet_1",
              "quantity": 2
            },
            {
              "sku": "minigun_1",
              "quantity": 3
            }
          ]
        }
    ]';

$auth = base64_encode('44056:your_merchant_api_key');

$headers = [
    'Authorization: Basic ' . $auth,
    'Content-type: application/json'
];

$request = curl_init($uri);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $body);
curl_setopt($request, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($request);
print_r($response);

レスポンス:

Copy
Full screen
Small screen

{
    "count": 2,
  "operations": [
    {
      "user_id": "0125760a-6810-11e9-84c0-42010aa80029",
      "platform": "app_store_ios",
      "comment": "Purchase in App Store",
      "items": [
        {
          "sku": "boots_1",
          "quantity": 5
        },
        {
          "sku": "crystal_pack_1",
          "quantity": 3
        }
      ],
      "order_id": 4125,
      "external_purchase_id": "MS6TGW7023",
      "external_purchase_date": "2020-01-25T05:00:00+05:00",
      "amount": "3.99",
      "currency": "USD"
    },
    {
      "user_id": "a7d10a4e-3f68-43cc-a6b2-893d2c68fd14",
      "platform": "google_play",
      "comment": "Purchase in Google Play",
      "items": [
        {
            "sku": "helmet_1",
          "quantity": 2
        },
        {
            "sku": "minigun_1",
          "quantity": 3
        }
      ],
      "order_id": 4126,
      "external_purchase_id": "GPA.3357-9348-5932-89841",
      "external_purchase_date": "2020-02-14T05:00:00+05:00",
      "amount": "1.99",
      "currency": "EUR"
    }
  ]
}

現在のユーザーインベントリーを取得する

お知らせ
エクソーラAPIを呼び出すには、ゲームエンジンやプラットフォームに対応したSDKの既成のメソッドを利用することができます。

現在のユーザーインベントリーを取得する APIメソッドを実装して、購入後にユーザーのインベントリに追加されたアイテムのリストを取得します。

リクエスト:

Copy
Full screen
Small screen
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://store.xsolla.com/api/v2/project/44056/user/inventory/items");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");

xhr.send(data);

レスポンス:

Copy
Full screen
Small screen
{
  "items": [
    {
      "description": "Conquer your foes with vindication using the Basic Blaster! ",
      "image_url": "https://cdn.xsolla.net/img/misc/images/0c59a7698d4f66c1008b27ee752089b7.png",
      "instance_id": null,
      "long_description": "Conquer your foes with vindication using the Basic Blaster! Conquer your foes with vindication using the Basic Blaster! ",
      "name": "Xsolla Basic Blaster 1",
      "quantity": 22,
      "sku": "gun_1",
      "type": "virtual_good"
    },
    {
      "description": "Protect your noggin' with style",
      "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
      "instance_id": null,
      "long_description": "merchant_virtual_items_virtual_item_long_description_159429",
      "name": "Xsolla Helmet",
      "quantity": 18,
      "sku": "helmet_1",
      "type": "virtual_good"
    }
  ]
}

現在のユーザーの仮想残高を取得

お知らせ
エクソーラAPIを呼び出すには、ゲームエンジンやプラットフォームに対応したSDKの既成のメソッドを利用することができます。

現在のユーザーの仮想残高を取得 APIメソッドを実装して、現在のユーザーの仮想通貨残高に関する情報を取得します。

リクエスト:

Copy
Full screen
Small screen
var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
    if (this.readyState === this.DONE) {
        console.log(this.responseText);
    }
});
xhr.open("GET", "https://store.xsolla.com/api/v2/project/44056/user/virtual_currency_balance");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");
xhr.send(data);

レスポンス:

Copy
Full screen
Small screen

{
  "items": [
    {
      "amount": 683,
      "description": "Main in-game currency",
      "image_url": "https://cdn3.xsolla.com/img/misc/images/91df536af4616519f639664854c13d75.png",
      "name": "Crystals",
      "sku": "crystal",
      "type": "virtual_currency"
    },
    {
      "amount": 450,
      "description": "Money for in-store purchases",
      "image_url": "https://cdn3.xsolla.com/img/misc/images/fda67a3feedaa706b4e4ae05a9edd6ab.png",
      "name": "Gold",
      "sku": "gold",
      "type": "virtual_currency"
    }
  ]
}

アイテムを消費する

お知らせ
エクソーラAPIを呼び出すには、ゲームエンジンやプラットフォームに対応したSDKの既成のメソッドを利用することができます。

アイテムを消費する APIメソッドを実装して、ユーザーのインベントリからアイテムを消費します。

リクエスト:

Copy
Full screen
Small screen
let data = JSON.stringify({
  "sku": "gun_1",
  "quantity": 1,
  "instance_id": null
});

let xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://store.xsolla.com/api/v2/project/44056/user/inventory/item/consume");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");

xhr.send(data);

エラー一覧

ユーザーまたはユーザーのインベントリー管理エラー:
コード説明アクション
0401-5002ユーザーのインベントリにアイテムを追加するための間違ったデータ。item_idを指定する必要があり、instance_idまたはquantitynull値が必要です。
0401-5003ユーザーIDが指定されていません。リクエスト内のユーザーIDの存在をチェックします。
0401-5004ユーザーのインベントリにアイテムがありません。アイテムがインベントリにあることを確認してください。インベントリステータスは、Get user’s inventoryメソッドを介して確認されます。
0401-5006購入するための十分な仮想通貨が見つかりません。-
0401-5007非消耗品を消費しようとしています。-
0401-5008ユーザーが見つかりません。-
0401-5009サードパーティプラットフォームの購入を許可するときに、purchaseがパスしませんでした。-
アイテム管理エラー:
コード説明アクション
0401-4001基準でアイテムが見つかりません。Get user’s inventoryメソッドを呼び出して、アイテムのリストを確認します。
Commerce API管理エラー:
コード説明アクション
0401-1101サービスを利用できません(間違ったアドレス、接続の問題)。status.xsolla.comでシステムの状態をチェックします;エクソーラ顧客サポートチームまたはカスタマーサクセスマネージャーまでお問い合わせるか、csm@xsolla.comに電子メールを送信してください。
0401-1102不正なリクエストエントリデータ。API仕様をチェックします。
0401-1016リクエストエントパラメーターの1つのエンコードが間違っています。リクエストの内容をチェックします。
0401-1019メソッドはサポートされていません。リクエストをチェックします。サポートされているメソッドは応答にあります。
0401-1020販売者のキーハッシュを使用する際の認証エラー。APIキーをチェックします。
この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
このページを評価する
このページを評価する
改善できることはありますか?

答えたくない

ご意見ありがとうございました!
最終更新日: 2024年1月22日

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

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