ส่งข้อมูลการบริโภค
เรามี API สำหรับส่งข้อมูลการบริโภคของผู้ใช้ไปยัง App Store เมื่อผู้ใช้แอปขอคืนเงิน
API 'ส่งข้อมูลการบริโภค' ทำงานผ่านการสื่อสารแบบ Server-to-Server ระหว่างเซิร์ฟเวอร์ Hive และเซิร์ฟเวอร์แอป โดยเซิร์ฟเวอร์ Hive จะส่งคำขอส่งข้อมูลการบริโภคไปยังเซิร์ฟเวอร์แอป และเซิร์ฟเวอร์แอปจะส่งค่าตอบกลับกลับไปยังเซิร์ฟเวอร์ Hive
จะหยุดให้บริการเร็วๆ นี้
ปัจจุบันไม่สามารถเริ่มใช้งานการส่งข้อมูลการบริโภค App Store V1 ใหม่ได้ และมีกำหนดยุติการให้บริการ หากต้องการสร้างระบบใหม่หรืออัปเดตบริการที่มีอยู่ กรุณาใช้ V2 API เป็นมาตรฐานในการพัฒนา
การเปลี่ยนแปลงจาก V1 เป็น V2¶
สรุปการเปลี่ยนแปลงที่ต้องเชื่อมต่อใน V2 API เมื่อเทียบกับการส่งข้อมูลการบริโภค V1แบบเดิม
| รายการ | V1 | V2 |
|---|---|---|
| Request body | gameindex, appid, user_seq | gameindex, appid, server_id, player_id (=user_seq), transaction_id |
| สถานะการบริโภค | consumption_status (จำนวนเต็ม 0/3) | delivery_status (สตริง enum 5 ค่า) |
play_time | มี (จำเป็น) | ลบออก |
| อัตราส่วนการบริโภค | ไม่มี | เพิ่ม consumption_percentage (millipercent 0-100000) |
refund_preference | จำนวนเต็ม, จำเป็น | สตริง enum, ไม่บังคับ |
sample_content_provided | จำเป็น | ไม่บังคับ |
| รูปแบบการตอบกลับ | code/message/data | code/message/data (โครงสร้างเหมือนเดิม เปลี่ยนรหัสตอบกลับเมื่อสำเร็จจาก 100 เป็น 200) |
| IP ไฟร์วอลล์ | IP เดี่ยวสำหรับ Production/Sandbox | IP เซิร์ฟเวอร์ Hive 6 รายการ |
Note
ขณะนี้ การส่งข้อมูลการบริโภคสนับสนุนเฉพาะโดย Apple App Store เท่านั้น
ขั้นตอนการทำงาน¶
สรุปขั้นตอนการทำงานทั้งหมดของการเรียกใช้และการตอบกลับ API 'ส่งข้อมูลการบริโภค' ได้ดังนี้
- แอป: เตรียม URL เซิร์ฟเวอร์โดยกำหนดค่า API endpoint
- แอป: เลือกเปิดใช้งานการส่งข้อมูลการบริโภคในคอนโซล Hive และลงทะเบียน URL เซิร์ฟเวอร์
- ไคลเอนต์แอป: ยินยอมให้ส่งข้อมูลการบริโภคสินค้าในแอปขณะที่แอปกำลังทำงานอยู่
- ผู้ใช้แอป: ขอคืนเงินในแอป
- เซิร์ฟเวอร์ Hive: ส่งคำขอ POST API ไปยัง URL เซิร์ฟเวอร์ที่แอปลงทะเบียนไว้ และรับข้อมูลการบริโภคเป็นค่าตอบกลับจากเซิร์ฟเวอร์แอป
- เซิร์ฟเวอร์ Hive: ส่งข้อมูลการบริโภคไปยัง App Store
Warning
หากไคลเอนต์แอปไม่ยินยอมให้ส่งข้อมูลในหน้าต่างการยินยอม เซิร์ฟเวอร์ Hive จะไม่สามารถส่งข้อมูลไปยัง App Store ได้ แม้จะได้รับข้อมูลจากเซิร์ฟเวอร์แอปแล้วก็ตาม
ข้อมูลการบริโภคที่จะส่งไปยัง App Store บางส่วนมีอยู่เฉพาะบนเซิร์ฟเวอร์แอปเท่านั้น ในกรณีนี้ หากต้องการให้เซิร์ฟเวอร์ Hive ส่งข้อมูลการบริโภคไปยัง App Store เซิร์ฟเวอร์แอปต้องส่งข้อมูลไปยังเซิร์ฟเวอร์ Hive ก่อน
URL เซิร์ฟเวอร์แอปคือ API endpoint ที่เซิร์ฟเวอร์แอปเปิดไว้เพื่อส่งข้อมูลไปยังเซิร์ฟเวอร์ Hive หลังจากกำหนดค่า API endpoint แล้วลงทะเบียนเป็น URL เซิร์ฟเวอร์แอป ทุกครั้งที่ผู้ใช้ขอคืนเงิน เซิร์ฟเวอร์ Hive จะส่งคำขอ POST ไปยัง API endpoint นี้และรับข้อมูลที่จำเป็นจากเซิร์ฟเวอร์แอป เซิร์ฟเวอร์ Hive จะรวบรวมข้อมูลนี้และดำเนินการส่งข้อมูลการบริโภคไปยัง App Store แทนแอป
การกำหนดค่า API endpoint (URL เซิร์ฟเวอร์)¶
เมื่อเซิร์ฟเวอร์แอปได้รับคำขอผ่าน API endpoint ที่จะลงทะเบียนเป็น URL เซิร์ฟเวอร์ ต้องรวบรวมข้อมูลรายผู้ใช้แอป (consumption_status, play_time, refund_preference, sample_content_provided) และตอบกลับด้วยข้อมูลที่รวบรวมแล้วซึ่งสามารถค้นหาได้ด้วยข้อมูลผู้ใช้ (CS_CODE) ที่อยู่ในพารามิเตอร์คำขอ
ปิดกฎไฟร์วอลล์¶
ปิดกฎไฟร์วอลล์ขาเข้าเพื่ออนุญาตให้มีการสื่อสาร API ระหว่างเซิร์ฟเวอร์แอปและเซิร์ฟเวอร์ Hive คุณต้องปิดกฎไฟร์วอลล์ขาเข้าสำหรับที่อยู่ IP ด้านล่างบนเซิร์ฟเวอร์แอป
| Hive ประเภทเซิร์ฟเวอร์ | ที่อยู่ IP |
|---|---|
| IP เชิงพาณิชย์ | 43.201.165.236 |
| IP Sandbox | 43.155.181.83 |
หลังจากปิดกฎไฟร์วอลล์แล้ว โปรดดูข้อมูลด้านล่างเพื่อกำหนดค่า API endpoint
การกำหนดค่า API request (เซิร์ฟเวอร์ Hive → เซิร์ฟเวอร์แอป)¶
นี่คือข้อมูลคำขอ POST ที่ส่งจากเซิร์ฟเวอร์ Hive ไปยังเซิร์ฟเวอร์แอป
| ข้อมูล API | คำอธิบาย |
|---|---|
| วิธีการ | POST |
| รูปแบบการตอบสนอง | JSON |
| ประเภทเนื้อหา | application/json |
Request body¶
ข้อมูล Request body มีดังนี้
| ชื่อ | ประเภท | จำเป็น (จำเป็น: M, ไม่จำเป็น: O) | คำอธิบาย |
|---|---|---|---|
| gameindex | สตริง | M | Hive App Center Game Index |
| appid | สตริง | M | Hive App Center AppID |
| user_seq | สตริง | M | รหัสผู้ใช้ในแอป |
ตัวอย่าง Request body มีดังนี้
{
"gameindex": "539",
"appid": "com.com2us.hivesdk.normal.freefull.apple.global.ios.universal",
"user_seq": "222333"
}
การกำหนดค่า API response (เซิร์ฟเวอร์แอป → เซิร์ฟเวอร์ Hive)¶
นี่คือข้อมูลที่เซิร์ฟเวอร์แอปส่งกลับไปยังเซิร์ฟเวอร์ Hive
Response body¶
ข้อมูลค่าการตอบสนองที่เซิร์ฟเวอร์แอปต้องส่งไปยังเซิร์ฟเวอร์ Hive เมื่อการตอบสนองสำเร็จ มีดังนี้
| ชื่อ | ประเภท | จำเป็น (จำเป็น: M, ไม่จำเป็น: O) | คำอธิบาย |
|---|---|---|---|
| รหัส | จำนวนเต็ม | M | รหัสการตอบกลับ (100: สำเร็จ) |
| ข้อความ | สตริง | M | ข้อความผลลัพธ์ตามรหัสการตอบกลับ |
| ข้อมูล | วัตถุ | M | ข้อมูลการตอบกลับ (จะส่งคืนเฉพาะเมื่อการตอบกลับสำเร็จ ไม่ส่งคืนในกรณีเกิดข้อผิดพลาด) |
| ┕ สถานะการบริโภค | จำนวนเต็ม | M | สถานะการบริโภคของรายการที่บริโภคได้ ("0" หรือ "3" ต้องเลือกเป็นค่าตอบกลับที่คงที่) |
| ┕ เวลาเล่น | จำนวนเต็ม | M | เวลาเล่นเกม |
| ┕ ความชอบการคืนเงิน | จำนวนเต็ม | M | ความชอบการคืนเงิน |
| ┕ สถานะเนื้อหาตัวอย่างที่ให้ | จำนวนเต็ม | M | สถานะเนื้อหาตัวอย่างที่ให้ |
ตัวอย่างการตอบกลับสำเร็จมีดังนี้
// success
{
"code": 100,
"message": "OK",
"data": {
"consumption_status": 0,
"play_time": 1,
"refund_preference": 2,
"sample_content_provided": 0
}
}
ตัวอย่างการตอบกลับล้มเหลวมีดังนี้
// Errors due to wrong parameters
{
"code": 400,
"message": "No parameter, or invalid parameter name."
}
// Errors due to invalid user information
{
"code": 200,
"message": "No data, or invalid cs_code."
}
รหัสการตอบกลับ¶
| รหัส | คำอธิบาย |
|---|---|
| 100 | สำเร็จ |
| 200 | ข้อมูลผู้ใช้ไม่ถูกต้อง (CS_CODE) |
| 400 | ข้อผิดพลาดของพารามิเตอร์คำขอ |
| 401 | ข้อผิดพลาด JSON ของคำขอ |
| 500 | ข้อผิดพลาดในการประมวลผลเซิร์ฟเวอร์ |
| 501 | ข้อผิดพลาดในการสื่อสารกับฐานข้อมูล |