ซิงค์กับรายการ
สินค้า Hive เป็นระบบที่จัดเตรียมไว้เพื่อจัดการฟังก์ชันการชำระเงิน/การเรียกคืนของสกุลเงินหรือรายการในเกม การรวม Hive ช่วยให้สามารถให้หรือเรียกรายการได้ร่วมกับระบบคูปอง, กิจกรรม, แผนผังข้อเสนอ, CPI เป็นต้น ในสำนักงานหลังบ้านของผู้ดูแลระบบ สามารถให้/เรียกรายการด้วยตนเองหรือค้นหาประวัติได้
Note
- API การขอรับ/กู้คืนรายการ ทำงานในลักษณะอะซิงโครนัสและตอบสนองเฉพาะการกำหนดความสำเร็จหรือความล้มเหลวของการลงทะเบียนข้อมูลคำขอเมื่อมีการเรียก API เท่านั้น
- การตอบสนองต่อ การดำเนินการประมวลผลจริง เช่น การเรียก API ของเซิร์ฟเวอร์เกมสามารถตรวจสอบได้ในเมนู คอนโซล Hive ภายใต้การเรียกเก็บเงิน > 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 ที่แปลงแล้ว (พรีฟิกซ์ + JSON String) จะสร้างค่าแฮชที่จัดรูปแบบ SHA1 และค่านี้จะถูกเปรียบเทียบกับค่า Apihash
เพื่อการตรวจสอบ
- โค้ดตัวอย่าง
// Example of a transformed JSON String (add a line and spaces for readability)
{
"transactionId": "123456789",
"idCategory": "vid",
"id": "1004",
"detail": [
{
"action": "p",
"assetCode": "gem",
"amount": 1,
"method": ""
}
],
"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 คอนโซล > การเรียกเก็บเงิน > รายการ > การลงทะเบียนรายการ ผ่านโปรโตคอล HTTP และวิธีการส่งข้อมูลคำขอคือ POST.
ข้อกำหนดการร้องขอ (ไอเท็มรัง -> เซิร์ฟเวอร์เกม)¶
HTTP Header : Apihash
- เพื่อยืนยันข้อมูล ให้ส่งค่าแฮชพร้อมกับคีย์ Apihash.
- ใช้ SHA1 สำหรับค่าแฮช (เพิ่มคำนำหน้า !@#COM2US!@# ไปยังสตริง JSON ของร่าง)
เนื้อหาคำขอ (Hive item -> เซิร์ฟเวอร์เกม)
ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น (จำเป็น: M, ไม่จำเป็น: O) |
---|---|---|---|
transactionId | ตัวระบุเพื่อแยกแยะคำขอแต่ละรายการ (สำหรับการตรวจสอบคำขอซ้ำ) รายละเอียด | สตริง | M |
idCategory | ID
| สตริง | M |
id | ค่าของ ID ที่ตรงกับ idCategory | สตริง | M |
detail | อาร์เรย์ของวัตถุสำหรับสามรายการด้านล่าง | อาร์เรย์ | M |
ㄴaction | ว่าจะอนุญาต/เพิกถอน
| สตริง | M |
ㄴassetCode | รหัสสำหรับรายการที่จะอนุญาต | สตริง | M |
ㄴamount | จำนวนที่จะอนุญาต | จำนวนเต็ม | M |
reason | เหตุผลสำหรับคำขอ รายละเอียด | สตริง | M |
subReason | เหตุผลสำหรับคำขอ รายละเอียด | สตริง | O |
serverId | เซิร์ฟเวอร์ที่ผู้ใช้เป้าหมายเชื่อมต่ออยู่ (ตัวระบุเซิร์ฟเวอร์) | สตริง | M |
additionalinfo | ข้อมูลเพิ่มเติมที่ส่งจากไคลเอนต์ไปยังเซิร์ฟเวอร์เกม (ทั้งหมดเป็นตัวพิมพ์เล็ก) (ในรูปแบบ JSON String) | สตริง | O |
duration | ระยะเวลาการเก็บรักษาในกล่องจดหมาย (ไม่จำเป็น) รายละเอียด
| จำนวนเต็ม | O |
userMessage | ข้อความการอนุญาตรายการ (ข้อความคงที่) เข้ากันได้กับเกมเก่าที่ไม่ใช้ templateMessage | สตริง | O |
templateMessage | ข้อความที่ตั้งไว้สำหรับข้อความการอนุญาตรายการ คีย์ข้อมูลคือรหัสภาษา, ค่าประกอบด้วยข้อความ (หัวเรื่อง) และเนื้อหา (อย่างไรก็ตาม หากมีข้อมูลอยู่ รูปแบบเริ่มต้นคือ Object และถ้าไม่มีจะถูกส่งเป็น String ว่าง) | อ็อบเจ็กต์ | O |
gameIndex | หมายเลขประจำสำหรับแต่ละเกมใน Hive app center | จำนวนเต็ม | 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":"vid","id":"828292","detail":[{"action":"p","assetCode":"gold","amount":500,"method":""},{"action":"p","assetCode":"gem","amount":200,"method":""}],"reason":"td","subReason":"","userMessage":"","templateMessage":{"ko":{"title":"ud55cuae00 uba54uc138uc9c0","body":"ud55cuae00 ub0b4uc6a9"},"en":{"title":"English Message","body":"English Contents"}},"serverId":"kr","additionalinfo":"","gameIndex":539}'
-H "Content-Type: text/html"
-H "Apihash: e9d7307948ff0134fb59c5f96e68f5ae21e3e47f"
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: e9d7307948ff0134fb59c5f96e68f5ae21e3e47f
> 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' => 'vid',
'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": "vid",
"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.