REST Resource: purchases.productsv2

แหล่งข้อมูล: ProductPurchaseV2

แหล่งข้อมูล ProductPurchaseV2 จะระบุสถานะการซื้อไอเทมที่ซื้อในแอปของผู้ใช้

การแสดง JSON
{
  "productLineItem": [
    {
      object (ProductLineItem)
    }
  ],
  "kind": string,
  "purchaseStateContext": {
    object (PurchaseStateContext)
  },
  "testPurchaseContext": {
    object (TestPurchaseContext)
  },
  "orderId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string,
  "regionCode": string,
  "purchaseCompletionTime": string,
  "acknowledgementState": enum (AcknowledgementState)
}
ช่อง
productLineItem[]

object (ProductLineItem)

มีข้อมูลระดับสินค้าสำหรับ ProductPurchaseV2

kind

string

โดยชนิดนี้แสดงออบเจ็กต์ ProductPurchaseV2 ในบริการ androidpublisher

purchaseStateContext

object (PurchaseStateContext)

ข้อมูลเกี่ยวกับสถานะการซื้อ

testPurchaseContext

object (TestPurchaseContext)

ข้อมูลที่เกี่ยวข้องกับการซื้อทดสอบ ระบบจะตั้งค่านี้สำหรับการซื้อทดสอบเท่านั้น

orderId

string

รหัสคำสั่งซื้อที่เชื่อมโยงกับการซื้อผลิตภัณฑ์ในแอป อาจไม่ได้ตั้งค่าหากไม่มีคำสั่งซื้อที่เชื่อมโยงกับการซื้อ

obfuscatedExternalAccountId

string

รหัสเวอร์ชันที่ผ่านการปกปิดซึ่งเชื่อมโยงกับบัญชีของผู้ใช้ในแอปของคุณโดยเฉพาะ จะแสดงก็ต่อเมื่อมีการระบุโดยใช้ https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid เมื่อทำการซื้อ

obfuscatedExternalProfileId

string

รหัสเวอร์ชันที่สับสนซึ่งเชื่อมโยงกับโปรไฟล์ของผู้ใช้ในแอปของคุณโดยเฉพาะ จะแสดงก็ต่อเมื่อมีการระบุโดยใช้ https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid เมื่อทำการซื้อ

regionCode

string

รหัสภูมิภาคการเรียกเก็บเงินแบบ ISO 3166-1 alpha-2 ของผู้ใช้ ณ เวลาที่ได้รับสิทธิ์เข้าถึงผลิตภัณฑ์

purchaseCompletionTime

string (Timestamp format)

