- แหล่งข้อมูล: 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 |
เวลาที่ให้สิทธิ์การสมัครใช้บริการ หน่วยเป็นมิลลิวินาทีตั้งแต่ Epoch |
expiryTimeMillis |
เวลาที่การสมัครใช้บริการจะหมดอายุในหน่วยมิลลิวินาทีตั้งแต่ Epoch |
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 แทน |
รหัสข้อผิดพลาด
การดำเนินการของทรัพยากรนี้จะแสดงรหัสข้อผิดพลาดของ HTTP ต่อไปนี้
| รหัสข้อผิดพลาด | เหตุผล | คำอธิบาย | ความละเอียด |
|---|---|---|---|
400 / 410 |
subscriptionExpired |
การสมัครใช้บริการหมดอายุแล้วและไม่สามารถดำเนินการตามที่ขอได้ | ตรวจสอบเวลาหมดอายุของการสมัครใช้บริการ ไม่อนุญาตให้ดำเนินการนี้กับการสมัครใช้บริการที่หมดอายุแล้ว |
400 |
subscriptionInvalidArgument |
มีการระบุอาร์กิวเมนต์ที่ไม่ถูกต้องในคำขอสมัครใช้บริการ | อ่านเอกสารประกอบ API และตรวจสอบว่าได้ระบุช่องที่จำเป็นทั้งหมดและจัดรูปแบบอย่างถูกต้องแล้ว |
400 |
invalidPurchaseState |
การซื้อไม่อยู่ในสถานะที่ถูกต้องเพื่อดำเนินการตามที่ขอ เช่น คุณอาจพยายามตอบรับการซื้อที่ใช้ไปแล้วหรือยกเลิกการสมัครใช้บริการที่ไม่ได้ใช้งาน | ตรวจสอบสถานะปัจจุบันของทรัพยากรโดยใช้ Get API ที่เกี่ยวข้องก่อนที่จะพยายามดำเนินการ ตรวจสอบว่าทรัพยากรอยู่ในสถานะที่เหมาะสมสำหรับการดำเนินการ |
400 |
invalidValue |
ระบุค่าไม่ถูกต้องในคำขอ โดยมักจะแสดงเมื่อโทเค็นการซื้อมีรูปแบบไม่ถูกต้องหรือไม่ถูกต้อง | แก้ไขค่าฟิลด์ที่ไม่ถูกต้องในเนื้อหาคำขอหรือพารามิเตอร์ตามเอกสารอ้างอิง API |
400 |
prepaidSubscriptionNotSupported |
การดำเนินการที่ขอไม่รองรับสำหรับการสมัครใช้บริการแบบชำระเงินล่วงหน้า | ตรวจสอบว่าการดำเนินการใช้ได้กับประเภทการสมัครใช้บริการ ข้อผิดพลาดนี้เกิดขึ้นเฉพาะกับเมธอดอย่างเช่น Cancel |
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 เพื่อดูการหยุดทำงานที่ทราบ |