IAP v4 การยืนยันการซื้อ
API ประมวลผลการใช้สินค้าคือ API สำหรับประมวลผลการใช้รายการซื้อสินค้าประเภทใช้แล้วหมดไป
Google Play¶
API ประมวลผลการใช้สินค้าประเภทใช้แล้วหมดไปของ Google Play คือ API สำหรับประมวลผลการใช้รายการซื้อสินค้าประเภทใช้แล้วหมดไปที่ชำระเงินผ่าน Google Play และทำหน้าที่แทนฟังก์ชัน consume ของ Google Play Developer API หากการประมวลผลการใช้ไม่เสร็จสิ้นภายในระยะเวลาหนึ่งหลังจากการซื้อในแอป เช่น ภายใน 3 วัน Google Play จะคืนเงินรายการชำระเงินนั้นโดยอัตโนมัติ ดังนั้น หลังจากเซิร์ฟเวอร์แอปมอบไอเทมให้ผู้ใช้เสร็จแล้ว ต้องเรียก API นี้ทันทีเพื่อดำเนินการประมวลผลการใช้
คำแนะนำล่วงหน้าสำหรับการตั้งค่าบัญชี Google Market
หากต้องการใช้ API ประมวลผลการใช้สินค้าประเภทใช้แล้วหมดไปของ Google Play ต้องตั้งค่า Google Market Account ให้เสร็จสมบูรณ์ก่อน
ข้อควรระวังเกี่ยวกับการเรียกซ้ำ
ต้องเรียก API นี้เพียง 1 ครั้งต่อใบเสร็จ 1 รายการเท่านั้น หากเรียกซ้ำด้วยใบเสร็จที่ประมวลผลการใช้เสร็จแล้ว ระบบจะส่งคืน 1000535 (Market API response was answered as failed.) เป็นรหัสตอบกลับ result
Request URL¶
| รายการ | เนื้อหา |
|---|---|
| Production URL | https://hiveiap.qpyou.cn/external/api/finalize_purchase |
| Sandbox URL | https://sandbox-hiveiap.qpyou.cn/external/api/finalize_purchase |
| HTTP Method | POST |
| HTTP Header | Content-Type: application/jsonAuthorization: Bearer {API_KEY}(※ โทเค็น Bearer คือค่าคีย์การตรวจสอบสิทธิ์ Hive ใน App Center > Project Management > Game List > เลือกเกม > Game Details > Basic Info) |
| Data Format | JSON |
Request body¶
| ชื่อฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
purchase_bypass_info | String | Y | ข้อมูลผู้ใช้ที่ซื้อ อุปกรณ์ และใบเสร็จที่ดึงมาจาก Hive SDK เมื่อซื้อในแอปด้วย IAP v4 ให้ส่ง bypassInfo ของออบเจ็กต์ IAPV4Receipt ที่ได้รับผ่านคอลแบ็กของเมธอด Purchase() หรือ Restore() ในคลาส Hive SDK v4 IAPV4 ตามลำดับ 'Hive SDK v4 → ไคลเอนต์แอป → เซิร์ฟเวอร์แอป → เซิร์ฟเวอร์ API ประมวลผลการใช้สินค้าประเภทใช้แล้วหมดไปของ Google สำหรับ IAP v4' ค่า bypassInfo นี้เป็นสตริง JSON ที่เข้ารหัสด้วย Base64※ ต้องใช้ค่านี้ตามต้นฉบับ และต้องไม่แยกวิเคราะห์หรือแก้ไขโดยตรงจากไคลเอนต์แอปหรือเซิร์ฟเวอร์แอป |
Response body¶
| ชื่อฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
result | Integer | Y | รหัสตอบกลับ (0: สำเร็จ, อื่นๆ: ล้มเหลว ดูรายละเอียดรหัสได้ใน Result codes ด้านล่าง) |
result_msg | String | Y | ข้อความตอบกลับ |
finalize_result | Array | N | รายการผลการประมวลผลการใช้ (เป็นข้อมูลอ้างอิงเท่านั้น และห้ามใช้ในตรรกะของเซิร์ฟเวอร์แอปเพื่อตัดสินว่าการมอบไอเทมสำเร็จหรือล้มเหลว) |
└ market_transaction_id | String | N | ID ธุรกรรม (คำสั่งซื้อ) ของตลาดที่พยายามประมวลผลการใช้ |
└ result_code | Integer | N | รหัสผลการประมวลผลการใช้ที่ตอบกลับจาก Google Play Developer API |
└ result_message | String | N | ข้อความผลการประมวลผลการใช้ที่ตอบกลับจาก Google Play Developer API |
Result codes¶
| Code | Message | คำอธิบาย |
|---|---|---|
0 | Success | ประมวลผลการใช้สำเร็จ |
1000006 | The required parameter info is missing. | กรณีที่พารามิเตอร์ที่จำเป็นขาดหายไป |
1000504 | The Google public key hasn't been registered. | กรณีที่ยังไม่ได้ลงทะเบียนข้อมูลคีย์บัญชีบริการ Google |
1000520 | Failed to authenticate the API Key. | การตรวจสอบสิทธิ์โทเค็น Bearer ที่ออกจาก App Center ล้มเหลว |
1000535 | Market API response was answered as failed. | กรณีที่ผลตอบกลับของ Google Play Developer API ล้มเหลว (※ ตรวจสอบสาเหตุโดยละเอียดได้จาก result_code และ result_message ภายใต้ finalize_result) |
Request example¶
curl -L -v \
-d '{"purchase_bypass_info":"eyJ1aWQiOiIiLCJhbmFseXRpY3NfaWQiOiJqbXRsZkcwb1FZQzdlM3dVVDQ2cHJ3PT0i...(ละเว้น)..."}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNjAzNzc4OTU2LCJqdGkiOiIxODczMTExMzIwIn0.OxWo4R6UdI0BLP1ckt8RlMFrPAb5H7TNedmLFV1Cawc" \
[https://sandbox-hiveiap.qpyou.cn/external/api/finalize_purchase](https://sandbox-hiveiap.qpyou.cn/external/api/finalize_purchase)