Xsolla-logo
  • 문서화
  • 계정 생성

주문 취소Webhook POST

엑솔라는 다음 조건이 충족되면 지정된 URL로 order_canceled 웹훅을 전송합니다.

  1. 사용자나 파트너가 결제를 취소하였거나 결제가 자동으로 취소되었습니다.
  2. 엑솔라에서 refund 웹훅의 성공적인 처리에 대한 응답을 받았습니다.

order_canceled 웹훅에는 반품된 아이템에 대한 정보와 취소된 거래의 세부 정보가 포함되어 있습니다.

다음과 같은 경우 order_canceled 웹훅이 전송되지 않습니다.

  • 결제에 실패했습니다. 결제 실패 예시:
    • 결제 양식이 열렸지만 사용자가 주문을 결제하지 않았습니다.
    • 결제창이 열렸으나 결제 중 오류가 발생했습니다.
  • refund 웹훅의 성공적인 처리에 대한 응답을 받지 못했습니다.

order_canceled 웹훅의 처리 속도는 3초 이내로 하는 것이 좋습니다.

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_good, virtual_currency, game_key, bundle. 인게임 재화 패키지 등 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이면 항목이 사전 판매됩니다.

custom_attributes
object <json>

아이템 특성 및 값이 포함된 JSON 개체입니다.

required
object

주문에 대한 정보입니다.

id
required
integer

엑솔라 측에서 사용자 주문의 고유 식별자입니다.

mode
required
string

결제 모드. 실제 결제에는 default를 사용합니다. 테스트 결제에는 sandbox를 사용합니다.

Enum: "default" "sandbox"
currency_type
required
string

결제 통화 유형. 무료 주문의 경우 unknown 값이 지정됩니다.

Enum: Description
real

실질 화폐

unknown

무료 주문

virtual

인게임 재화

currency
required
string

주문 통화. 가상 화폐는 SKU를 사용하고 실제 화폐는 3글자 ISO 4217 코드를 사용합니다.

amount
required
string

선택한 통화를 기준으로 한 장바구니의 총 비용입니다.

status
required
string

주문 상태.

platform
required
string or null

결제 플랫폼. 엑솔라를 통한 결제에 xsolla 값을 사용합니다. 다른 결제의 경우 playstation_network, xbox_live, pc_standalone, nintendo_shop, google_play, app_store_ios, android_standalone, ios_standalone, android_other, ios_other, pc_other와 같이 게임 퍼블리싱 플랫폼의 이름에 해당하는 값을 사용합니다.

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_canceled",
    "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"
          }
      },
      {
        "sku": "virtual-good-item_test_test_new",
        "type": "bundle",
        "is_pre_order": false,
        "quantity": 1,
        "amount": "1000",
        "promotions": []
      },
      {
        "sku": "gold",
        "type": "virtual_currency",
        "is_pre_order": false,
        "quantity": 1500,
        "amount": "[null]",
        "promotions": []
      }
    ],
    "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": "email@example.com"
    }

}'