This guide explains how to process data for item delivery requests sent by the STOVE Billing middleware to the game server after payment completion.
This functionality must be implemented on the game server when using the STOVE Billing system.
Calls are made via RESTful API. Refer to the basic API information below for details on the transmitted data.
When a user's payment is complete, the STOVE Billing middleware sends the product information required for item delivery and the game item information (json) to the game server URL registered with Partners.
The game server must receive this delivery information -> process the delivery to the user -> and respond with the delivery result to the billing middleware.
•
If the purchased item includes game items among the delivered goods/items, the Payment Completion Notification API is used to transmit the completed payment item information and the game item information to be delivered.
Note) The TID (STOVE Billing Payment Order Number) transmitted via the API must be stored and managed by the game server to prevent duplicate deliveries or missed deliveries.
*** Translated with www.DeepL.com/Translator (free version) ***
Basic Information
POST Register URL through Partners
Host:
https://I-api.onstove.com (LIVE)
https://I-api.gate8.com (SB)
Content-Type: application/json
JavaScript
복사
Request
Header
Name | Type | Required | Default Value | Example | Description |
caller-id | String | Y | - | clientapp | API Caller Information |
Path Variable
Name | Type | Required | Default Value | Example | Description |
service_id | String | Y | - | STOVE_QA | Game ID (Issued by STOVE - game_id) |
Body
Name | Type | Required | Default Value | Example | Description |
bill_platform_type | string(16) | Y | - | Platform type used for payment (required for validation)
-ONLINE: Online billing
-SHOP: Store | |
noti_type | string(32) | Y | - | Notification Category
-ONLINE_PURCHASE : Online General Product Purchase | |
world_id | string(30) | N | - | World (Server) Classification | |
guid | string(50) | Y | - | - | Stove Member GUID (Game-specific Unique User ID). Required except for games without GUIDs (single-player games). |
member_no | long | Y | - | Member Number | |
character_no | string(20) | N | - | Unique keys issued per game character (issued by STOVE) | |
txn_time | long | Y | - | Payment time(Unix Timestamp UTC-0) | |
data | json object | Y | - | Detailed Data |
data(온라인 일반상품)
Name | Type | Required | Default Value | Example | Description |
tid | string(20) | Y | - | T202202103125 | Order number issued by Stove Billing |
product_id | string(20) | Y | - | p1002 | Product codes registered on the Stove platform |
product_currency | string(3) | Y | - | KRW, USD | The currency of the amount |
product_price | decimal | Y | - | 1100, 0.99 | Transaction amount |
inservice_item_id | string(30) | Y | - | cp7892 | In-game item ID |
service_order_id | string(20) | N | - | Game payload sent to the payment server during payment requests (currently unsupported specification) |
supply_items
Name | Type | Required | Default Value | Example | Description |
service_item_code | string(30) | Y | - | - | Item Code - Item codes provided within the game |
total_amount | String | Y | - | - | Payment quantity - Minimum 1 or more |
item_desc | string(100) | N | - | - | Item Additional Information/Description - Registered with Partners |
Response
Body
Name | Type | Required | Default Value | Example | Description |
code | Integer | Y | - | 0 | - Response code (0: Success) - If duplicate receipt (already processed) occurs, return -1 or 0 |
message | String | Y | - | OK | Response message |
Sample
Request
curl --location --request POST'Register URL through Partners' \
--header 'caller-id: {{caller-id}}'
Online General Merchandise
{
"bill_platform_type": "ONLINE",
"noti_type": "ONLINE_PURCHASE",
"member_no": "265265",
"txn_time" : 1644807685000,
"data": {
"tid": "1909091033503333452",
"product_id": "test_1",
"product_price": 5000.0,
"product_currency": "KRW",
"inservice_item_id": "test_1",
"service_order_id": "testtest_1234"
}
Mobile General Products / OOAP Products
{
"bill_platform_type": "MOBILE",
"noti_type": "IAP_PURCHASE",
"character_no": "67891",
"member_no": "67891",
"world_id": "world_1",
"txn_time" : 1644807685000,
"data": {
"tid": "1909091033503333452",
"pay_type": "INAPP",
"market_code": "GOOGLE_PLAY",
"market_product_id": "google_test_1",
"product_id": "test_1",
"product_price": 5000.0,
"product_currency": "KRW",
"product_tier": 1,
"inservice_item_id": "test_1",
"service_order_id": "testtest_1234",
"supply_items": [
{
"service_item_code": "potion_h",
"total_amount": 2,
"item_desc": ""
}]
}
}
Mobile Subscription Products
{
"bill_platform_type": "MOBILE",
"noti_type" : "IAP_SUBSCRIPT",
"character_no" : "67891"
"member_no" : "67891",
"world_id" : "world_1",
"txn_time" : 1644807685000,
"data":{
"tid": "1909091033503333452",
"original_tid": "o1909091033503333452",
"pay_type":"SUBSCRIPTION",
"market_code":"GOOGLE_PLAY",
"market_product_id":"google_test_1",
"product_id": "test_1",
"product_price":5000.0,
"product_currency":"KRW",
"product_tier" : 1,
"inservice_item_id":"test_1",
"subs_status_code" : "PURCHASE",
"expire_time" : 2478329479,
"market_subscript_status":"7"
}
}
Plain Text
복사
Response
{
"code": 0,
"message": "OK"
}
Plain Text
복사
Return Code
HTTP Status code | response_code | response_message | Description |
200 | 0 | OK | Success |
500 | 500 | Internal Server Error | Internal server error |
