ซิงค์กับรายการ
รายการ Hive เป็นระบบที่จัดเตรียมไว้เพื่อจัดการฟังก์ชันการชำระเงิน/การเรียกคืนของสกุลเงินหรือรายการในเกม การรวม Hive ช่วยให้สามารถให้หรือเรียกรายการได้ร่วมกับระบบคูปอง, กิจกรรม, แผนผังข้อเสนอ, CPI เป็นต้น ในสำนักงานหลังบ้านของผู้ดูแลระบบ สามารถให้/เรียกรายการด้วยตนเองหรือค้นหาประวัติได้
Note
- API การขอรับ/กู้คืนรายการ ทำงานในลักษณะอะซิงโครนัสและตอบสนองเพียงการกำหนดความสำเร็จหรือความล้มเหลวของการลงทะเบียนข้อมูลคำขอเมื่อมีการเรียก API.
- การตอบสนองต่อ การดำเนินการประมวลผลจริง เช่น การเรียก API ของเซิร์ฟเวอร์เกมสามารถตรวจสอบได้ในเมนู Hive console ภายใต้การเรียกเก็บเงิน > Hive รายการ > คำขอการขอรับ/กู้คืน หรือ บันทึกความสำเร็จในการขอรับ/กู้คืน โดยการค้นหาสิ่งที่เกี่ยวข้องและคลิกที่ สถานะ ในหน้าต่างป๊อปอัพผลการค้นหา.
- รายการ Hive ต้องการการจัดการการจราจรขนาดใหญ่ ดังนั้นหากเวลาในการตอบสนองเฉลี่ยของเซิร์ฟเวอร์แอปของนักพัฒนามากกว่า 0.5 วินาที อาจทำงานในคิวแยกต่างหากแทนที่จะเป็นคิวหลัก ในกรณีนี้อาจเกิดความล่าช้าอย่างมีนัยสำคัญในการประมวลผลการขอรับรายการ เพื่อให้แน่ใจว่าการประมวลผลการขอรับรายการเป็นไปอย่างราบรื่น แนะนำให้รักษา เวลาในการตอบสนองเฉลี่ยของเซิร์ฟเวอร์แอปของนักพัฒนาต่ำกว่า 0.5 วินาที.
ข้อกำหนดการเตรียมการรวม¶
ในการรวมกับ Hive รายการ คุณต้องลงทะเบียน URL เซิร์ฟเวอร์เกมและรายการในเมนู การจัดการรายการ Hive ก่อน
API การขอชำระเงิน/การกู้คืน¶
ตรวจสอบพื้นฐานของ API การขอชำระเงิน/คืนเงิน¶
วิธีการสื่อสาร API¶
- API การขอรับเงินช่วยเหลือ/การกู้คืนให้บริการการสื่อสารสองประเภท: การสื่อสารผ่าน HTTP และการสื่อสารแบบ JSON String ผ่านซ็อกเก็ต.
- มันขอรับเงินช่วยเหลือหรือการกู้คืนในรูปแบบ JSON String จากเซิร์ฟเวอร์เกมไปยัง Hive item.
- เซิร์ฟเวอร์เกมจะส่งผลลัพธ์กลับในรูปแบบ JSON String ไปยัง Hive item.
- ผลลัพธ์การตอบสนองรวมถึงรหัสการประมวลผลและข้อความ.
- JSON String ทั้งหมดต้องเข้ารหัสในรูปแบบ UTF8.
วิธีการสมัครเกม¶
- ก่อนที่บริการจะเปิดใช้งาน เซิร์ฟเวอร์ทดสอบจะถูกใช้เพื่อส่งผลการทดสอบการรวม และหลังจากที่บริการเปิดใช้งาน เซิร์ฟเวอร์การผลิตจะถูกใช้
- แม้ว่าเกมจะเปิดให้บริการแล้ว ก็ต้องรวมเข้ากับเซิร์ฟเวอร์ทดสอบ
- รายการทั้งหมดจะถูกจัดเตรียมผ่านกล่องจดหมาย
- หากต้องการข้อความแสดงผลสำหรับผู้ใช้ในกล่องจดหมาย โปรดดูที่ Request Specification > Request Reason เซิร์ฟเวอร์เกมต้องจัดการข้อความแสดงผลตามแต่ละภาษา
- การขอรายการจะถูกส่งทีละรายการต่อผู้ใช้ การขอหลายรายการเพื่อมอบ/ดึงรายการสามารถส่งได้พร้อมกัน แต่การขอเดียวต้องได้รับการประมวลผลภายในธุรกรรมเดียว หากการมอบ/ดึงรายการหนึ่งรายการล้มเหลว ให้ดำเนินการตอบกลับด้วยความล้มเหลหลังจากการย้อนกลับทั้งหมด
การปล่อยไฟร์วอลล์เซิร์ฟเวอร์เกม¶
ในการสื่อสารกับเซิร์ฟเวอร์ คุณต้องปิดกฎไฟร์วอลล์ขาเข้าสำหรับ IP ด้านล่างบนเซิร์ฟเวอร์เกม
- 52.79.76.25
- 3.37.22.75
- 43.133.238.219 (เซิร์ฟเวอร์แซนด์บ็อกซ์)
การตรวจสอบสุขภาพเซิร์ฟเวอร์เกม¶
Hive รายการส่งรายละเอียดต่อไปนี้ไปยัง API ขออนุญาต/เพิกถอนเพื่อตรวจสอบสถานะของเซิร์ฟเวอร์เกม เซิร์ฟเวอร์รายการ Hive จะส่งสิ่งนี้ไปยังเซิร์ฟเวอร์เกมสองครั้งในช่วงเวลา 5 นาทีใน Request Body.
{"transactionId":"","idCategory":"","id":"","detail":[{"action":"","assetCode":"","amount":0}],"reason":""}
เซิร์ฟเวอร์เกมที่รับเนื้อหาข้างต้นอาจพบข้อผิดพลาดในการตรวจสอบความถูกต้อง และในกรณีนี้ ควรตอบสนองด้วยข้อมูลข้อผิดพลาดในฟิลด์รหัสและข้อความของค่าการตอบสนอง Hive รายการไม่ได้กำหนดค่ารหัสเพียงอย่างเดียว หากฟิลด์รหัสและข้อความมีอยู่ เซิร์ฟเวอร์เกมถือว่าปกติ; หากไม่มี เซิร์ฟเวอร์เกมถือว่าอยู่ในสถานะผิดปกติ
การตรวจสอบค่า Apihash¶
เซิร์ฟเวอร์เกมสามารถตรวจสอบข้อมูลที่ได้รับจากเซิร์ฟเวอร์ไอเท็ม Hive ผ่านค่า Apihash ใน Header ก่อนที่จะตรวจสอบค่าแฮช จำเป็นต้องแปลงข้อมูล Request Body ที่ได้รับจากเซิร์ฟเวอร์ไอเท็ม Hive เป็น JSON encode หรือ unicode (ดูที่ตัวอย่างโค้ด) 
 โดยการผสมผสานพรีฟิกซ์ของข้อกำหนดการร้องขอและค่าที่แปลงเป็น JSON String (พรีฟิกซ์ + JSON String) จะสร้างค่าแฮชในรูปแบบ SHA1 และค่านี้จะถูกเปรียบเทียบกับค่า Apihash เพื่อการตรวจสอบ
