- แหล่งข้อมูล: SubscriptionPurchase
- IntroductoryPriceInfo
- SubscriptionCancelSurveyResult
- SubscriptionPriceChange
- เมธอด
แหล่งข้อมูล: SubscriptionPurchase
เลิกใช้งานแล้ว: ใช้ SubscriptionPurchaseV2 แทน ทรัพยากร 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.cancel แทน |
(deprecated) |
เลิกใช้งานแล้ว: โปรดใช้ purchases.subscriptionsv2.defer แทน |
(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 เพื่อดูการหยุดทำงานที่ทราบ |