決済ソリューション / 概要
  ドキュメントに戻る

決済ソリューション

注文状況追跡のセットアップ

ユーザーにアイテムを付与するには、支払いが成功したことを確認する必要があります。

注意
アプリケーションのクライアント側とサーバー側の両方で注文ステータスを追跡できます。ただし、完了した購入の追加の検証を実装するために、アプリケーションのバックエンドで支払いウェブフックハンドラを設定することをお勧めします。これにより、注文情報を受け取ることができます。

注文状況を追跡する方法を選択します:

エクソーラデータにアクセスするために、プロジェクトに最も適した方法を選択してください:

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

  1. WebSocket API
  2. ショートポーリング

お知らせ
テスト用ウェブアプリケーションを実装例として使用します:

WebSocket APIを使用してクライアント側で注文状況の取得

このソリューションでは、websocketを使用して、注文の詳細情報を取得せずに注文状況を取得します。このメソッドが推奨されます:クライアント(例えば、ウェブサイトやモバイルアプリケーション)とエクソーラサーバー間には1つの接続しか作成されないため、クライアントやサーバーへの追加の負荷は発生しません。

お知らせ
ウェブフックを処理する独自のサーバーがない場合や、クライアントサイドの購入処理ロジックを使用する場合は、Centrifuge SDKを使用してWebSocket APIを使用することができます。

以下の手順を完了してください:

  1. エクソーラのwebsocketサーバーとクライアントが注文状況メッセージを識別できるようにするために、接続を作成します:

Copy
Full screen
Small screen
const client = new Centrifuge(
connectionURL,
{
data: {
  user_external_id: user_external_id,
  auth: auth,
  project_id: project_id
}
}
)
connectionURL - wss://ws-store.xsolla.com/connection/websocket
auth - user JWT token
  1. 注文状況に関する新しいメッセージを受信するには、client.on関数を使用してイベントを登録します:
Copy
Full screen
Small screen
client.on('publication', (ctx) => {
   //handle the status
});
  1. 実際の接続確立をトリガーします:
Copy
Full screen
Small screen
client.connect()
  1. 注文状況の変更履歴を受信するには、API履歴メソッドに接続してください。
Copy
Full screen
Small screen
client.on('subscribed', function (ctx) {
   client.history(ctx.channel, { limit: -1, since: { offset: 0 }, reverse: false }).then(function (resp) {
resp.publications.forEach((ctx) => {
   /handle the status
});

   }, function (err) {
       //handle the status
   });
});

メッセージ本文の例

Copy
Full screen
Small screen
{
order_id: 59614241,
status: 'new'
}

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

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

Websocketの使用に関する推奨事項:

  • Websocket経由の応答待ち時間は最大5分です。
  • 決済インターフェースを開くときに接続を確立する必要があります。
  • 最終的な注文ステータスがCanceledまたはDoneになったら、接続を中止する必要があります。
  • WebSocket の寿命が切れた場合、または接続に問題がある場合は、ショートポーリングを使用します。

    ショートポーリング

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

    お知らせ
    定期的な注文状況のポーリングが使用されます。これは、注文状況と注文に関する情報を受信する単純なHTTPリクエストです。リクエスト間の推奨遅延時間は3秒です。
この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
最終更新日: 2025年1月23日

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

問題を報告する
当社は常にコンテンツを見直しています。お客様のご意見は改善に役立ちます。
フォローアップ用のメールをご提供してください
ご意見ありがとうございました!
フィードバックを送信できませんでした
後でもう一度お試しいただくか、doc_feedback@xsolla.comまでお問い合わせください。