เวลาที่การซื้อสำเร็จ เช่น เมื่อ PurchaseState เปลี่ยนเป็น PURCHASED ช่องนี้จะยังไม่ปรากฏจนกว่าการชำระเงินจะเสร็จสมบูรณ์ เช่น หากผู้ใช้เริ่มธุรกรรมที่รอดำเนินการ (https://developer.android.com/google/play/billing/integrate#pending) ระบบจะไม่ป้อนข้อมูลในช่องนี้จนกว่าผู้ใช้จะทำตามขั้นตอนที่จำเป็นในการทำธุรกรรมให้เสร็จสมบูรณ์ได้สำเร็จ

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

acknowledgementState

enum (AcknowledgementState)

เอาต์พุตเท่านั้น สถานะการรับทราบของการซื้อ

PurchaseStateContext

บริบทเกี่ยวกับสถานะการซื้อ

การแสดง JSON
{
  "purchaseState": enum (PurchaseState)
}
ช่อง
purchaseState

enum (PurchaseState)

เอาต์พุตเท่านั้น สถานะการซื้อ

PurchaseState

สถานะการซื้อที่เป็นไปได้

Enum
PURCHASE_STATE_UNSPECIFIED ไม่ได้ระบุสถานะการซื้อ ไม่ควรตั้งค่านี้
PURCHASED ซื้อเรียบร้อยแล้ว
CANCELLED ยกเลิกการซื้อแล้ว
PENDING การซื้ออยู่ในสถานะรอดำเนินการและยังไม่เสร็จสมบูรณ์ ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการการซื้อที่รอดำเนินการได้ที่ https://developer.android.com/google/play/billing/integrate#pending

TestPurchaseContext

บริบทเกี่ยวกับการซื้อทดสอบ

การแสดง JSON
{
  "fopType": enum (FopType)
}
ช่อง
fopType

enum (FopType)

ประเภท FOP ของการซื้อทดสอบ

FopType

ประเภท FOP ที่เป็นไปได้

Enum
FOP_TYPE_UNSPECIFIED ไม่ได้ระบุประเภท Fop ไม่ควรตั้งค่านี้
TEST การซื้อดำเนินการโดยใช้บัตรทดสอบ

ProductLineItem

มีข้อมูลระดับสินค้าสำหรับ ProductPurchaseV2

การแสดง JSON
{
  "productId": string,
  "productOfferDetails": {
    object (ProductOfferDetails)
  }
}
ช่อง
productId

string

รหัสผลิตภัณฑ์ที่ซื้อ (เช่น "monthly001")

productOfferDetails

object (ProductOfferDetails)

รายละเอียดข้อเสนอสำหรับรายการนี้

ProductOfferDetails

ข้อมูลรายละเอียดข้อเสนอที่เกี่ยวข้องกับรายการโฆษณาการซื้อ

การแสดง JSON
{
  "offerTags": [
    string
  ],
  "offerId": string,
  "purchaseOptionId": string,
  "rentOfferDetails": {
    object (RentOfferDetails)
  },
  "offerToken": string,
  "quantity": integer,
  "refundableQuantity": integer,
  "consumptionState": enum (ConsumptionState)
}
ช่อง
offerTags[]

string

แท็กข้อเสนอล่าสุดที่เชื่อมโยงกับข้อเสนอ ซึ่งรวมถึงแท็กที่รับค่ามาจากตัวเลือกการซื้อ

offerId

string

รหัสข้อเสนอ มีเฉพาะสำหรับข้อเสนอ

purchaseOptionId

string

รหัสตัวเลือกการซื้อ

rentOfferDetails

object (RentOfferDetails)

รายละเอียดข้อเสนอเกี่ยวกับข้อเสนอการเช่า โดยจะกำหนดไว้สำหรับรายการโฆษณาการเช่าเท่านั้น

offerToken

string

โทเค็นข้อเสนอต่อธุรกรรมที่ใช้ในการสร้างรายการโฆษณานี้

quantity

integer

จำนวนที่เชื่อมโยงกับการซื้อผลิตภัณฑ์ในแอป

refundableQuantity

integer

จำนวนที่มีสิทธิ์ขอเงินคืน ซึ่งก็คือจำนวนที่ยังไม่ได้คืนเงิน ค่านี้แสดงถึงการคืนเงินบางส่วนตามจำนวนและการคืนเงินเต็มจำนวน

consumptionState

enum (ConsumptionState)

เอาต์พุตเท่านั้น สถานะการใช้งานของการซื้อ

RentOfferDetails

ประเภทนี้ไม่มีฟิลด์

ข้อมูลรายละเอียดข้อเสนอที่เกี่ยวข้องกับรายการโฆษณาการเช่า

ConsumptionState

สถานะการบริโภคที่เป็นไปได้

Enum
CONSUMPTION_STATE_UNSPECIFIED ไม่ได้ระบุสถานะการใช้งาน ไม่ควรตั้งค่านี้
CONSUMPTION_STATE_YET_TO_BE_CONSUMED ยังไม่ได้ใช้
CONSUMPTION_STATE_CONSUMED ใช้ไปแล้ว

AcknowledgementState

สถานะการรับทราบของไอเทมแบบเรียกเก็บเงินครั้งเดียว

Enum
ACKNOWLEDGEMENT_STATE_UNSPECIFIED สถานะการรับทราบที่ไม่ได้ระบุ
ACKNOWLEDGEMENT_STATE_PENDING ยังไม่ได้รับทราบการซื้อ
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED ได้รับข้อมูลการซื้อแล้ว

เมธอด

getproductpurchasev2

ตรวจสอบสถานะการซื้อและการใช้ไอเทมในแอป

รหัสข้อผิดพลาด

การดำเนินการของทรัพยากรนี้จะแสดงรหัสข้อผิดพลาด 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 เพื่อดูการหยุดทำงานที่ทราบ