- ทรัพยากร: คำสั่งซื้อ
- สถานะ
- BuyerAddress
- OrderDetails
- LineItem
- OneTimePurchaseDetails
- PreorderDetails
- RentalDetails
- SubscriptionDetails
- OfferPhase
- PaidAppDetails
- OrderHistory
- ProcessedEvent
- CancellationEvent
- RefundEvent
- RefundDetails
- RefundReason
- PartialRefundEvent
- สถานะ
- PointsDetails
- เมธอด
แหล่งข้อมูล: คำสั่งซื้อ
แหล่งข้อมูลคำสั่งซื้อจะรวมข้อมูลที่ครอบคลุมเกี่ยวกับธุรกรรมที่ดำเนินการใน Google Play ซึ่งประกอบด้วยแอตทริบิวต์ต่างๆ ที่ให้รายละเอียดเกี่ยวกับคำสั่งซื้อ ผลิตภัณฑ์ที่ซื้อ และประวัติเหตุการณ์ที่เกี่ยวข้องกับคำสั่งซื้อ
API คำสั่งซื้อช่วยให้คุณเข้าถึงข้อมูลคำสั่งซื้อได้แบบเรียลไทม์ภายในระบบนิเวศของ Google Play คุณสามารถดึงข้อมูลและข้อมูลเมตาโดยละเอียดสำหรับคำสั่งซื้อแบบครั้งเดียวและแบบตามรอบ ซึ่งรวมถึงรายละเอียดธุรกรรม เช่น การเรียกเก็บเงิน ภาษี และการคืนเงิน รวมถึงข้อมูลเมตา เช่น เฟสการกำหนดราคาสำหรับการสมัครใช้บริการ API คำสั่งซื้อช่วยให้คุณทำงานที่เกี่ยวข้องกับการจัดการคำสั่งซื้อได้โดยอัตโนมัติ ซึ่งจะช่วยลดความจำเป็นในการตรวจสอบด้วยตนเองผ่าน Play Developer Console
กรณีการใช้งาน API นี้บางส่วนมีดังนี้
- การดึงข้อมูลคำสั่งซื้อแบบเรียลไทม์ - orders.get ดึงรายละเอียดและข้อมูลเมตาของคำสั่งซื้อทันทีหลังจากการซื้อโดยใช้รหัสคำสั่งซื้อ 
- การซิงค์การอัปเดตคำสั่งซื้อ - ซิงค์การอัปเดตคำสั่งซื้อเป็นระยะๆ เพื่อรักษาบันทึกข้อมูลคำสั่งซื้อให้เป็นปัจจุบัน 
หมายเหตุ:
- การเรียก Orders API จะนับรวมในโควต้า Play Developer API ซึ่งมีค่าเริ่มต้นอยู่ที่ 200,000 รายการต่อวัน และอาจไม่เพียงพอที่จะซิงค์ประวัติการสั่งซื้อจำนวนมาก 
- เรียกข้อมูลคำสั่งซื้อได้สูงสุด 1,000 รายการต่อการเรียก ขอแนะนำให้ใช้ขนาดหน้าเว็บที่ใหญ่ขึ้นเพื่อลดการใช้โควต้า ตรวจสอบโควต้าใน Cloud Console และขอเพิ่มหากจำเป็น 
| การแสดง JSON | 
|---|
| { "lineItems": [ { object ( | 
| ช่อง | |
|---|---|
| lineItems[] | 
 รายการโฆษณาแต่ละรายการที่ประกอบกันเป็นคำสั่งซื้อนี้ | 
| orderId | 
 รหัสคำสั่งซื้อ | 
| purchaseToken | 
 โทเค็นที่มอบให้แก่อุปกรณ์ของผู้ใช้เมื่อมีการซื้อการสมัครใช้บริการหรือไอเทม | 
| state | 
 สถานะของคำสั่งซื้อ | 
| createTime | 
 เวลาที่สร้างคำสั่งซื้อ ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น  | 
| lastEventTime | 
 เวลาของเหตุการณ์สุดท้ายที่เกิดขึ้นในคำสั่งซื้อ ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น  | 
| buyerAddress | 
 ข้อมูลที่อยู่ของลูกค้าเพื่อใช้ในการคำนวณภาษี เมื่อ Google เป็นผู้ขายที่บันทึกคำสั่งซื้อ ระบบจะแสดงเฉพาะประเทศ | 
| total | 
 จำนวนเงินสรุปสุดท้ายที่ลูกค้าจ่าย โดยคำนึงถึงส่วนลดและภาษี | 
| tax | 
 ภาษีทั้งหมดที่ชำระเป็นส่วนหนึ่งของคำสั่งซื้อนี้ | 
| orderDetails | 
 ข้อมูลโดยละเอียดเกี่ยวกับคำสั่งซื้อ ณ เวลาที่สร้าง | 
| orderHistory | 
 รายละเอียดเกี่ยวกับเหตุการณ์ที่แก้ไขคำสั่งซื้อ | 
| developerRevenueInBuyerCurrency | 
 รายได้สำหรับคำสั่งซื้อนี้ในสกุลเงินของผู้ซื้อ รวมถึงการหักเงินคืนบางส่วน ภาษี และค่าธรรมเนียม Google หักเงินค่าธรรมเนียมการทำธุรกรรมมาตรฐานและค่าธรรมเนียมของบุคคลที่สามจากการขายแต่ละรายการ ซึ่งรวมถึง VAT ในบางภูมิภาค | 
| pointsDetails | 
 แต้ม Play ที่ใช้กับคำสั่งซื้อ รวมถึงข้อมูลข้อเสนอ อัตราส่วนลด และมูลค่าแต้ม | 
รัฐ
สถานะของคำสั่งซื้อ
| Enum | |
|---|---|
| STATE_UNSPECIFIED | ไม่ได้ระบุสถานะ ระบบจะไม่ใช้ค่านี้ | 
| PENDING | สร้างคำสั่งซื้อแล้วและกำลังรอการประมวลผล | 
| PROCESSED | ระบบดำเนินการตามคำสั่งซื้อเรียบร้อยแล้ว | 
| CANCELED | ระบบได้ยกเลิกคำสั่งซื้อก่อนที่จะดำเนินการ | 
| PENDING_REFUND | คำขอเงินคืนกำลังรอดำเนินการ | 
| PARTIALLY_REFUNDED | คืนเงินคำสั่งซื้อบางส่วนแล้ว | 
| REFUNDED | คืนเงินคำสั่งซื้อเต็มจำนวนแล้ว | 
BuyerAddress
ข้อมูลที่อยู่ของลูกค้าเพื่อใช้ในการคำนวณภาษี
| การแสดง JSON | 
|---|
| { "buyerState": string, "buyerCountry": string, "buyerPostcode": string } | 
| ช่อง | |
|---|---|
| buyerState | 
 เขตบริหารย่อยระดับบนสุดของประเทศที่อยู่ของผู้ซื้อ เมื่อ Google เป็นผู้ขายที่จดทะเบียนสำหรับคำสั่งซื้อ ระบบจะไม่รวมข้อมูลนี้ | 
| buyerCountry | 
 รหัสประเทศ 2 ตัวอักษรตาม ISO-3166-1 Alpha-2 (รหัสประเทศของสหประชาชาติ) | 
| buyerPostcode | 
 รหัสไปรษณีย์ของที่อยู่ เมื่อ Google เป็นผู้ขายที่จดทะเบียนสำหรับคำสั่งซื้อ ระบบจะไม่รวมข้อมูลนี้ | 
OrderDetails
ข้อมูลโดยละเอียดเกี่ยวกับคำสั่งซื้อ ณ เวลาที่สร้าง
| การแสดง JSON | 
|---|
| { "taxInclusive": boolean } | 
| ช่อง | |
|---|---|
| taxInclusive | 
 ระบุว่าราคาที่แสดงรวมภาษีหรือไม่ | 
LineItem
รายละเอียดของรายการโฆษณา
| การแสดง JSON | 
|---|
| { "productTitle": string, "productId": string, "listingPrice": { object ( | 
| ช่อง | |
|---|---|
| productTitle | 
 ชื่อผลิตภัณฑ์ที่นักพัฒนาแอประบุไว้ แสดงในภาษาของผู้ซื้อ ตัวอย่าง: เหรียญ การสมัครใช้บริการรายเดือน ฯลฯ | 
| productId | 
 รหัสผลิตภัณฑ์ที่ซื้อหรือ SKU ในแอป (เช่น "monthly001" หรือ "com.some.thing.inapp1") | 
| listingPrice | 
 ราคาที่ระบุของแต่ละรายการใน Play Store โดยอาจรวมหรือไม่รวมภาษีก็ได้ ไม่รวมส่วนลดหรือโปรโมชันใดๆ | 
| total | 
 จำนวนเงินทั้งหมดที่ผู้ใช้ชำระสำหรับรายการโฆษณานี้ โดยคำนึงถึงส่วนลดและภาษี | 
| tax | 
 ภาษีที่ชำระสำหรับรายการโฆษณานี้ | 
| ฟิลด์ Union  
 | |
| oneTimePurchaseDetails | 
 รายละเอียดของการซื้อครั้งเดียว | 
| subscriptionDetails | 
 รายละเอียดการซื้อการสมัครใช้บริการ | 
| paidAppDetails | 
 รายละเอียดการซื้อแอปที่ต้องซื้อ | 
OneTimePurchaseDetails
รายละเอียดของการซื้อครั้งเดียว
| การแสดง JSON | 
|---|
| { "quantity": integer, "offerId": string, "purchaseOptionId": string, "preorderDetails": { object ( | 
| ช่อง | |
|---|---|
| quantity | 
 จํานวนสินค้าที่ซื้อ (สําหรับการซื้อสินค้าหลายรายการ) | 
| offerId | 
 รหัสข้อเสนอของข้อเสนอการซื้อแบบครั้งเดียว | 
| purchaseOptionId | 
 รหัสของตัวเลือกการซื้อ ช่องนี้จะตั้งค่าสำหรับทั้งตัวเลือกการซื้อและข้อเสนอผลิตภัณฑ์ย่อย สำหรับตัวเลือกการซื้อ รหัสนี้จะระบุตัวเลือกการซื้อเอง สำหรับข้อเสนอที่เป็นตัวแปร รหัสนี้จะอ้างอิงถึงตัวเลือกการซื้อที่เชื่อมโยง และจะใช้ร่วมกับ offerId เพื่อระบุข้อเสนอที่เป็นตัวแปร | 
| preorderDetails | 
 รายละเอียดของการสั่งจองล่วงหน้า ตั้งค่าเฉพาะในกรณีที่เป็นการซื้อแบบสั่งจองล่วงหน้า | 
| rentalDetails | 
 รายละเอียดการซื้อแบบเช่า ตั้งค่าเฉพาะในกรณีที่เป็นการซื้อแบบเช่า | 
PreorderDetails
ประเภทนี้ไม่มีฟิลด์
รายละเอียดการซื้อแบบสั่งจองล่วงหน้า
RentalDetails
ประเภทนี้ไม่มีฟิลด์
รายละเอียดการซื้อแบบเช่า
SubscriptionDetails
รายละเอียดการซื้อการสมัครใช้บริการ
| การแสดง JSON | 
|---|
| {
  "basePlanId": string,
  "offerId": string,
  "offerPhase": enum ( | 
| ช่อง | |
|---|---|
| basePlanId | 
 รหัสแพ็กเกจเริ่มต้นของการสมัครใช้บริการ | 
| offerId | 
 รหัสข้อเสนอสำหรับข้อเสนอการสมัครใช้บริการปัจจุบัน | 
| offerPhase | 
 ระยะการกำหนดราคาสำหรับรอบการเรียกเก็บเงินที่ได้รับเงินสนับสนุนจากคำสั่งซื้อนี้ | 
| servicePeriodStartTime | 
 จุดเริ่มต้นของช่วงเวลาที่เรียกเก็บเงินซึ่งได้รับเงินจากคำสั่งซื้อนี้ นี่คือภาพรวมของเวลาเริ่มต้นของรอบการเรียกเก็บเงิน/บริการ ณ เวลาที่ประมวลผลคำสั่งซื้อ และควรใช้เพื่อการบัญชีเท่านั้น ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น  | 
| servicePeriodEndTime | 
 สิ้นสุดช่วงเวลาที่เรียกเก็บเงินซึ่งได้รับเงินจากคำสั่งซื้อนี้ นี่คือภาพรวมของเวลาสิ้นสุดรอบการเรียกเก็บเงิน/ระยะเวลาการให้บริการ ณ เวลาที่ประมวลผลคำสั่งซื้อ และควรใช้เพื่อการบัญชีเท่านั้น หากต้องการดูเวลาสิ้นสุดปัจจุบันของระยะเวลาการสมัครใช้บริการ ให้ใช้ purchases.subscriptionsv2.get ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น  | 
OfferPhase
ระยะการกำหนดราคาสำหรับระยะเวลาการให้สิทธิ์ที่ได้รับเงินทุนจากคำสั่งซื้อนี้
| Enum | |
|---|---|
| OFFER_PHASE_UNSPECIFIED | ไม่ได้ระบุระยะข้อเสนอ ระบบจะไม่ใช้ค่านี้ | 
| BASE | คำสั่งซื้อจะให้เงินทุนสำหรับระยะเวลาราคาฐาน | 
| INTRODUCTORY | คำสั่งซื้อจะให้เงินทุนสำหรับระยะเวลาการกำหนดราคาช่วงแนะนำ | 
| FREE_TRIAL | โดยคำสั่งซื้อนี้จะใช้ชำระค่าช่วงทดลองใช้ฟรี | 
PaidAppDetails
ประเภทนี้ไม่มีฟิลด์
รายละเอียดการซื้อแอปที่ต้องซื้อ
OrderHistory
รายละเอียดเกี่ยวกับเหตุการณ์ที่แก้ไขคำสั่งซื้อ
| การแสดง JSON | 
|---|
| { "partialRefundEvents": [ { object ( | 
| ช่อง | |
|---|---|
| partialRefundEvents[] | 
 รายละเอียดของเหตุการณ์การคืนเงินบางส่วนสำหรับคำสั่งซื้อนี้ | 
| processedEvent | 
 รายละเอียดเวลาที่ประมวลผลคำสั่งซื้อ | 
| cancellationEvent | 
 รายละเอียดเวลาที่ยกเลิกคำสั่งซื้อ | 
| refundEvent | 
 รายละเอียดของเวลาที่คืนเงินคำสั่งซื้อเต็มจำนวน | 
ProcessedEvent
รายละเอียดเวลาที่ประมวลผลคำสั่งซื้อ
| การแสดง JSON | 
|---|
| { "eventTime": string } | 
| ช่อง | |
|---|---|
| eventTime | 
 เวลาที่ประมวลผลคำสั่งซื้อ ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น  | 
CancellationEvent
รายละเอียดเวลาที่ยกเลิกคำสั่งซื้อ
| การแสดง JSON | 
|---|
| { "eventTime": string } | 
| ช่อง | |
|---|---|
| eventTime | 
 เวลาที่ยกเลิกคำสั่งซื้อ ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น  | 
RefundEvent
รายละเอียดของเวลาที่คืนเงินคำสั่งซื้อเต็มจำนวน
| การแสดง JSON | 
|---|
| { "eventTime": string, "refundDetails": { object ( | 
| ช่อง | |
|---|---|
| eventTime | 
 เวลาที่คืนเงินคำสั่งซื้อเต็มจำนวน ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น  | 
| refundDetails | 
 รายละเอียดสำหรับการคืนเงินเต็มจำนวน | 
| refundReason | 
 เหตุผลที่คำสั่งซื้อได้รับเงินคืน | 
RefundDetails
รายละเอียดสำหรับการคืนเงินบางส่วนหรือเต็มจำนวน
| การแสดง JSON | 
|---|
| { "total": { object ( | 
| ช่อง | |
|---|---|
| total | 
 จำนวนเงินทั้งหมดที่คืน รวมถึงภาษี | 
| tax | 
 จำนวนเงินภาษีที่คืน | 
RefundReason
เหตุผลที่คำสั่งซื้อได้รับเงินคืน
| Enum | |
|---|---|
| REFUND_REASON_UNSPECIFIED | orders.refund reason unspecified. ระบบจะไม่ใช้ค่านี้ | 
| OTHER | คำสั่งซื้อได้รับเงินคืนเนื่องจากเหตุผลอื่นนอกเหนือจากเหตุผลที่ระบุไว้ที่นี่ | 
| CHARGEBACK | มีการเรียกคืนคำสั่งซื้อ | 
PartialRefundEvent
รายละเอียดของเหตุการณ์การคืนเงินบางส่วนสำหรับคำสั่งซื้อนี้
| การแสดง JSON | 
|---|
| { "createTime": string, "processTime": string, "state": enum ( | 
| ช่อง | |
|---|---|
| createTime | 
 เวลาที่สร้างการคืนเงินบางส่วน ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น  | 
| processTime | 
 เวลาที่ดำเนินการคืนเงินบางส่วน ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น  | 
| state | 
 สถานะของการคืนเงินบางส่วน | 
| refundDetails | 
 รายละเอียดการคืนเงินบางส่วน | 
รัฐ
สถานะของการคืนเงินบางส่วน
| Enum | |
|---|---|
| STATE_UNSPECIFIED | ไม่ได้ระบุสถานะ ระบบจะไม่ใช้ค่านี้ | 
| PENDING | ระบบได้สร้างการคืนเงินบางส่วนแล้ว แต่ยังไม่ได้ดำเนินการ | 
| PROCESSED_SUCCESSFULLY | การคืนเงินบางส่วนดำเนินการสำเร็จแล้ว | 
PointsDetails
รายละเอียดที่เกี่ยวข้องกับแต้ม Play ที่ใช้กับคำสั่งซื้อ
| การแสดง JSON | 
|---|
| {
  "pointsOfferId": string,
  "pointsCouponValue": {
    object ( | 
| ช่อง | |
|---|---|
| pointsOfferId | 
 รหัสที่ไม่ซ้ำกันของข้อเสนอแต้ม Play ที่ใช้สำหรับคำสั่งซื้อนี้ | 
| pointsCouponValue | 
 มูลค่าเงินตราของคูปอง Play Points นี่คือส่วนลดที่คูปองมอบให้ ซึ่งอาจไม่ใช่จำนวนเงินทั้งหมด ตั้งค่าเฉพาะเมื่อมีการใช้คูปองแต้ม Play เช่น สำหรับคูปอง 100 คะแนนมูลค่า $2 มูลค่านี้คือ $2 | 
| pointsDiscountRateMicros | 
 อัตราเปอร์เซ็นต์ที่โปรโมชัน Play Points ลดต้นทุน เช่น สำหรับคูปอง 100 คะแนนต่อ $2 ค่านี้คือ 500,000 เนื่องจาก $2 มีการประมาณค่าเป็น 200 แต้ม แต่แต้มจริงที่ต้องใช้คือ 100 ซึ่งคิดเป็น 50% ของ 200 และ 50% ในหน่วยไมโครคือ 500,000 ระหว่าง 0 ถึง 1,000,000 | 
| pointsSpent | 
 จำนวน Play Points ที่ใช้ในคำสั่งซื้อนี้ เช่น สำหรับคูปอง 100 คะแนนต่อ $2 ค่านี้คือ 100 สำหรับคูปองที่ซ้อนกับข้อเสนอฐาน นี่คือคะแนนทั้งหมดที่ใช้ในทั้ง 2 รายการ | 
| เมธอด | |
|---|---|
| 
 | ดูรายละเอียดคำสั่งซื้อสำหรับรายการคำสั่งซื้อ | 
| 
 | ดูรายละเอียดคำสั่งซื้อสำหรับคำสั่งซื้อรายการเดียว | 
| 
 | คืนเงินสำหรับการสมัครใช้บริการหรือคำสั่งซื้อในแอปของผู้ใช้ | 
รหัสข้อผิดพลาด
การดำเนินการของทรัพยากรนี้จะแสดงรหัสข้อผิดพลาด HTTP ต่อไปนี้
| รหัสข้อผิดพลาด | เหตุผล | ความละเอียด | 
|---|---|---|
| 5xx | ข้อผิดพลาดทั่วไปในเซิร์ฟเวอร์ Google Play | ลองส่งคำขออีกครั้ง หากยังคงพบปัญหาอยู่ โปรดติดต่อผู้จัดการลูกค้า Google Play หรือส่งคำขอรับการสนับสนุน โปรดตรวจสอบแดชบอร์ดสถานะของ Play เพื่อดูการหยุดทำงานที่ทราบ | 
| 409 | ข้อผิดพลาดในการอัปเดตพร้อมกัน มีการพยายามอัปเดตออบเจ็กต์ที่กำลังอัปเดต เช่น การตอบรับการซื้อ
      จะทำได้โดยการเรียกใช้เมธอด  | ลองส่งคำขออีกครั้ง |