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/v2/external/api/finalize_purchase |
| Sandbox URL | https://sandbox-hiveiap.qpyou.cn/v2/external/api/finalize_purchase |
| HTTP Method | POST |
| HTTP Header | OAuth 2.0 Access Token สำหรับการรับรองความถูกต้องของเซิร์ฟเวอร์แอป (ดู ออก OAuth Token) |
| 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 "X-Access-Token: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImEwYWZlYjZlLTllYWItY2ZiMC03ZTMxLTNhNzMyZTQ5In0.eyJwcm9qZWN0X2lkIjoiY29tLmNvbTJ1cy5oaXZlc2RrIiwidG9rZW5fdHlwZSI6ImFjY2Vzc190b2tlbiIsImdyYW50X3R5cGUiOiJ1c2VyIiwiaWF0IjoxNzg5NDA2NzI5LCJleHAiOjE3ODk0MTAzMjksImF1dGhfdmVyIjoidjQiLCJ1c2VyX2lkIjoyMDAwMDAzMTM0MSwiaXNfd2hpdGVsaXN0IjpmYWxzZX0.MgPO-e-Gm_dErRcfjVPKFdrh9M1ywqpU5aBmrFDZihzA5kKCw_QjPZv-Sb94LmbrzIqYuGQu29tIbX9DhJg_SpschZ4dihLx75pt5fSqYkzXMNHsbDjP-A7Yn0yjqP8f9w0DD0B_20Vbw6WfUUImNLQK0UpKu9Pd6cOILImDOn9YSkc1ozuzGQ04jgihwSxtP8cRTNGn53aB89CbSzYZbUqdUtyCOY9q1BXeIlrq_4zd_YWoPPQjPd3uD3wt3cVNg4nfNfQ55PDXPTn-QCm_HsfnL12wrNFnD-UW9SlCvM6TouoErNFrLaQ3sYvgsek-n47-bylvzTGa7GAvakwuog" \
[https://sandbox-hiveiap.qpyou.cn/v2/external/api/finalize_purchase](https://sandbox-hiveiap.qpyou.cn/v2/external/api/finalize_purchase)