แหล่งข้อมูล: ProductPurchase
แหล่งข้อมูล ProductPurchase จะระบุสถานะการซื้อไอเทมที่ซื้อในแอปของผู้ใช้
| การแสดง JSON |
|---|
{ "kind": string, "purchaseTimeMillis": string, "purchaseState": integer, "consumptionState": integer, "developerPayload": string, "orderId": string, "purchaseType": integer, "acknowledgementState": integer, "purchaseToken": string, "productId": string, "quantity": integer, "obfuscatedExternalAccountId": string, "obfuscatedExternalProfileId": string, "regionCode": string, "refundableQuantity": integer } |
| ช่อง | |
|---|---|
kind |
โดยชนิดนี้แสดงออบเจ็กต์ inappPurchase ในบริการ androidpublisher |
purchaseTimeMillis |
เวลาที่ซื้อผลิตภัณฑ์เป็นมิลลิวินาทีนับตั้งแต่ Epoch (1 ม.ค. 1970) |
purchaseState |
สถานะการซื้อของคำสั่งซื้อ ค่าที่เป็นไปได้คือ 0 ซื้อแล้ว 1 ยกเลิกแล้ว 2 รอดำเนินการ |
consumptionState |
สถานะการใช้งานของไอเทมที่ซื้อในแอป ค่าที่เป็นไปได้คือ 0 ยังไม่ได้ใช้ 1 ใช้งาน |
developerPayload |
สตริงที่นักพัฒนาแอประบุซึ่งมีข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งซื้อ |
orderId |
รหัสคำสั่งซื้อที่เชื่อมโยงกับการซื้อผลิตภัณฑ์ในแอป |
purchaseType |
ประเภทการซื้อไอเทมที่ซื้อในแอป ระบบจะตั้งค่าฟิลด์นี้ก็ต่อเมื่อการซื้อนี้ไม่ได้ดำเนินการโดยใช้ขั้นตอนการเรียกเก็บเงินมาตรฐานสำหรับการซื้อในแอป ค่าที่เป็นไปได้คือ 0 ทดสอบ (เช่น ซื้อจากบัญชีทดสอบใบอนุญาต) 1 โปรโมชัน (เช่น ซื้อโดยใช้รหัสโปรโมชัน) ไม่รวมการซื้อด้วยแต้ม Play 2. ได้รับรางวัล (เช่น จากการดูโฆษณาวิดีโอแทนการชำระเงิน) |
acknowledgementState |
สถานะการรับทราบของผลิตภัณฑ์ในแอป ค่าที่เป็นไปได้คือ 0 ยังไม่ได้รับทราบ 1 รับทราบแล้ว |
purchaseToken |
โทเค็นการซื้อที่สร้างขึ้นเพื่อระบุการซื้อนี้ อาจไม่มี |
productId |
SKU ของไอเทมที่ซื้อในแอป อาจไม่มี |
quantity |
จำนวนที่เชื่อมโยงกับการซื้อผลิตภัณฑ์ในแอป หากไม่มี ระบบจะใช้จำนวนเป็น 1 |
obfuscatedExternalAccountId |
รหัสเวอร์ชันที่ผ่านการปกปิดซึ่งเชื่อมโยงกับบัญชีของผู้ใช้ในแอปของคุณโดยเฉพาะ จะแสดงก็ต่อเมื่อมีการระบุโดยใช้ https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid เมื่อทำการซื้อ |
obfuscatedExternalProfileId |
รหัสเวอร์ชันที่สับสนซึ่งเชื่อมโยงกับโปรไฟล์ของผู้ใช้ในแอปของคุณโดยเฉพาะ จะแสดงก็ต่อเมื่อมีการระบุโดยใช้ https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid เมื่อทำการซื้อ |
regionCode |
รหัสภูมิภาคการเรียกเก็บเงินแบบ ISO 3166-1 alpha-2 ของผู้ใช้ ณ เวลาที่ได้รับสิทธิ์เข้าถึงผลิตภัณฑ์ |
refundableQuantity |
จำนวนที่มีสิทธิ์ขอเงินคืน ซึ่งก็คือจำนวนที่ยังไม่ได้คืนเงิน ค่านี้แสดงถึงการคืนเงินบางส่วนตามจำนวนและการคืนเงินเต็มจำนวน |
เมธอด |
|
|---|---|
|
ตอบรับการซื้อไอเทมที่ซื้อในแอป |
|
ใช้การซื้อไอเทมที่ซื้อในแอป |
|
ตรวจสอบสถานะการซื้อและการใช้ไอเทมในแอป |
รหัสข้อผิดพลาด
การดำเนินการของทรัพยากรนี้จะแสดงรหัสข้อผิดพลาด HTTP ต่อไปนี้
| รหัสข้อผิดพลาด | เหตุผล | คำอธิบาย | ความละเอียด |
|---|---|---|---|
400 |
invalidPurchaseState |
การซื้อไม่อยู่ในสถานะที่ถูกต้องเพื่อดำเนินการที่ขอ เช่น คุณอาจพยายามรับทราบการซื้อที่ใช้ไปแล้วหรือยกเลิกการสมัครใช้บริการที่ไม่ได้ใช้งาน | ตรวจสอบสถานะปัจจุบันของทรัพยากรโดยใช้ Get API ที่เกี่ยวข้องก่อนที่จะพยายามดำเนินการ ตรวจสอบว่าทรัพยากรอยู่ในสถานะที่เหมาะสมสำหรับการดำเนินการ |
400 |
invalidValue |
ระบุค่าที่ไม่ถูกต้องในคำขอ โดยมักจะแสดงเมื่อโทเค็นการซื้อมีรูปแบบไม่ถูกต้องหรือไม่ถูกต้อง | แก้ไขค่าฟิลด์ที่ไม่ถูกต้องในเนื้อหาคำขอหรือพารามิเตอร์ตามข้อมูลอ้างอิงของ API |
400 |
productNotOwnedByUser |
โทเค็นการซื้อที่ระบุนั้นถูกต้อง แต่ปัจจุบันผู้ใช้ไม่ได้เป็นเจ้าของผลิตภัณฑ์ กรณีนี้อาจเกิดขึ้นหากมีการคืนเงิน เพิกถอน หรือหมดอายุการซื้อก่อนที่จะมีการรับทราบ | ตรวจสอบสถานะปัจจุบันของทรัพยากรโดยใช้ Get API ที่เกี่ยวข้องก่อนที่จะพยายามดำเนินการ ตรวจสอบว่าทรัพยากรอยู่ในสถานะที่เหมาะสมสำหรับการดำเนินการ |
400 |
purchaseTokenMismatch |
โทเค็นการซื้อที่ระบุไม่ตรงกับการซื้อ ชื่อแพ็กเกจ รหัสการสมัครใช้บริการ หรือรหัสผลิตภัณฑ์ | ตรวจสอบว่ารายละเอียดทั้งหมดในคำขอถูกต้องและสอดคล้องกัน |
400 |
required |
คำขอไม่มีช่องหรือพารามิเตอร์ที่จำเป็น | อ่านเอกสารประกอบของ API เพื่อให้แน่ใจว่าได้รวมช่องและพารามิเตอร์ที่จำเป็นทั้งหมดแล้ว |
400 |
unsupportedIabType |
การดำเนินการไม่รองรับสำหรับประเภทการเรียกเก็บเงินในแอปที่ระบุ | ตรวจสอบว่าเมธอด API เข้ากันได้กับประเภทรายการที่กำลังจัดการ |
403 |
userInsufficientPermission |
ผู้ใช้มีสิทธิ์ไม่เพียงพอในการดำเนินการที่ขอ | ตรวจสอบว่าผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์มีสิทธิ์ที่จำเป็นใน Google Play Console ดูรายละเอียดเพิ่มเติมได้ที่ การใช้บัญชีบริการ |
404 |
notFound |
ไม่พบทรัพยากรที่ขอ | ตรวจสอบว่าตัวระบุ (เช่น โทเค็นการซื้อ ชื่อแพ็กเกจ รหัสผลิตภัณฑ์ รหัสการสมัครใช้บริการ) ถูกต้อง |
409 |
concurrentUpdate |
มีการพยายามอัปเดตออบเจ็กต์ที่กำลังอัปเดตพร้อมกัน | ลองส่งคำขออีกครั้งโดยใช้ Exponential Backoff หลีกเลี่ยงการแก้ไขทรัพยากรเดียวกันพร้อมกัน |
5xx |
Generic error |
ข้อผิดพลาดทั่วไปในเซิร์ฟเวอร์ของ Google Play | ลองส่งคำขออีกครั้ง หากยังคงพบปัญหาอยู่ โปรดติดต่อผู้จัดการลูกค้า Google Play หรือส่งคำขอรับการสนับสนุน โปรดตรวจสอบแดชบอร์ดสถานะของ Play เพื่อดูการหยุดทำงานที่ทราบ |