ストアをゲームに統合する

パブリッシャーアカウントでグッズ (仮想アイテム、仮想通貨、バンドル、キー)を作成して構成したら、ゲーム内ストアをゲームに追加します:

  1. アイテムカタログの表示を実装します。
  2. アイテムを販売するためのロジックを実装します。

商品カタログの表示

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

ゲーム内ストア&Buy Button APIコールでアイテムカタログの表示を実装します:

タスクAPI
ストアに追加された仮想アイテムの完全なリストを表示するにはGet virtual items list
クライアント側で販売可能な仮想アイテムのグループの一覧を表示するにはGet item groups list
クライアント側のストアで販売可能な仮想通貨のリストを取得するにはGet virtual currency list
ストアに追加された仮想通貨パッケージの一覧をクライアント側で表示するにはGet virtual currency package list
ストアに追加された仮想通貨バンドルの完全なリストを表示するにはGet list of bundles

アイテムの販売

以下の方法でアイテムを販売することができます:

  1. 1つの商品を迅速で購入することができます。この場合、1つのSKUを任意の数量で販売することができます。例えば、同じポーションを100個。
  2. カートの購入。この場合、プレイヤーはあらかじめカートに商品を入れておき、その後、商品の追加や削除、数量の変更を行うことができます。

迅速な購入

  1. Create order with specified item API を呼び出します。決済UIを開くためのトークンがレスポンスに渡されます。
  2. 受信した決済トークンを使って、決済UIを開きます。

お知らせ
割引に関する情報(パーソナライズされたもの、または購入に関連するもの)は、決済UIでのみユーザーに提供されます。プロモーションコードの使用は提供されません。
お知らせ
エクソラAPIを呼び出すには、ゲームエンジンやプラットフォームに対応したSDKの既成のメソッドを利用することができます。

カート購入

ロジックを実装します:

  1. カートをセットアップしてトークンを取得するには:
  2. 決済UIを開くには

クライアントでカートをセットアップして購入する

アイテムの追加と削除のロジックを自分で実装します。また、カートを設定するためのAPIを呼び出す前には、どのプロモーションが購入に適用されるかの情報がないことを考慮する必要があります。つまり、追加されたボーナスアイテムの合計金額と詳細は不明です。

  1. プレイヤーがカートを満たした後、Fill cart with items APIを呼び出します。選択されたアイテムの現在の情報(割引前、割引後の価格、ボーナスアイテム)がレスポンスに渡されます。
  2. Create order with all items from current cart API を呼び出します。注文 ID と決済トークンがレスポンスに渡されます。作成された注文は新規注文ステータスを受け取ります。
  3. 決済UIを開きます。

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

サーバーでカートをセットアップして購入する

カートを変更するたびに API 呼び出しを伴う必要があるため、このバリアントはカートのセットアップに時間がかかる場合があります。

次の手順を完了します:

  1. カートを変更します:

お知らせ
カートの現在のステータスを取得するには、Get current user’s cart API を呼び出します。

  1. Create order with all items from the current cart API を呼び出します。注文 IDと決済トークンがレスポンスに渡されます。作成された注文は新規注文ステータスを受け取ります。
  2. 決済UIを開きます

決済インターフェースを開く

アイテムを支払う場合は、決済UIを開きます。決済UIを開くためのトークンは、Create order with all items from current cart APIレスポンスに渡されます。

以下のいずれかの方法で支払い UI を開くように実装します:

  • 新しいウィンドウで。新しいブラウザウィンドウで決済UIを開くには、次のリンクを使用します:https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKENでトークンACCESS_TOKENが注文が作成されたときに受け取る。
  • ウィジェット経由。エクソラ決済ステーションウィジェットスクリプトを使用します (READMEファイルには説明が含まれています)。

支払いプロセスのテスト

支払いフローはサンドボックスモードでテストできます。テスト銀行カードと任意の口座を使用できます。

お知らせ

最初の実際の支払いが行われた後、厳格なサンドボックス支払いポリシーが有効になります。サンドボックスモードでの支払いは、パブリッシャーアカウント > 会社設定 > ユーザーで指定されたユーザーのみが利用できます。

エクソラとライセンス契約を締結した後にのみ、仮想通貨と仮想アイテムを実際通貨で購入することができます。これを行うには、パブリッシャーアカウントでの会計 > 利用許諾契約セクションに移動し、契約書フォームに記入し、確認を待ちます。契約書の確認には、最大で3営業日かかる場合があります。

サンドボックスモードを有効/無効にするには、迅速で購入カート購入のリクエストに含まれるsandboxパラメータの値を変更する必要があります。サンドボックスモードは、デフォルトではオフになっています。

ユーザーの注文状況を取得

ユーザーの注文状況を取得するには、以下の方法を使用します:

  1. サーバー側でウェブフックを利用する
  2. クライアント側でWebSocket APIまたはIGS&BB APIを使用する

ウェブフックを利用してサーバーサイドでユーザーの注文状況を取得する

サーバーにウェブフックを構成した後、それを使って注文の詳細やステータスを取得することができます。

WebSocket APIまたはIGS&BB APIを経由して、クライアント側でユーザーの注文状況を取得する

サーバーがない場合、またはクライアント側で購入処理のロジックを実装している場合は、次のメソッドを使用できます:

  1. WebSocket API
  2. Short-polling

WebSocket API

このメソッドでは、ウェブソケットを使用して、注文自体の詳細な情報を受け取ることなく、注文状況を取得することができます。この方法が望ましい理由は、エクソラクライアントとサーバーの間で1つの接続を確立するだけなので、クライアントやサーバーに追加の負荷がかかることはありません。

次の手順を完了します:

  1. WebSocketサーバーとクライアントが注文状態のメッセージを識別できるように、チャネル識別子を作成します(パラメータの順序が重要です):Channel_id: order_id=$orderId&project_id=$projectId
  2. チャンネル登録するには、WebSocketプロトコルでURLに接続します:wss://store-ws.xsolla.com/sub/order/status?order_id=$orderId&project_id=$projectId。メッセージ本文には、注文IDと注文状況が記載されます:

Copy
Full screen
Small screen

{
"order_id": int,
"status": string
}

以下の注文状況があります:

  • New — オーダーは作成されたが未払いである
  • Paid — 注文は支払われる
  • Done — 注文が配信されたこと(すべての領収書の送付、エクソラ側での配信、外部プラットフォームでの配信、など)
  • Canceled — 注文がキャンセルされ、代金がユーザーに返金される

ウェブソケット経由の応答に必要な時間は5分です。その後、またはウェブソケットに問題がある場合は、ショートポーリングを使用することが推奨されます。

ショートポーリング

ステータスを切り替えた後のオーダーのアイテムの詳細情報を取得するには、注文を取得するAPIを呼び出します。

お知らせ
定期的な注文状況のポーリングが使用されます。これは、注文状況と注文に関する情報を受信する単純なHTTPリクエストです。リクエスト間の推奨遅延時間は3秒です。
進捗状況
ご意見ありがとうございました!
最終更新日: 2023年3月20日

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

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