REST Resource: purchases.subscriptions

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

เลิกใช้งานแล้ว: ใช้ SubscriptionPurchaseV2 แทน แหล่งข้อมูล SubscriptionPurchase จะระบุสถานะการซื้อการสมัครใช้บริการของผู้ใช้

การแสดง JSON
{
  "kind": string,
  "startTimeMillis": string,
  "expiryTimeMillis": string,
  "autoResumeTimeMillis": string,
  "autoRenewing": boolean,
  "priceCurrencyCode": string,
  "priceAmountMicros": string,
  "introductoryPriceInfo": {
    object (IntroductoryPriceInfo)
  },
  "countryCode": string,
  "developerPayload": string,
  "paymentState": integer,
  "cancelReason": integer,
  "userCancellationTimeMillis": string,
  "cancelSurveyResult": {
    object (SubscriptionCancelSurveyResult)
  },
  "orderId": string,
  "linkedPurchaseToken": string,
  "purchaseType": integer,
  "priceChange": {
    object (SubscriptionPriceChange)
  },
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string,
  "profileId": string,
  "acknowledgementState": integer,
  "externalAccountId": string,
  "promotionType": integer,
  "promotionCode": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
ช่อง
kind

string

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

startTimeMillis

string (int64 format)

เวลาที่ให้สิทธิ์การสมัครใช้บริการในหน่วยมิลลิวินาทีตั้งแต่ Epoch

expiryTimeMillis

string (int64 format)

เวลาที่การสมัครใช้บริการจะหมดอายุในหน่วยมิลลิวินาทีนับตั้งแต่เริ่มต้น

autoResumeTimeMillis

string (int64 format)

เวลาที่จะกลับมาใช้การสมัครใช้บริการต่อโดยอัตโนมัติเป็นมิลลิวินาทีตั้งแต่ Epoch จะแสดงก็ต่อเมื่อผู้ใช้ขอหยุดการสมัครใช้บริการชั่วคราว

autoRenewing

boolean

ระบบจะต่ออายุการสมัครใช้บริการโดยอัตโนมัติเมื่อถึงเวลาหมดอายุปัจจุบันหรือไม่

priceCurrencyCode

string

รหัสสกุลเงิน ISO 4217 สำหรับราคาการสมัครใช้บริการ เช่น หากระบุราคาเป็นเงินปอนด์สเตอร์ลิงของอังกฤษ priceCurrencyCode จะเป็น "GBP"

priceAmountMicros

string (int64 format)

ราคาของการสมัครใช้บริการ สำหรับประเทศที่ไม่รวมภาษี ราคานี้จะไม่รวมภาษี สำหรับประเทศที่รวมภาษี ราคาจะรวมภาษีแล้ว ราคาจะแสดงในหน่วยไมโคร โดยหน่วยไมโคร 1,000,000 หน่วยจะแสดงสกุลเงิน 1 หน่วย เช่น หากราคาการสมัครใช้บริการคือ €1.99 priceAmountMicros จะเป็น 1990000

introductoryPriceInfo

object (IntroductoryPriceInfo)

ข้อมูลราคาช่วงแนะนำของการสมัครใช้บริการ โดยจะแสดงเมื่อมีการซื้อการสมัครใช้บริการในราคาช่วงแนะนำเท่านั้น

ช่องนี้ไม่ได้ระบุว่าการสมัครใช้บริการอยู่ในช่วงราคาช่วงแนะนำในขณะนี้

countryCode

string

รหัสประเทศ/ภูมิภาคสำหรับการเรียกเก็บเงินตามมาตรฐาน ISO 3166-1 alpha-2 ของผู้ใช้ ณ เวลาที่ให้สิทธิ์การสมัครใช้บริการ

developerPayload

string

สตริงที่นักพัฒนาแอประบุซึ่งมีข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งซื้อ

paymentState

integer

สถานะการชำระเงินของการสมัครใช้บริการ ค่าที่เป็นไปได้คือ 0 การชำระเงินที่รอดำเนินการ 1 ได้รับการชำระเงินแล้ว 2 ทดลองใช้ฟรี 3 รอการอัปเกรด/ดาวน์เกรดที่เลื่อนออกไป

ไม่มีสำหรับการสมัครใช้บริการที่ยกเลิกแล้วหรือหมดอายุ

cancelReason

integer

เหตุผลที่การสมัครใช้บริการถูกยกเลิกหรือไม่ต่ออายุใหม่อัตโนมัติ ค่าที่เป็นไปได้คือ 0 ผู้ใช้ยกเลิกการสมัครใช้บริการ 1 ระบบยกเลิกการสมัครใช้บริการแล้ว เช่น เนื่องจากปัญหาการเรียกเก็บเงิน 2 ระบบได้แทนที่การสมัครใช้บริการด้วยการสมัครใช้บริการใหม่ 3 นักพัฒนาแอปยกเลิกการสมัครใช้บริการ

userCancellationTimeMillis

string (int64 format)

เวลาที่ผู้ใช้ยกเลิกการสมัครใช้บริการ หน่วยเป็นมิลลิวินาทีตั้งแต่ Epoch แสดงเมื่อ cancelReason เป็น 0 เท่านั้น

cancelSurveyResult

object (SubscriptionCancelSurveyResult)

ข้อมูลที่ผู้ใช้ระบุเมื่อทำโฟลว์การยกเลิกการสมัครใช้บริการเสร็จสมบูรณ์ (แบบสำรวจเหตุผลในการยกเลิก)

orderId

string

รหัสคำสั่งซื้อของการสั่งซื้อแบบประจำล่าสุดที่เชื่อมโยงกับการซื้อการสมัครใช้บริการ หากการสมัครใช้บริการถูกยกเลิกเนื่องจากระบบปฏิเสธการชำระเงิน รหัสนี้จะเป็นรหัสคำสั่งซื้อจากการสั่งซื้อที่ถูกปฏิเสธการชำระเงิน

linkedPurchaseToken

string

โทเค็นการซื้อของการซื้อครั้งแรกเริ่ม หากการสมัครใช้บริการนี้เป็นหนึ่งในรายการต่อไปนี้ 0 การลงชื่อสมัครใช้ซ้ำของการสมัครใช้บริการที่ยกเลิกแล้วแต่ยังไม่หมดอายุ 1 อัปเกรด/ดาวน์เกรดจากการสมัครใช้บริการก่อนหน้า

ตัวอย่างเช่น สมมติว่าผู้ใช้ลงชื่อสมัครใช้ครั้งแรกและคุณได้รับโทเค็นการซื้อ X จากนั้นผู้ใช้ยกเลิกและทำตามขั้นตอนการลงชื่อสมัครใช้อีกครั้ง (ก่อนที่การสมัครใช้บริการจะหมดอายุ) และคุณได้รับโทเค็นการซื้อ Y สุดท้ายผู้ใช้อัปเกรดการสมัครใช้บริการและคุณได้รับโทเค็นการซื้อ Z หากคุณเรียกใช้ API นี้ด้วยโทเค็นการซื้อ Z ระบบจะตั้งค่าช่องนี้เป็น Y หากคุณเรียก API นี้ด้วยโทเค็นการซื้อ Y ระบบจะตั้งค่าช่องนี้เป็น X หากคุณเรียกใช้ API นี้ด้วยโทเค็นการซื้อ X ระบบจะไม่ตั้งค่าช่องนี้

purchaseType

integer

ประเภทการซื้อการสมัครใช้บริการ ระบบจะตั้งค่าช่องนี้ก็ต่อเมื่อการซื้อไม่ได้ดำเนินการโดยใช้ขั้นตอนการเรียกเก็บเงินมาตรฐานในแอป ค่าที่เป็นไปได้คือ 0 ทดสอบ (เช่น ซื้อจากบัญชีทดสอบใบอนุญาต) 1 โปรโมชัน (เช่น ซื้อโดยใช้รหัสโปรโมชัน)

priceChange

object (SubscriptionPriceChange)

ข้อมูลการเปลี่ยนแปลงราคาล่าสุดที่มี ข้อความนี้จะแสดงก็ต่อเมื่อมีการเปลี่ยนแปลงราคาที่กำลังจะเกิดขึ้นสำหรับการสมัครใช้บริการที่ยังไม่มีผล

เมื่อต่ออายุการสมัครใช้บริการด้วยราคาใหม่หรือมีการยกเลิกการสมัครใช้บริการแล้ว ระบบจะไม่แสดงข้อมูลการเปลี่ยนแปลงราคา

profileName

string

ชื่อโปรไฟล์ของผู้ใช้เมื่อซื้อการสมัครใช้บริการ จะแสดงเฉพาะสำหรับการซื้อที่ดำเนินการด้วย "สมัครใช้บริการด้วย Google"

emailAddress

string

อีเมลของผู้ใช้เมื่อซื้อการสมัครใช้บริการ จะแสดงเฉพาะสำหรับการซื้อที่ดำเนินการด้วย "สมัครใช้บริการด้วย Google"

givenName

string

ชื่อต้นของผู้ใช้เมื่อซื้อการสมัครใช้บริการ จะแสดงเฉพาะสำหรับการซื้อที่ดำเนินการด้วย "สมัครใช้บริการด้วย Google"

familyName

string

นามสกุลของผู้ใช้เมื่อซื้อการสมัครใช้บริการ จะแสดงเฉพาะสำหรับการซื้อที่ดำเนินการด้วย "สมัครใช้บริการด้วย Google"

profileId

string

รหัสโปรไฟล์ Google ของผู้ใช้เมื่อมีการซื้อการสมัครใช้บริการ จะแสดงเฉพาะสำหรับการซื้อที่ดำเนินการด้วย "สมัครใช้บริการด้วย Google"

acknowledgementState

integer

สถานะการรับทราบของผลิตภัณฑ์การสมัครใช้บริการ ค่าที่เป็นไปได้คือ 0 ยังไม่ได้รับทราบ 1 รับทราบแล้ว

externalAccountId

string

ตัวระบุบัญชีผู้ใช้ในบริการของบุคคลที่สาม จะแสดงก็ต่อเมื่อมีการลิงก์บัญชีเป็นส่วนหนึ่งของขั้นตอนการซื้อการสมัครใช้บริการ

promotionType

integer

ประเภทโปรโมชันที่ใช้กับการซื้อนี้ ระบบจะตั้งค่าช่องนี้ก็ต่อเมื่อมีการใช้โปรโมชันเมื่อซื้อการสมัครใช้บริการ ค่าที่เป็นไปได้คือ 0 รหัสแบบใช้ครั้งเดียว 1 รหัสแบบสั้น

promotionCode

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 เมื่อทำการซื้อ

IntroductoryPriceInfo

มีข้อมูลราคาช่วงแนะนำสำหรับการสมัครใช้บริการ

การแสดง JSON
{
  "introductoryPriceCurrencyCode": string,
  "introductoryPriceAmountMicros": string,
  "introductoryPricePeriod": string,
  "introductoryPriceCycles": integer
}
ช่อง
introductoryPriceCurrencyCode

string

รหัสสกุลเงิน ISO 4217 สำหรับราคาการสมัครใช้บริการช่วงแนะนำ เช่น หากระบุราคาเป็นเงินปอนด์สเตอร์ลิงของอังกฤษ priceCurrencyCode จะเป็น "GBP"

introductoryPriceAmountMicros

string (int64 format)

ราคาช่วงแนะนำของการสมัครใช้บริการ โดยไม่รวมภาษี สกุลเงินที่ใช้จะเป็นสกุลเงินเดียวกับ priceCurrencyCode ราคาจะแสดงในหน่วยไมโคร โดยหน่วยไมโคร 1,000,000 หน่วยจะแสดงสกุลเงิน 1 หน่วย เช่น หากราคาการสมัครใช้บริการคือ €1.99 priceAmountMicros จะเป็น 1990000

introductoryPricePeriod

string

ระยะเวลาของราคาแนะนำที่ระบุในรูปแบบ ISO 8601 ค่าที่ใช้กันโดยทั่วไป ได้แก่ (แต่ไม่จำกัดเพียง) "P1W" (1 สัปดาห์), "P1M" (1 เดือน), "P3M" (3 เดือน), "P6M" (6 เดือน) และ "P1Y" (1 ปี)

introductoryPriceCycles

integer

จำนวนช่วงเวลาที่เรียกเก็บเงินเพื่อเสนอราคาช่วงแนะนำ

SubscriptionCancelSurveyResult

ข้อมูลที่ผู้ใช้ระบุเมื่อทำโฟลว์การยกเลิกการสมัครใช้บริการเสร็จสมบูรณ์ (แบบสำรวจเหตุผลในการยกเลิก)

การแสดง JSON
{
  "cancelSurveyReason": integer,
  "userInputCancelReason": string
}
ช่อง
cancelSurveyReason

integer

เหตุผลในการยกเลิกที่ผู้ใช้เลือกในแบบสำรวจ ค่าที่เป็นไปได้คือ 0 อื่นๆ 1 ฉันไม่ค่อยได้ใช้บริการนี้ 2. ปัญหาทางเทคนิค 3. เหตุผลด้านราคา 4. ฉันเจอแอปที่ดีกว่า

userInputCancelReason

string

เหตุผลการยกเลิกที่ผู้ใช้ป้อนเอง แสดงเมื่อ cancelReason เป็น 0 เท่านั้น

SubscriptionPriceChange

มีข้อมูลการเปลี่ยนแปลงราคาสำหรับการสมัครใช้บริการที่ใช้ควบคุมเส้นทางของผู้ใช้สำหรับการเปลี่ยนแปลงราคาในแอปได้ ซึ่งอาจอยู่ในรูปแบบของการขอการยืนยันจากผู้ใช้หรือการปรับแต่งประสบการณ์เพื่อให้เกิด Conversion ที่สำเร็จ

การแสดง JSON
{
  "newPrice": {
    object (Price)
  },
  "state": integer
}
ช่อง
newPrice

object (Price)

ราคาใหม่ของการสมัครใช้บริการที่จะต่ออายุหากผู้ใช้ยอมรับการเปลี่ยนแปลงราคา

state

integer

สถานะปัจจุบันของการเปลี่ยนแปลงราคา ค่าที่เป็นไปได้คือ 0 รอดำเนินการ: สถานะของการเปลี่ยนแปลงราคาที่รอดำเนินการซึ่งรอให้ผู้ใช้ยอมรับ ในสถานะนี้ คุณขอการยืนยันจากผู้ใช้โดยใช้ In-App API ได้ 1. ยอมรับแล้ว: สถานะของการเปลี่ยนแปลงราคาที่ยอมรับแล้วซึ่งการสมัครใช้บริการจะต่ออายุด้วยราคานี้ เว้นแต่จะมีการยกเลิก การเปลี่ยนแปลงราคาจะมีผลในวันที่ในอนาคตเมื่อมีการต่ออายุการสมัครใช้บริการ โปรดทราบว่าการเปลี่ยนแปลงอาจไม่เกิดขึ้นเมื่อต่ออายุการสมัครใช้บริการในครั้งถัดไป

เมธอด

acknowledge

รับทราบการซื้อการสมัครใช้บริการ

cancel
(deprecated)

เลิกใช้งานแล้ว: โปรดใช้ purchases.subscriptionsv2.cancel แทน

defer
(deprecated)

เลิกใช้งานแล้ว: ใช้ purchases.subscriptionsv2.defer แทน

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

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