Xsolla-logo

注文支払い成功Webhook POST

Xsollaは、次の条件が満たされると、指定されたURLにorder_paidウェブフックを送信します:

  1. ユーザーは注文の支払いに成功しました。
  2. Xsollaは、paymentウェブフックの正常な処理に関する応答を受 け取りました。

order_paidウェブフックには、購入したアイテムとトランザクションの詳細に関する情報が含まれています。

以下の場合、order_paidウェブフックは送信されません:

  • 決済が失敗しました。例:
    • 決済フォームは開かれましたが、ユーザーは注文の支払いをしていません
    • 決済フォームが開かれましたが、支払い中にエラーが発生しました
  • paymentウェブフックの正常な処理に関する応答が受信されていません 。

order_paidウェブフックの処理速度は3秒未満にすることをお勧めします。

予想される回答は、「応答」セクションに記載されています。他の応答コードを使用できます。応答コードと自動返金機能の接続に応じて、Xsolla’側のウ ェブフック処理ロジックは以下のようになります:

応対コード 自動返金は無効になっています(デフォルト) 自動返金が有効になっています
400401402403404409422415 操作なし ユーザーへの自動返金
200201204 操作なし 操作なし
別のコードまたはウェブフックへの応答なし 指定された時間間隔内に複数のウェブフックが送信されます。5分間隔で2回、15分間隔で7回、60分間隔で10回試行されます。 指定された時間間隔内に複数のウェブフックが送信されます。5分間隔で2回、15分間隔で7回、60分間隔で10回試行されます。すべてのウェブフックが送信されても正常な応答が受信されない場合、ユーザーに自動返金が発行されます。

自動返金機能を接続するには、プロジェクトのアカウントマネージャーに連絡するか、am@xsolla.comまでお問い合わせください。

Request
Request Body schema: application/json
notification_type
required
string

通知タイプ。

required
Array of objects

ユーザーが購入したアイテムのリスト。

Array
sku
required
string

アイテムの一意のID。「game_key」タイプのアイテムの場合、「sku_drm」形式の値が使用されます。

type
required
string

アイテムタイプ。次の値を持つことができます:virtual_goodvirtual_currencygame_keybundle。仮想通貨パッケージを含む「bundle」タイプのアイテムの場合、アイテムの配列は次のように表示されます:

  • バンドルまたは仮想通貨パッケージのパラメータ
  • バンドルに含まれるアイテムまたはパッケージに含まれる通貨
Enum: "virtual_good" "virtual_currency" "game_key" "bundle"
quantity
required
integer

アイテムの数量。

amount
required
string

数量に応じた商品の合計金額です。為替レートや手数料の関係で、商品価格と異なる場合があります。

required
Array of objects

適用されたプロモーション。プロモーションが適用されていない場合は、パラメータに空の配列が渡されます。

Array
amount_with_discount
string

割引なしのアイテムの総費用。

amount_without_discount
string

割引なしのアイテムの総費用。

sequence
integer

プロモーションアプリケーションの注文。

is_pre_order
required
boolean

true」の場合、アイテムは先行予約です。

is_free
required
boolean

true」の場合、アイテムは無料であるか、バンドルに属しています。

is_bonus
required
boolean

true」の場合、アイテムはボーナスです。

is_bundle_content
required
boolean

true」の場合、アイテムはバンドルに属しています。

custom_attributes
object <json>

アイテムの属性と値を含むJSONオブジェクト。

required
object

注文に関する情報。

id
required
integer

Xsolla側でのユーザーの注文の一意の識別子。

mode
required
string

決済モード。defaultは実際の支払いに、sandboxはテスト支払いに使用されます。

Enum: "default" "sandbox"
currency_type
required
string

決済通貨のタイプ。無料注文の場合はunknownの値が指定されています。

Enum: Description
real

実際通貨の場合

unknown

無料注文の場合

virtual

仮想通貨の場合

currency
required
string

