- แหล่งข้อมูล: SubscriptionPurchase
- IntroductoryPriceInfo
- SubscriptionCancelSurveyResult
- SubscriptionPriceChange
- เมธอด
แหล่งข้อมูล: SubscriptionPurchase
ทรัพยากร SubscriptionPurchase จะระบุสถานะการซื้อการสมัครใช้บริการของผู้ใช้
| การแสดง JSON |
|---|
{ "kind": string, "startTimeMillis": string, "expiryTimeMillis": string, "autoResumeTimeMillis": string, "autoRenewing": boolean, "priceCurrencyCode": string, "priceAmountMicros": string, "introductoryPriceInfo": { object ( |
| ช่อง | |
|---|---|
kind |
โดยชนิดนี้แสดงออบเจ็กต์ SubscriptionPurchase ในบริการ androidpublisher |
startTimeMillis |
เวลาที่ให้สิทธิ์การสมัครใช้บริการเป็นมิลลิวินาทีที่เริ่มนับมาตั้งแต่วันที่ 1 มกราคม ค.ศ. 1970 |
expiryTimeMillis |
เวลาที่การสมัครใช้บริการจะหมดอายุในหน่วยมิลลิวินาทีนับตั้งแต่เริ่มต้น |
autoResumeTimeMillis |
เวลาที่จะกลับมาใช้การสมัครใช้บริการอีกครั้งโดยอัตโนมัติเป็นมิลลิวินาทีตั้งแต่ Epoch จะแสดงก็ต่อเมื่อผู้ใช้ขอหยุดการสมัครใช้บริการชั่วคราว |
autoRenewing |
ไม่ว่าจะต่ออายุการสมัครใช้บริการโดยอัตโนมัติเมื่อถึงเวลาหมดอายุปัจจุบันหรือไม่ |
priceCurrencyCode |
รหัสสกุลเงิน ISO 4217 สำหรับราคาการสมัครใช้บริการ เช่น หากระบุราคาเป็นเงินปอนด์สเตอร์ลิงของอังกฤษ priceCurrencyCode จะเป็น "GBP" |
priceAmountMicros |
ราคาของการสมัครใช้บริการ สำหรับประเทศที่ไม่รวมภาษี ราคานี้จะไม่รวมภาษี สำหรับประเทศที่รวมภาษี ราคาจะรวมภาษีแล้ว ราคาจะแสดงในหน่วยไมโคร โดยที่ 1,000,000 หน่วยไมโครแสดงถึงสกุลเงิน 1 หน่วย ตัวอย่างเช่น หากราคาการสมัครใช้บริการคือ €1.99 priceAmountMicros จะเป็น 1990000 |
introductoryPriceInfo |
ข้อมูลราคาช่วงแนะนำของการสมัครใช้บริการ โดยจะแสดงเมื่อมีการซื้อการสมัครใช้บริการในราคาช่วงแนะนำเท่านั้น ช่องนี้ไม่ได้ระบุว่าการสมัครใช้บริการอยู่ในช่วงราคาช่วงแนะนำในขณะนี้ |
countryCode |
รหัสประเทศ/ภูมิภาคสำหรับการเรียกเก็บเงินของผู้ใช้ตามมาตรฐาน ISO 3166-1 alpha-2 ในขณะที่ได้รับสิทธิ์สมัครใช้บริการ |
developerPayload |
สตริงที่นักพัฒนาแอประบุซึ่งมีข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งซื้อ |
paymentState |
สถานะการชำระเงินของการสมัครใช้บริการ ค่าที่เป็นไปได้คือ 0 การชำระเงินที่รอดำเนินการ 1 ได้รับการชำระเงินแล้ว 2 ทดลองใช้ฟรี 3 รอการอัปเกรด/ดาวน์เกรดที่เลื่อนออกไป ไม่มีในกรณีของการสมัครใช้บริการที่ถูกยกเลิกหรือหมดอายุ |
cancelReason |
เหตุผลที่การสมัครใช้บริการถูกยกเลิกหรือไม่ต่ออายุใหม่อัตโนมัติ ค่าที่เป็นไปได้คือ 0 ผู้ใช้ยกเลิกการสมัครใช้บริการ 1 ระบบยกเลิกการสมัครใช้บริการแล้ว เช่น เนื่องจากปัญหาการเรียกเก็บเงิน 2 ระบบได้แทนที่การสมัครใช้บริการด้วยการสมัครใช้บริการใหม่ 3 นักพัฒนาแอปยกเลิกการสมัครใช้บริการ |
userCancellationTimeMillis |
เวลาที่ผู้ใช้ยกเลิกการสมัครใช้บริการ หน่วยเป็นมิลลิวินาทีตั้งแต่ Epoch แสดงเมื่อ cancelReason เป็น 0 เท่านั้น |
cancelSurveyResult |
ข้อมูลที่ผู้ใช้ระบุเมื่อทำโฟลว์การยกเลิกการสมัครใช้บริการเสร็จสมบูรณ์ (แบบสำรวจเหตุผลในการยกเลิก) |
orderId |
รหัสคำสั่งซื้อของการสั่งซื้อแบบเรียกเก็บเงินตามรอบล่าสุดที่เชื่อมโยงกับการซื้อการสมัครใช้บริการ หากการสมัครใช้บริการถูกยกเลิกเนื่องจากระบบปฏิเสธการชำระเงิน รหัสนี้จะเป็นรหัสคำสั่งซื้อจากการสั่งซื้อที่ถูกปฏิเสธการชำระเงิน |
linkedPurchaseToken |
โทเค็นการซื้อของการซื้อครั้งแรกเริ่ม หากการสมัครใช้บริการนี้เป็นหนึ่งในรายการต่อไปนี้ 0 การลงชื่อสมัครใช้การสมัครใช้บริการที่ยกเลิกไปแล้วแต่ยังไม่หมดอายุอีกครั้ง 1 อัปเกรด/ดาวน์เกรดจากการสมัครใช้บริการก่อนหน้า ตัวอย่างเช่น สมมติว่าผู้ใช้ลงชื่อสมัครใช้ครั้งแรกและคุณได้รับโทเค็นการซื้อ X จากนั้นผู้ใช้ยกเลิกและทำตามขั้นตอนการลงชื่อสมัครใช้อีกครั้ง (ก่อนที่การสมัครใช้บริการจะหมดอายุ) และคุณได้รับโทเค็นการซื้อ Y สุดท้ายผู้ใช้อัปเกรดการสมัครใช้บริการและคุณได้รับโทเค็นการซื้อ Z หากคุณเรียก API นี้ด้วยโทเค็นการซื้อ Z ระบบจะตั้งค่าช่องนี้เป็น Y หากคุณเรียก API นี้ด้วยโทเค็นการซื้อ Y ระบบจะตั้งค่าฟิลด์นี้เป็น X หากเรียกใช้ API นี้ด้วยโทเค็นการซื้อ X ระบบจะไม่ตั้งค่าช่องนี้ |
purchaseType |
ประเภทการซื้อการสมัครใช้บริการ ระบบจะตั้งค่าฟิลด์นี้ก็ต่อเมื่อการซื้อนี้ไม่ได้ดำเนินการโดยใช้ขั้นตอนการเรียกเก็บเงินมาตรฐานสำหรับการซื้อในแอป ค่าที่เป็นไปได้คือ 0 ทดสอบ (เช่น ซื้อจากบัญชีทดสอบใบอนุญาต) 1 โปรโมชัน (เช่น ซื้อโดยใช้รหัสโปรโมชัน) |
priceChange |
ข้อมูลการเปลี่ยนแปลงราคาล่าสุดที่มี ข้อความนี้จะแสดงเฉพาะเมื่อมีการเปลี่ยนแปลงราคาที่กำลังจะเกิดขึ้นสำหรับการสมัครใช้บริการที่ยังไม่มีผล เมื่อต่ออายุการสมัครใช้บริการด้วยราคาใหม่หรือมีการยกเลิกการสมัครใช้บริการแล้ว ระบบจะไม่แสดงข้อมูลการเปลี่ยนแปลงราคา |
profileName |
ชื่อโปรไฟล์ของผู้ใช้เมื่อซื้อการสมัครใช้บริการ มีเฉพาะสำหรับการซื้อที่ดำเนินการด้วย "สมัครใช้บริการด้วย Google" เท่านั้น |
emailAddress |
อีเมลของผู้ใช้เมื่อซื้อการสมัครใช้บริการ มีเฉพาะสำหรับการซื้อที่ดำเนินการด้วย "สมัครใช้บริการด้วย Google" เท่านั้น |
givenName |
ชื่อต้นของผู้ใช้เมื่อซื้อการสมัครใช้บริการ มีเฉพาะสำหรับการซื้อที่ดำเนินการด้วย "สมัครใช้บริการด้วย Google" เท่านั้น |
familyName |
นามสกุลของผู้ใช้เมื่อซื้อการสมัครใช้บริการ มีเฉพาะสำหรับการซื้อที่ดำเนินการด้วย "สมัครใช้บริการด้วย Google" เท่านั้น |
profileId |
รหัสโปรไฟล์ Google ของผู้ใช้เมื่อซื้อการสมัครใช้บริการ มีเฉพาะสำหรับการซื้อที่ดำเนินการด้วย "สมัครใช้บริการด้วย Google" เท่านั้น |
acknowledgementState |
สถานะการรับทราบของผลิตภัณฑ์การสมัครใช้บริการ ค่าที่เป็นไปได้คือ 0 ยังไม่ได้รับทราบ 1 รับทราบแล้ว |
externalAccountId |
ตัวระบุบัญชีผู้ใช้ในบริการของบุคคลที่สาม จะแสดงก็ต่อเมื่อมีการลิงก์บัญชีเป็นส่วนหนึ่งของขั้นตอนการซื้อการสมัครใช้บริการ |
promotionType |
ประเภทโปรโมชันที่ใช้กับการซื้อนี้ ระบบจะตั้งค่าช่องนี้ก็ต่อเมื่อมีการใช้โปรโมชันเมื่อซื้อการสมัครใช้บริการ ค่าที่เป็นไปได้คือ 0 รหัสแบบใช้ครั้งเดียว 1 รหัสแบบสั้น |
promotionCode |
รหัสโปรโมชันที่ใช้กับการซื้อนี้ ระบบจะตั้งค่าช่องนี้ก็ต่อเมื่อมีการใช้โปรโมชันรหัสเฉพาะเมื่อซื้อการสมัครใช้บริการ |
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 เมื่อทำการซื้อ |
IntroductoryPriceInfo
มีข้อมูลราคาช่วงแนะนำสำหรับการสมัครใช้บริการ
| การแสดง JSON |
|---|
{ "introductoryPriceCurrencyCode": string, "introductoryPriceAmountMicros": string, "introductoryPricePeriod": string, "introductoryPriceCycles": integer } |
| ช่อง | |
|---|---|
introductoryPriceCurrencyCode |
รหัสสกุลเงิน ISO 4217 สำหรับราคาการสมัครใช้บริการช่วงแนะนำ เช่น หากระบุราคาเป็นเงินปอนด์สเตอร์ลิงของอังกฤษ priceCurrencyCode จะเป็น "GBP" |
introductoryPriceAmountMicros |
ราคาช่วงแนะนำของการสมัครใช้บริการ โดยไม่รวมภาษี สกุลเงินที่ใช้จะเป็นสกุลเงินเดียวกับ priceCurrencyCode ราคาจะแสดงในหน่วยไมโคร โดยที่ 1,000,000 หน่วยไมโครแสดงถึงสกุลเงิน 1 หน่วย ตัวอย่างเช่น หากราคาการสมัครใช้บริการคือ €1.99 priceAmountMicros จะเป็น 1990000 |
introductoryPricePeriod |
ระยะเวลาของราคาแนะนำที่ระบุในรูปแบบ ISO 8601 ค่าที่พบบ่อย ได้แก่ (แต่ไม่จำกัดเพียง) "P1W" (1 สัปดาห์), "P1M" (1 เดือน), "P3M" (3 เดือน), "P6M" (6 เดือน) และ "P1Y" (1 ปี) |
introductoryPriceCycles |
จำนวนช่วงเวลาที่เรียกเก็บเงินเพื่อเสนอราคาช่วงแนะนำ |
SubscriptionCancelSurveyResult
ข้อมูลที่ผู้ใช้ระบุเมื่อทำโฟลว์การยกเลิกการสมัครใช้บริการเสร็จสมบูรณ์ (แบบสำรวจเหตุผลในการยกเลิก)
| การแสดง JSON |
|---|
{ "cancelSurveyReason": integer, "userInputCancelReason": string } |
| ช่อง | |
|---|---|
cancelSurveyReason |
เหตุผลในการยกเลิกที่ผู้ใช้เลือกในแบบสำรวจ ค่าที่เป็นไปได้คือ 0 อื่นๆ 1 ฉันไม่ค่อยได้ใช้บริการนี้ 2. ปัญหาทางเทคนิค 3. เหตุผลด้านราคา 4. ฉันเจอแอปที่ดีกว่า |
userInputCancelReason |
เหตุผลการยกเลิกที่ผู้ใช้ป้อนเอง แสดงเฉพาะเมื่อ cancelReason เป็น 0 |
SubscriptionPriceChange
มีข้อมูลการเปลี่ยนแปลงราคาสำหรับการสมัครใช้บริการที่ใช้ควบคุมเส้นทางของผู้ใช้สำหรับการเปลี่ยนแปลงราคาในแอปได้ ซึ่งอาจอยู่ในรูปแบบของการขอการยืนยันจากผู้ใช้หรือการปรับแต่งประสบการณ์เพื่อให้เกิด Conversion ที่สำเร็จ
| การแสดง JSON |
|---|
{
"newPrice": {
object ( |
| ช่อง | |
|---|---|
newPrice |
ราคาใหม่ที่ระบบจะใช้ต่ออายุการสมัครใช้บริการหากผู้ใช้ยอมรับการเปลี่ยนแปลงราคา |
state |
สถานะปัจจุบันของการเปลี่ยนแปลงราคา ค่าที่เป็นไปได้คือ 0 รอดำเนินการ: สถานะของการเปลี่ยนแปลงราคาที่รอดำเนินการซึ่งรอให้ผู้ใช้ยอมรับ ในสถานะนี้ คุณจะขอการยืนยันจากผู้ใช้โดยใช้ In-App API ก็ได้ 1. ยอมรับแล้ว: สถานะของการเปลี่ยนแปลงราคาที่ยอมรับแล้ว ซึ่งการสมัครใช้บริการจะต่ออายุด้วยราคาดังกล่าว เว้นแต่จะมีการยกเลิก การเปลี่ยนแปลงราคาจะมีผลในวันที่ในอนาคตเมื่อมีการต่ออายุการสมัครใช้บริการ โปรดทราบว่าการเปลี่ยนแปลงอาจไม่เกิดขึ้นเมื่อต่ออายุการสมัครใช้บริการในครั้งถัดไป |
เมธอด |
|
|---|---|
|
รับทราบการซื้อการสมัครใช้บริการ |
|
ยกเลิกการซื้อการสมัครใช้บริการของผู้ใช้ |
|
เลื่อนการซื้อการสมัครใช้บริการของผู้ใช้จนกว่าจะถึงเวลาหมดอายุที่ระบุไว้ในอนาคต |
(deprecated) |
เลิกใช้งานแล้ว: โปรดใช้ purchases.subscriptionsv2.get แทน |
(deprecated) |
เลิกใช้งานแล้ว: ใช้ orders.refund แทน |
(deprecated) |
เลิกใช้งานแล้ว: ใช้ purchases.subscriptionsv2.revoke แทน |
รหัสข้อผิดพลาด
การดำเนินการของทรัพยากรนี้จะแสดงรหัสข้อผิดพลาด HTTP ต่อไปนี้
| รหัสข้อผิดพลาด | เหตุผล | คำอธิบาย | ความละเอียด |
|---|---|---|---|
400 / 410 |
subscriptionExpired |
การสมัครใช้บริการหมดอายุแล้วและดำเนินการตามที่ขอไม่ได้ | ตรวจสอบเวลาหมดอายุของการสมัครใช้บริการ ไม่อนุญาตให้ดำเนินการนี้กับการสมัครใช้บริการที่หมดอายุแล้ว |
400 |
subscriptionInvalidArgument |
มีการระบุอาร์กิวเมนต์ที่ไม่ถูกต้องในคำขอสำหรับการสมัครใช้บริการ | อ่านเอกสารประกอบของ API และตรวจสอบว่ามีการระบุช่องที่ต้องกรอกทั้งหมดและจัดรูปแบบอย่างถูกต้องแล้ว |
400 |
invalidPurchaseState |
การซื้อไม่อยู่ในสถานะที่ถูกต้องเพื่อดำเนินการที่ขอ เช่น คุณอาจพยายามรับทราบการซื้อที่ใช้ไปแล้วหรือยกเลิกการสมัครใช้บริการที่ไม่ได้ใช้งาน | ตรวจสอบสถานะปัจจุบันของทรัพยากรโดยใช้ Get API ที่เกี่ยวข้องก่อนที่จะพยายามดำเนินการ ตรวจสอบว่าทรัพยากรอยู่ในสถานะที่เหมาะสมสำหรับการดำเนินการ |
400 |
invalidValue |
ระบุค่าไม่ถูกต้องในคำขอ โดยมักจะแสดงเมื่อโทเค็นการซื้อมีรูปแบบไม่ถูกต้องหรือไม่ถูกต้อง | แก้ไขค่าฟิลด์ที่ไม่ถูกต้องในเนื้อหาคำขอหรือพารามิเตอร์ตามข้อมูลอ้างอิงของ API |
400 |
prepaidSubscriptionNotSupported |
การดำเนินการที่ขอไม่รองรับสำหรับการสมัครใช้บริการแบบชำระเงินล่วงหน้า | ตรวจสอบว่าการดำเนินการใช้ได้กับประเภทการสมัครใช้บริการ ข้อผิดพลาดนี้เกิดขึ้นเฉพาะกับเมธอดอย่าง Cancel, Defer, Refund หรือ Revoke |
400 |
productNotOwnedByUser |
โทเค็นการซื้อที่ระบุนั้นถูกต้อง แต่ปัจจุบันผู้ใช้ไม่ได้เป็นเจ้าของผลิตภัณฑ์ กรณีนี้อาจเกิดขึ้นหากมีการคืนเงิน เพิกถอน หรือหมดอายุการซื้อก่อนที่จะมีการรับทราบ | ตรวจสอบสถานะปัจจุบันของทรัพยากรโดยใช้ Get API ที่เกี่ยวข้องก่อนที่จะพยายามดำเนินการ ตรวจสอบว่าทรัพยากรอยู่ในสถานะที่เหมาะสมสำหรับการดำเนินการ |
400 |
purchaseTokenMismatch |
โทเค็นการซื้อที่ระบุไม่ตรงกับการซื้อ ชื่อแพ็กเกจ รหัสการสมัครใช้บริการ หรือรหัสผลิตภัณฑ์ | ตรวจสอบว่ารายละเอียดทั้งหมดในคำขอถูกต้องและสอดคล้องกัน |
400 |
required |
คำขอไม่มีช่องหรือพารามิเตอร์ที่จำเป็น | อ่านเอกสารประกอบของ API เพื่อให้แน่ใจว่ามีช่องและพารามิเตอร์ที่จำเป็นทั้งหมด |
400 |
unsupportedIabType |
การดำเนินการไม่รองรับสำหรับประเภทการเรียกเก็บเงินในแอปที่ระบุ | ตรวจสอบว่าเมธอด API เข้ากันได้กับประเภทรายการที่กำลังจัดการ |
403 |
userInsufficientPermission |
ผู้ใช้มีสิทธิ์ไม่เพียงพอในการดำเนินการที่ขอ | ตรวจสอบว่าผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์มีสิทธิ์ที่จำเป็นใน Google Play Console ดูรายละเอียดเพิ่มเติมได้ที่ การใช้บัญชีบริการ |
404 |
notFound |
ไม่พบทรัพยากรที่ขอ | ตรวจสอบว่าตัวระบุ (เช่น โทเค็นการซื้อ ชื่อแพ็กเกจ รหัสผลิตภัณฑ์ รหัสการสมัครใช้บริการ) ถูกต้อง |
409 |
concurrentUpdate |
มีการพยายามอัปเดตออบเจ็กต์ที่กำลังอัปเดตพร้อมกัน | ลองส่งคำขออีกครั้งโดยใช้ Exponential Backoff หลีกเลี่ยงการแก้ไขทรัพยากรเดียวกันพร้อมกัน |
410 |
purchaseTokenNoLongerValid |
โทเค็นการซื้อไม่ถูกต้องอย่างถาวรเนื่องจากมีการลบบัญชีผู้ใช้ที่เชื่อมโยงหรือไม่มีบันทึกการซื้ออีกต่อไป | หยุดใช้โทเค็นการซื้อนี้ |
410 |
subscriptionNoLongerAvailable |
คุณไม่สามารถค้นหาการซื้อการสมัครใช้บริการได้อีกต่อไปเนื่องจากหมดอายุไปนานแล้ว | ข้อผิดพลาดนี้แสดงว่าการสมัครใช้บริการหมดอายุมานานกว่า 60 วันแล้ว คุณไม่ควรค้นหาการสมัครใช้บริการเหล่านี้อีกต่อไป |
5xx |
Generic error |
ข้อผิดพลาดทั่วไปในเซิร์ฟเวอร์ของ Google Play | ลองส่งคำขออีกครั้ง หากยังคงพบปัญหาอยู่ โปรดติดต่อผู้จัดการลูกค้า Google Play หรือส่งคำขอรับการสนับสนุน โปรดตรวจสอบแดชบอร์ดสถานะของ Play เพื่อดูการหยุดทำงานที่ทราบ |