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)

เวลาที่ให้สิทธิ์การสมัครใช้บริการ หน่วยเป็นมิลลิวินาทีที่เริ่มนับมาตั้งแต่วันที่ 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
(deprecated)

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

defer
(deprecated)

เลิกใช้งานแล้ว: โปรดใช้ purchases.subscriptionsv2.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 เพื่อดูการหยุดทำงานที่ทราบ