- ตัวอย่างโค้ด
    // Example of a transformed JSON String (add a line and spaces for readability)
 {
    "transactionId": "123456789",
    "idCategory": "player_id",
    "id": "1004",
    "detail": [
        {
            "action": "p",
            "assetCode": "gem",
            "amount": 1
        }
    ],
    "reason": "td",
    "subReason": "",
    "userMessage": "",
    "templateMessage": {
        "ko": {
            "title": "HIVE Item uc9c0uae09 uba54uc138uc9c0 QA ud55cuad6d",
            "body": "HIVE Item uc9c0uae09 uba54uc138uc9c0 QA ud55cuad6duc5b4 ub178ucd9c"
        }
    },
    "serverId": "kr",
    "additionalinfo": "",
    "gameIndex": 539
}
API การขอชำระเงิน/คืนเงิน สำหรับวิธีการสื่อสาร HTTP¶
API การชำระเงิน/การเรียกคืนจะสื่อสารกับเซิร์ฟเวอร์เกม (URL) ที่ตั้งไว้ใน Hive Console > Billing > Items > Item Registration เมนูผ่านโปรโตคอล HTTP และวิธีการส่งข้อมูลคำขอคือ POST.
ข้อกำหนดการร้องขอ (hive item -> game server)¶
HTTP Header : Apihash
- เพื่อยืนยันข้อมูล ให้ส่งค่าแฮชพร้อมกับคีย์ Apihash.
- ใช้ SHA1 สำหรับค่าแฮช (เพิ่มคำนำหน้า !@#COM2US!@# ลงในสตริง JSON ของร่าง)
เนื้อหาคำขอ (Hive item -> เซิร์ฟเวอร์เกม)
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น (จำเป็น: M, ไม่จำเป็น: O) | 
|---|---|---|---|
| transactionId | ตัวระบุเพื่อแยกแยะคำขอแต่ละรายการ (สำหรับการตรวจสอบคำขอซ้ำ) รายละเอียด | String | M | 
| idCategory | ประเภทผู้ใช้ Hive (ใช้ค่าคงที่ player_id) | String | M | 
| id | รหัสผู้ใช้ Hive (player_id) | String | M | 
| detail | อาร์เรย์ของวัตถุสำหรับสามรายการด้านล่าง | Array | M | 
| ㄴaction | ว่าจะอนุญาต/เพิกถอน 
 | String | M | 
| ㄴassetCode | รหัสสำหรับรายการที่จะอนุญาต | String | M | 
| ㄴamount | จำนวนที่จะอนุญาต | Integer | M | 
| reason | เหตุผลสำหรับคำขอ รายละเอียด | String | M | 
| subReason | เหตุผลสำหรับคำขอ รายละเอียด | String | O | 
| serverId | เซิร์ฟเวอร์ที่ผู้ใช้เป้าหมายเชื่อมต่ออยู่ (ตัวระบุเซิร์ฟเวอร์) | String | M | 
| additionalinfo | ข้อมูลเพิ่มเติมที่ส่งจากไคลเอนต์ไปยังเซิร์ฟเวอร์เกม (ทั้งหมดเป็นตัวพิมพ์เล็ก) (ในรูปแบบ JSON String) | String | O | 
| duration | ระยะเวลาการเก็บรักษาในกล่องจดหมาย (ไม่จำเป็น) รายละเอียด 
 | Integer | O | 
| userMessage | ข้อความการอนุญาตรายการ (ข้อความคงที่) เข้ากันได้กับเกมเก่าที่ไม่ใช้ templateMessage | String | O | 
| templateMessage | ข้อความที่ตั้งไว้สำหรับข้อความการอนุญาตรายการ คีย์ข้อมูลคือรหัสภาษา ค่าเป็นข้อความ (หัวข้อ) และเนื้อหา (อย่างไรก็ตาม หากมีข้อมูลอยู่ รูปแบบเริ่มต้นคือ Object และหากว่างเปล่าจะแสดงเป็น String ว่าง) | Object | O | 
| gameIndex | หมายเลขประจำสำหรับแต่ละเกมในศูนย์แอป Hive | Integer | M | 
transactionid¶
- มันระบุได้ว่าคำขอได้ถูกประมวลผลแล้วโดย transactionId หรือไม่ (ป้องกันการชำระเงิน/การเก็บเงินซ้ำ)
- ในกรณีที่มีคำขอซ้ำ ค่าการตอบกลับจะระบุรายละเอียดที่เกี่ยวข้อง (ดูที่ข้อกำหนดการตอบกลับ)
เหตุผล¶
Note
รายละเอียดในฟิลด์เหตุผลอาจถูกเพิ่ม/เปลี่ยนแปลงในภายหลัง ดังนั้นเหตุผลสำหรับคำขอนี้ควรใช้เพื่อวัตถุประสงค์ในการอ้างอิงเท่านั้น。
| ชื่อฟิลด์ | คำอธิบาย | 
|---|---|
| pe | ข้อผิดพลาดการชำระเงิน | 
| rge | ข้อผิดพลาดเกมรางวัล | 
| rcd | ความไม่พอใจของผู้บริโภครางวัล | 
| rce | ข้อผิดพลาดคูปองรางวัล | 
| ro | รางวัลต่างประเทศ | 
| ae | การแลกเปลี่ยนสินทรัพย์ | 
| e | เหตุการณ์ | 
| ea | เหตุการณ์อัตโนมัติ | 
| mc | คูปองจำนวนมาก | 
| uc | คูปองเฉพาะ | 
| b | การเรียกเก็บเงิน * HIVE IAP v2 | 
| lb | การเรียกเก็บเงิน Lebi | 
| co | Cpi Offerwall | 
| p | โปรโมชั่น * ใช้เหมือนกันสำหรับ Cross Banner, Offerwall, UA | 
| sr | รางวัลสตรีมมิ่ง | 
| tcs | ทดสอบ CS | 
| tgm | ทดสอบ GM | 
| tpm | ทดสอบ PM | 
| tqa | ทดสอบ QA | 
| td | ทดสอบนักพัฒนา | 
| tg | ทดสอบตลาด, ธุรกิจ | 
| tmb | ทดสอบต่างประเทศ (ทดสอบนักพัฒนา) | 
| re | ดึงข้อมูล ฯลฯ | 
| rr | ดึงข้อมูลการคืนเงิน | 
| mr | คำขอจำนวนมาก | 
| etc | ฯลฯ | 
สาเหตุย่อย¶
| เหตุผล | เหตุผลย่อย | คำอธิบาย | 
|---|---|---|
| p | รายละเอียดการขอส่งเสริมการขาย | |
| 1 | CPI แบนเนอร์ทั่วไปข้าม | |
| 2 | CPA แบนเนอร์ทั่วไปข้าม | |
| 3 | CPI แบนเนอร์ด้านหน้า | |
| 4 | CPA แบนเนอร์ด้านหน้า | |
| 5 | CPI แบนเนอร์ข้อเสนอทั่วไป | |
| 6 | CPA แบนเนอร์ข้อเสนอทั่วไป | |
| 7 | CPI แบนเนอร์ข้อเสนอพิเศษ | |
| 8 | CPA แบนเนอร์ข้อเสนอพิเศษ | |
| 9 | UA CPI | |
| 10 | UA CPA | |
| 11 | UC CPI | 
การจำแนกฟีเจอร์โปรโมชั่น
- การโปรโมตข้าม: ผู้ใช้สามารถโฆษณาเกมอื่นในเกมปัจจุบันที่พวกเขากำลังเล่นในรูปแบบของแบนเนอร์และกำแพงข้อเสนอ (สถานีชาร์จฟรี) แบ่งออกเป็นแบนเนอร์ปกติและแบนเนอร์แบบเต็มหน้าจอ
- กำแพงข้อเสนอ: กำแพงข้อเสนอจะแสดงรายการเกมที่ยังไม่ได้ติดตั้งบนอุปกรณ์ของผู้ใช้ในรูปแบบของแบนเนอร์ ผู้ใช้จะได้รับรางวัลเมื่อพวกเขาสัมผัสแบนเนอร์และติดตั้งเกมจากตลาดที่เชื่อมต่อ แบ่งออกเป็นกำแพงข้อเสนอปกติและกำแพงข้อเสนอพิเศษ
- UA/UC: ฟีเจอร์เชิญเกมที่ใช้โซเชียลมีเดียและรหัส QR UA เกี่ยวข้องกับผู้ใช้ที่เชิญและผู้ใช้ที่รับ ในขณะที่ UC รวมเฉพาะผู้ใช้ที่รับ UC สามารถใช้ในระหว่างการลงทะเบียนล่วงหน้า
วิธีการให้รางวัล
- CPI: รางวัลจะถูกมอบให้หลังจากที่เปิดเกมหลังจากการติดตั้ง
- CPA: รางวัลจะถูกมอบให้สำหรับการบรรลุเป้าหมายที่กำหนดระหว่างเกม สำหรับรายละเอียดเพิ่มเติม โปรดตรวจสอบที่ คู่มือการดำเนินการส่งเสริมการขาย
ระยะเวลา¶
- ระยะเวลาที่รายการที่ร้องขอถูกเก็บไว้ในกล่องจดหมายหลังจากออกสามารถตั้งค่าได้เป็นรายบุคคลสำหรับแต่ละรายการในสำนักงานหลัง
- เซิร์ฟเวอร์เกมจัดการในสามกรณีตามสถานการณ์- หากกุญแจไม่มีอยู่: จะใช้ค่าดีฟอลต์ที่ตั้งโดยเซิร์ฟเวอร์เกม (เช่น การเก็บข้อมูล 7 วันเป็นค่าเริ่มต้น)
- 1~9999: จะใช้หมายเลขที่ระบุเป็นจำนวนวัน (เช่น หากค่าคือ 14 หมายความว่าเก็บข้อมูล 14 วัน)
- -1: จะใช้ค่ามากที่สุดที่สามารถตั้งโดยเซิร์ฟเวอร์เกม (เช่น การเก็บข้อมูลถาวร)
 
ข้อกำหนดการตอบสนอง (เซิร์ฟเวอร์เกม -> ไอเท็มในรัง)¶
การตอบสนอง (เซิร์ฟเวอร์เกม -> Hive รายการ)
| ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น (จำเป็น: M, ไม่จำเป็น: O) | 
|---|---|---|---|
| รหัส | รหัสผลลัพธ์การประมวลผล รายละเอียด | จำนวนเต็ม | M | 
| ข้อความ | ข้อความผลลัพธ์การประมวลผล | สตริง | M | 
- รหัสข้อผิดพลาด
| รหัสโค้ด | คำอธิบาย | 
|---|---|
| 2xxxx | ไม่มีปัญหากับคำขอ การประมวลผลสำเร็จ | 
| ㄴ 20000 | ไม่มีปัญหากับคำขอ การประมวลผลสำเร็จ | 
| ㄴ 20001 | ไม่มีปัญหากับคำขอ ประมวลผลสำเร็จแล้ว (คำขอซ้ำ) หากมี transactionId ที่ประมวลผลปกติอยู่แล้ว | 
| 4xxxx | ข้อผิดพลาดในพารามิเตอร์คำขอ | 
| ㄴ 40001 | ข้อผิดพลาด JSON ในคำขอ | 
| ㄴ 40002 | ข้อผิดพลาดแฮช | 
| ㄴ 40003 | ขาดคีย์พารามิเตอร์ที่จำเป็น | 
| ㄴ 40004 | ข้อผิดพลาดในประเภทคีย์พารามิเตอร์ที่จำเป็น | 
| ㄴ 40005 | ค่าพารามิเตอร์ที่จำเป็นว่างเปล่า | 
| ㄴ 40006 | ค่าพารามิเตอร์ที่จำเป็นไม่ถูกต้อง (เช่น ลบ) | 
| 5xxxx | ข้อผิดพลาดในการประมวลผลของเซิร์ฟเวอร์ | 
| ㄴ 50001 | ผู้ใช้ที่ไม่มีอยู่ | 
| ㄴ 50004 | ข้อผิดพลาดในการลงทะเบียน DB | 
| ㄴ 50005 | ข้อผิดพลาดในพารามิเตอร์ (เช่น รหัสรายการที่ไม่มีอยู่) | 
- ตัวอย่างคำขอ
curl -L -v 
-d '{"transactionId":"27905","idCategory":"player_id","id":"828292","detail":[{"action":"p","assetCode":"gold","amount":500},{"action":"p","assetCode":"gem","amount":200}],"reason":"td","subReason":"","userMessage":"","templateMessage":{"ko":{"title":"\ud55c\uae00 \uba54\uc138\uc9c0","body":"\ud55c\uae00 \ub0b4\uc6a9"},"en":{"title":"English Message","body":"English Contents"}},"serverId":"GLOBAL","additionalinfo":"{\"character\":1}","gameIndex":539}' 
-H "Content-Type: text/html" 
-H "Apihash: 54e7a0fc8abfdba398e30213496c2d85ec6e0e06" 
https://sandbox-misample.com2us.net/hive/item
- ตัวอย่างคำขอ
> POST /hive/item HTTP/2
> Host: sandbox-misample.com2us.net
> user-agent: curl/7.68.0
> accept: */*
> content-type: text/html
> apihash: 54e7a0fc8abfdba398e30213496c2d85ec6e0e06
> content-length: 447
- ตัวอย่างการตอบกลับ
< HTTP/2 200
< server: nginx
< date: Tue, 12 Jul 2022 11:29:21 GMT
< content-type: application/json; charset=utf-8
<
* Connection #0 to host sandbox-misample.com2us.net left intact
{"status":"200","code":"20001","message":"this request has already been processed"}
ตัวอย่างคำขอ(PHP)
    // data request
$data = array(
    'transactionId'     => '12321',
    'idCategory'        => 'player_id',
    'id'                => '828292',
    'detail'            => array(
        array(
            'action'    => 's',
            'assetCode' => 'gold',
            'amount'    => 500,
        ),
        array(
            'action'    => 's',
            'assetCode' => 'gem',
            'amount'    => 200,
        ),
    ),
    'reason'            => 'p',
    'subReason'         => '3',
    'userMessage'       => '',
    'templateMessage'   => array(
        'ko' => array(
            'title' => '한글 메세지',
            'body'  => '한글 내용'
        ),
        'en' => array(
            'title' => 'English Message',
            'body'  => 'English Contents'
        ),
    ),
    'serverId'          => 'GLOBAL',
    'additionalinfo'    => '{"character":1}',
    'gameIndex'         => 539
);
$jsonData = json_encode($data); // convert to JSON
/******************************************************************** 
    Conversion result (add a line and spaces for readability) :
{
    "transactionId": "12321",
    "idCategory": "player_id",
    "id": "828292",
    "detail": [
        {
            "action": "s",
            "assetCode": "gold",
            "amount": 500
        },
        {
            "action": "s",
            "assetCode": "gem",
            "amount": 200
        }
    ],
    "reason": "p",
    "subReason": "3",
    "userMessage": "",
    "templateMessage": {
        "ko": {
            "title": "한글 메세지",
            "body": "한글 내용"
        },
        "en": {
            "title": "English Message",
            "body": "English Contents"
        }
    },
    "serverId": "GLOBAL",
    "additionalinfo": "{"character":1}",
    "gameIndex": 539
}
********************************************************************/
// set header as application/json & set hash 
$hash = sha1('!@#COM2US!@#' . $jsonData); 
$header = array(
    'Content-type: application/json',
    'Apihash: ' . $hash
);
$url = 'http://game.com2us.com/gms.php'; // game server url
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonData); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
$result = curl_exec( $curl );
curl_close( $curl );
// process the result data
$response = json_decode($result);
ตัวอย่างการตอบกลับ (PHP)
// php header declaration
header('Content-type: application/json');
// json Data
$rawData = file_get_contents('php://input');
//confirm Hash value
$hash = sha1('!@#COM2US!@#' . $rawData);
$requestHash = $_SERVER['Apihash'];
if ($requestHash != $hash) {
/*****************************************************************
Process if the hash value differs (optional to use hash)
*****************************************************************/
}
// Decode requested JSON data 
$requestData = json_decode($rawData, TRUE);
foreach ($requestData['detail'] as $item) {
/*****************************************************************
Process the asset as requested
*****************************************************************/
}
$returnData = array(
'code' => 50001,
'message' => 'user not exists',
);
//To avoid adding UTF-8BOM
ob_clean()
//Convert to JSON and send the response
echo json_encode($returnData);
/*****************************************************************
Conversion result (insert a line) :
{
"code" : 50001,
"message" : "user not exists"
}
*****************************************************************/
วิธีการสื่อสารผ่านซ็อกเก็ตสำหรับ API การขอชำระเงิน/คืนเงิน¶
API การชำระเงิน/การเรียกคืนที่ใช้ Socket ทำงานบน TCP/IP ซึ่งเป็นโปรโตคอลสำหรับการสื่อสารข้อมูลแบบแพ็กเก็ต โดยมีพอร์ตเริ่มต้นที่ 20080 ข้อมูลอยู่ในรูปแบบ JSON เดียวกันกับการสื่อสารผ่าน HTTP และลำดับไบต์เป็นลำดับไบต์เครือข่าย (Big-endian)
ข้อกำหนดแพ็กเก็ตคำขอ (รายการรังผึ้ง -> เซิร์ฟเวอร์เกม)¶
| ขนาดแพ็กเกจ | 4 ไบต์ | 4 ไบต์ | ตัวแปร | 4 ไบต์ | ตัวแปร | 
|---|---|---|---|---|---|
| คำอธิบาย | ความยาวแพ็กเกจทั้งหมด | ความยาวส่วนหัว | เนื้อหาส่วนหัว | ความยาวเนื้อหา | เนื้อหาของร่างกาย | 
- 4 ไบต์แรกแสดงถึงความยาวรวมของแพ็กเกจรวมถึง 4 ไบต์นี้ 
 ตัวอย่างเช่น หากส่วนหัวมีขนาด 46 ไบต์และเนื้อหามีขนาด 100 ไบต์ ดังนั้น 4+4+46+4+100 = 158 ไบต์
- 4 ไบต์ถัดไปแสดงถึงความยาวของส่วนหัวที่ตามมา
- ส่วนหัวอยู่ในรูปแบบสตริง JSON เดียวกันกับค่าแฮชในการสื่อสาร HTTP 
 ตัวอย่างเช่น,{"Apihash":"912ec803b2ce49e4a541068d495ab570"}
- 4 ไบต์สุดท้ายแสดงถึงความยาวของเนื้อหาที่ตามมา
- เนื้อหาอยู่ในรูปแบบสตริง JSON เดียวกันกับค่าคำขอในการสื่อสาร HTTP.
ข้อกำหนดแพ็กเก็ตการตอบกลับ (เซิร์ฟเวอร์เกม -> ไอเท็มฮีฟ)¶
| ขนาดแพ็กเกจ | 4 ไบต์ | ตัวแปร | 
|---|---|---|
| เนื้อหา | ความยาวทั้งหมดของแพ็กเกจ | เนื้อหา | 
- 4 ไบต์แรกระบุความยาวของแพ็กเก็ตทั้งหมด รวมถึง 4 ไบต์นั้น
- เนื้อหาอยู่ในรูปแบบสตริง JSON เดียวกันกับค่าการตอบกลับในสื่อสาร HTTP.