REST Resource: purchases.subscriptions

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

ทรัพยากร 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)

เวลาที่ให้สิทธิ์การสมัครใช้บริการเป็นมิลลิวินาทีที่เริ่มนับมาตั้งแต่วันที่ 1 มกราคม ค.ศ. 1970

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

ยกเลิกการซื้อการสมัครใช้บริการของผู้ใช้

defer

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

get
(deprecated)

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

refund
(deprecated)

เลิกใช้งานแล้ว: ใช้ orders.refund แทน

revoke
(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 เพื่อดูการหยุดทำงานที่ทราบ