ข้ามไปที่เนื้อหา

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/json
Authorization: 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)

Response example

{
  "result": 1000535,
  "result_msg": "Market API response was answered as failed.",
  "finalize_result": [
    {
      "market_transaction_id": "GPA.3373-7176-8955-08026",
      "result_code": 400,
      "result_message": "The product purchase is not owned by the user."
    }
  ]
}