注文の通貨。仮想通貨はSKUを使用し、実際通貨は3文字のISO4217コードを使用します。

amount
required
string

選択された通貨に基づくカートの合計金額です。

status
required
string

注文状況。

platform
required
string or null

決済プラットフォーム。xsolla値は、Xsollaを介した支払いに使用されます。その他の支払いについては、ゲームパブリッシングプラットフォームの名前に対応する値が使用されます。

Enum: "xsolla" "playstation_network" "xbox_live" "pc_standalone" "nintendo_shop" "google_play" "app_store_ios" "android_standalone" "ios_standalone" "android_other" "ios_other" "pc_other"
comment
required
string or null

注文に対するユーザーの解説。

invoice_id
required
string or null

実際通貨決済の請求書ID。仮想通貨の決済また無料アイテムは、nullの値を使用します。

required
Array of objects

適用されたプロモーション。プロモーションが適用されていない場合は、パラメータに空の配列が渡されます。

Array
amount_with_discount
string

割引なしのアイテムの総費用。

amount_without_discount
string

割引なしのアイテムの総費用。

sequence
integer

プロモーションアプリケーションの注文。

Array of objects

適用されたクーポン。クーポンが適用されていない場合は、配列は返されません。

Array
code
string

適用されたクーポンのコードです。

external_id
string

外部ID。

Array of objects

適用されたプロモーションコード。プロモーションコードが適用されていない場合、配列は返されません。

Array
code
string

適用されたプロモーションコードのコードです。

external_id
string

外部ID。

required
object

ユーザー情報。

external_id
required
string

ユーザーID。

email
required
string

ユーザーのメールアドレス。

custom_parameters
object

追加情報。

Responses
200

処理の成功を示すために戻ります。

400

提供された情報(たとえば、必要なパラメーターの欠落、認可の失敗など。)にエラーが発生した場合に戻ります。

Request samples
curl -v 'https://your.hostname/your/uri' \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \
-d '{
    "notification_type": "order_paid",
    "items": [
      {
        "sku": "virtual-good-item_test",
        "type": "virtual_good",
        "is_pre_order": false,
        "quantity": 3,
        "amount": "1000",
        "promotions": [
          {
            "amount_without_discount": "6000",
            "amount_with_discount": "5000",
            "sequence": 1
          },
          {
            "amount_without_discount": "5000",
            "amount_with_discount": "4000",
            "sequence": 2
          }
        ]
        "custom_attributes":
          {
            "purchased": 0,
            "attr": "value"
          },
        "is_free": false,
        "is_bonus": false,
        "is_bundle_content": false
      },
      {
        "sku": "virtual-good-item_test_test_new",
        "type": "bundle",
        "is_pre_order": false,
        "quantity": 1,
        "amount": "1000",
        "promotions": [],
        "is_free": false,
        "is_bonus": false,
        "is_bundle_content": false
      },
      {
        "sku": "gold",
        "type": "virtual_currency",
        "is_pre_order": false,
        "quantity": 1500,
        "amount": "[null]",
        "promotions": [],
        "is_free": true,
        "is_bonus": false,
        "is_bundle_content": true
      }
    ],
    "order": {
      "id": 1,
      "mode": "default",
      "currency_type": "virtual",
      "currency": "sku_currency",
      "amount": "2000",
      "status": "paid",
      "platform": "xsolla",
      "comment": null,
      "invoice_id": "1",
      "promotions": [
        {
          "amount_without_discount": "4000",
          "amount_with_discount": "2000",
          "sequence": 1
        }
      ],
      "promocodes": [
        {
          "code": "promocode_some_code",
          "external_id": "promocode_sku"
        }
      ],
      "coupons": [
        {
          "code": "WINTER2021",
          "external_id": "coupon_sku"
        }
      ]
    },
    "user": {
      "external_id": "id_xsolla_login_1",
      "email": "gc_user@xsolla.com"
    }

}'