REST Resource: purchases.subscriptionsv2

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

ระบุสถานะการซื้อการสมัครใช้บริการของผู้ใช้

การแสดง JSON
{
  "kind": string,
  "regionCode": string,
  "lineItems": [
    {
      object (SubscriptionPurchaseLineItem)
    }
  ],
  "startTime": string,
  "subscriptionState": enum (SubscriptionState),
  "latestOrderId": string,
  "linkedPurchaseToken": string,
  "pausedStateContext": {
    object (PausedStateContext)
  },
  "canceledStateContext": {
    object (CanceledStateContext)
  },
  "testPurchase": {
    object (TestPurchase)
  },
  "acknowledgementState": enum (AcknowledgementState),
  "externalAccountIdentifiers": {
    object (ExternalAccountIdentifiers)
  },
  "subscribeWithGoogleInfo": {
    object (SubscribeWithGoogleInfo)
  },
  "etag": string,
  "outOfAppPurchaseContext": {
    object (OutOfAppPurchaseContext)
  },
  "onHoldStateContext": {
    object (OnHoldStateContext)
  },
  "inGracePeriodStateContext": {
    object (InGracePeriodStateContext)
  }
}
ช่อง
kind

string

ประเภทนี้แสดงออบเจ็กต์ SubscriptionPurchaseV2 ในบริการ androidpublisher

regionCode

string

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

lineItems[]

object (SubscriptionPurchaseLineItem)

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

startTime

string (Timestamp format)

เวลาที่ได้รับสิทธิ์สมัครใช้บริการ ไม่ได้ตั้งค่าสำหรับการสมัครใช้บริการที่รอดำเนินการ (สร้างการสมัครใช้บริการแล้วแต่รอการชำระเงินระหว่างการลงชื่อสมัครใช้)

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

subscriptionState

enum (SubscriptionState)

สถานะปัจจุบันของการสมัครใช้บริการ

latestOrderId
(deprecated)

string

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

linkedPurchaseToken

string

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

pausedStateContext

object (PausedStateContext)

บริบทเพิ่มเติมเกี่ยวกับการสมัครใช้บริการที่หยุดชั่วคราว แสดงเฉพาะในกรณีที่การสมัครใช้บริการมี subscriptionState เป็น SUBSCRIPTION_STATE_PAUSED ในปัจจุบัน

canceledStateContext

object (CanceledStateContext)

บริบทเพิ่มเติมเกี่ยวกับการสมัครใช้บริการที่ยกเลิก แสดงเฉพาะในกรณีที่การสมัครใช้บริการมีสถานะการสมัครใช้บริการเป็น SUBSCRIPTION_STATE_CANCELED หรือ SUBSCRIPTION_STATE_EXPIRED

testPurchase

object (TestPurchase)

จะแสดงก็ต่อเมื่อการซื้อการสมัครใช้บริการนี้เป็นการซื้อทดสอบ

acknowledgementState

enum (AcknowledgementState)

สถานะการรับทราบของการสมัครใช้บริการ

externalAccountIdentifiers

object (ExternalAccountIdentifiers)

ตัวระบุบัญชีผู้ใช้ในบริการของบุคคลที่สาม

subscribeWithGoogleInfo

object (SubscribeWithGoogleInfo)

โปรไฟล์ผู้ใช้ที่เชื่อมโยงกับการซื้อที่ทำด้วย 'สมัครผ่าน Google'

etag

string

แท็กเอนทิตีที่แสดงสถานะปัจจุบันของการสมัครใช้บริการ นักพัฒนาแอปจะระบุ ETag นี้สำหรับการดำเนินการเกี่ยวกับการสมัครใช้บริการ etag นี้จะแสดงเสมอสำหรับการสมัครใช้บริการแบบต่ออายุใหม่อัตโนมัติและแบบชำระเงินล่วงหน้า

outOfAppPurchaseContext

object (OutOfAppPurchaseContext)

บริบทเพิ่มเติมสำหรับการซื้อนอกแอป ข้อมูลนี้จะแสดงเฉพาะสำหรับการซื้อการสมัครใช้บริการซ้ำ (การซื้อการสมัครใช้บริการหลังจากที่การสมัครใช้บริการผลิตภัณฑ์เดียวกันก่อนหน้านี้หมดอายุแล้ว) ที่ดำเนินการผ่านศูนย์การสมัครใช้บริการของ Google Play ระบบจะนำช่องนี้ออกหลังจากที่คุณรับทราบการสมัครใช้บริการแล้ว

onHoldStateContext

object (OnHoldStateContext)

ไม่บังคับ บริบทเพิ่มเติมเกี่ยวกับการสมัครใช้บริการในสถานะ ON_HOLD แสดงเฉพาะในกรณีที่การสมัครใช้บริการมีสถานะการสมัครใช้บริการเป็น SUBSCRIPTION_STATE_ON_HOLD ในปัจจุบัน

inGracePeriodStateContext

object (InGracePeriodStateContext)

ไม่บังคับ บริบทเพิ่มเติมเกี่ยวกับการสมัครใช้บริการในสถานะ IN_GRACE_PERIOD แสดงเฉพาะในกรณีที่การสมัครใช้บริการมี subscriptionState เป็น SUBSCRIPTION_STATE_IN_GRACE_PERIOD ในปัจจุบัน

SubscriptionState

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

Enum
SUBSCRIPTION_STATE_UNSPECIFIED สถานะการสมัครใช้บริการที่ไม่ได้ระบุ
SUBSCRIPTION_STATE_PENDING สร้างการสมัครใช้บริการแล้ว แต่รอการชำระเงินระหว่างการลงชื่อสมัครใช้ ในสถานะนี้ รายการทั้งหมดจะรอการชำระเงิน
SUBSCRIPTION_STATE_ACTIVE การสมัครใช้บริการทำงานอยู่ - (1) หากการสมัครใช้บริการเป็นแพ็กเกจต่ออายุใหม่อัตโนมัติ รายการอย่างน้อย 1 รายการจะต้องมี autoRenewEnabled และไม่หมดอายุ - (2) หากการสมัครใช้บริการเป็นแพ็กเกจแบบชำระเงินล่วงหน้า แสดงว่ามีอย่างน้อย 1 รายการที่ยังไม่หมดอายุ
SUBSCRIPTION_STATE_PAUSED การสมัครใช้บริการหยุดชั่วคราว สถานะจะใช้ได้เมื่อการสมัครใช้บริการเป็นแพ็กเกจแบบต่ออายุใหม่อัตโนมัติเท่านั้น ในสถานะนี้ รายการทั้งหมดจะอยู่ในสถานะหยุดชั่วคราว
SUBSCRIPTION_STATE_IN_GRACE_PERIOD การสมัครใช้บริการอยู่ในระยะเวลาผ่อนผัน สถานะจะใช้ได้เมื่อการสมัครใช้บริการเป็นแพ็กเกจแบบต่ออายุใหม่อัตโนมัติเท่านั้น ในสถานะนี้ รายการทั้งหมดจะอยู่ในระยะเวลาผ่อนผัน
SUBSCRIPTION_STATE_ON_HOLD การสมัครใช้บริการถูกระงับ สถานะจะใช้ได้เมื่อการสมัครใช้บริการเป็นแพ็กเกจแบบต่ออายุใหม่อัตโนมัติเท่านั้น ในสถานะนี้ ระบบจะระงับรายการทั้งหมด
SUBSCRIPTION_STATE_CANCELED การสมัครใช้บริการถูกยกเลิกแล้วแต่ยังไม่หมดอายุ สถานะจะใช้ได้เมื่อการสมัครใช้บริการเป็นแพ็กเกจแบบต่ออายุใหม่อัตโนมัติเท่านั้น รายการทั้งหมดมี autoRenewEnabled ตั้งค่าเป็น false
SUBSCRIPTION_STATE_EXPIRED การสมัครใช้บริการหมดอายุแล้ว รายการทั้งหมดมี expiryTime ในอดีต
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED ยกเลิกธุรกรรมที่รอดำเนินการสำหรับการสมัครใช้บริการแล้ว หากการซื้อที่รอดำเนินการนี้เป็นการสมัครใช้บริการที่มีอยู่ ให้ใช้ linkedPurchaseToken เพื่อดูสถานะปัจจุบันของการสมัครใช้บริการนั้น

PausedStateContext

ข้อมูลเฉพาะสำหรับการสมัครใช้บริการในสถานะหยุดชั่วคราว

การแสดง JSON
{
  "autoResumeTime": string
}
ช่อง
autoResumeTime

string (Timestamp format)

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

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

CanceledStateContext

ข้อมูลเฉพาะสำหรับการสมัครใช้บริการในสถานะ SUBSCRIPTION_STATE_CANCELED หรือ SUBSCRIPTION_STATE_EXPIRED

การแสดง JSON
{

  // Union field cancellation_reason can be only one of the following:
  "userInitiatedCancellation": {
    object (UserInitiatedCancellation)
  },
  "systemInitiatedCancellation": {
    object (SystemInitiatedCancellation)
  },
  "developerInitiatedCancellation": {
    object (DeveloperInitiatedCancellation)
  },
  "replacementCancellation": {
    object (ReplacementCancellation)
  }
  // End of list of possible types for union field cancellation_reason.
}
ช่อง
ฟิลด์ Union cancellation_reason เหตุผลที่ยกเลิกการสมัครใช้บริการ cancellation_reason ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
userInitiatedCancellation

object (UserInitiatedCancellation)

ผู้ใช้ยกเลิกการสมัครใช้บริการ

systemInitiatedCancellation

object (SystemInitiatedCancellation)

ระบบยกเลิกการสมัครใช้บริการแล้ว เช่น เนื่องจากปัญหาการเรียกเก็บเงิน

developerInitiatedCancellation

object (DeveloperInitiatedCancellation)

นักพัฒนาแอปเป็นผู้ยกเลิกการสมัครใช้บริการ

replacementCancellation

object (ReplacementCancellation)

การสมัครใช้บริการถูกแทนที่ด้วยการสมัครใช้บริการใหม่

UserInitiatedCancellation

ข้อมูลเฉพาะเกี่ยวกับการยกเลิกที่ผู้ใช้เป็นผู้เริ่ม

การแสดง JSON
{
  "cancelSurveyResult": {
    object (CancelSurveyResult)
  },
  "cancelTime": string
}
ช่อง
cancelSurveyResult

object (CancelSurveyResult)

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

cancelTime

string (Timestamp format)

เวลาที่ผู้ใช้ยกเลิกการสมัครใช้บริการ ผู้ใช้อาจยังคงมีสิทธิ์เข้าถึงการสมัครใช้บริการหลังจากเวลานี้ ใช้ lineItems.expiry_time เพื่อตรวจสอบว่าผู้ใช้ยังมีสิทธิ์เข้าถึงอยู่หรือไม่

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

CancelSurveyResult

ผลลัพธ์ของแบบสำรวจการยกเลิกเมื่อผู้ใช้ยกเลิกการสมัครใช้บริการ

การแสดง JSON
{
  "reason": enum (CancelSurveyReason),
  "reasonUserInput": string
}
ช่อง
reason

enum (CancelSurveyReason)

เหตุผลที่ผู้ใช้เลือกในแบบสำรวจการยกเลิก

reasonUserInput

string

ตั้งค่าสำหรับ CANCEL_SURVEY_REASON_OTHERS เท่านั้น นี่คือคำตอบแบบอิสระของผู้ใช้ในแบบสำรวจ

CancelSurveyReason

เหตุผลที่ผู้ใช้เลือกในแบบสำรวจการยกเลิก

Enum
CANCEL_SURVEY_REASON_UNSPECIFIED ไม่ได้ระบุเหตุผลในการยกเลิกแบบสำรวจ
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE การใช้งานการสมัครใช้บริการไม่เพียงพอ
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES ปัญหาทางเทคนิคขณะใช้แอป
CANCEL_SURVEY_REASON_FOUND_BETTER_APP ผู้ใช้พบแอปที่ดีกว่า
CANCEL_SURVEY_REASON_OTHERS เหตุผลอื่นๆ

SystemInitiatedCancellation

ประเภทนี้ไม่มีฟิลด์

ข้อมูลเฉพาะเกี่ยวกับการยกเลิกที่ระบบของ Google เป็นผู้เริ่ม

DeveloperInitiatedCancellation

ประเภทนี้ไม่มีฟิลด์

ข้อมูลเฉพาะเกี่ยวกับการยกเลิกที่นักพัฒนาแอปเป็นผู้เริ่ม

ReplacementCancellation

ประเภทนี้ไม่มีฟิลด์

ข้อมูลเฉพาะเกี่ยวกับการยกเลิกที่เกิดจากการแทนที่การสมัครใช้บริการ

TestPurchase

ประเภทนี้ไม่มีฟิลด์

การซื้อการสมัครใช้บริการนี้เป็นการทดสอบการซื้อหรือไม่

AcknowledgementState

สถานะการรับทราบที่เป็นไปได้สำหรับการสมัครใช้บริการ

Enum
ACKNOWLEDGEMENT_STATE_UNSPECIFIED สถานะการรับทราบที่ไม่ได้ระบุ
ACKNOWLEDGEMENT_STATE_PENDING ยังไม่ได้รับทราบการสมัครใช้บริการ
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED ได้รับการยืนยันการสมัครใช้บริการแล้ว

ExternalAccountIdentifiers

ตัวระบุบัญชีผู้ใช้ในบริการของบุคคลที่สาม

การแสดง JSON
{
  "externalAccountId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
ช่อง
externalAccountId

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

SubscribeWithGoogleInfo

ข้อมูลที่เชื่อมโยงกับการซื้อที่ทำด้วย 'สมัครผ่าน Google'

การแสดง JSON
{
  "profileId": string,
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string
}
ช่อง
profileId

string

รหัสโปรไฟล์ Google ของผู้ใช้เมื่อมีการซื้อการสมัครใช้บริการ

profileName

string

ชื่อโปรไฟล์ของผู้ใช้เมื่อซื้อการสมัครใช้บริการ

emailAddress

string

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

givenName

string

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

familyName

string

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

SubscriptionPurchaseLineItem

ข้อมูลระดับสินค้าสำหรับการซื้อการสมัครใช้บริการ

การแสดง JSON
{
  "productId": string,
  "expiryTime": string,
  "latestSuccessfulOrderId": string,

  // Union field plan_type can be only one of the following:
  "autoRenewingPlan": {
    object (AutoRenewingPlan)
  },
  "prepaidPlan": {
    object (PrepaidPlan)
  }
  // End of list of possible types for union field plan_type.
  "offerDetails": {
    object (OfferDetails)
  },

  // Union field deferred_item_change can be only one of the following:
  "deferredItemReplacement": {
    object (DeferredItemReplacement)
  },
  "deferredItemRemoval": {
    object (DeferredItemRemoval)
  }
  // End of list of possible types for union field deferred_item_change.
  "signupPromotion": {
    object (SignupPromotion)
  },
  "itemReplacement": {
    object (ItemReplacement)
  },
  "offerPhase": {
    object (OfferPhase)
  }
}
ช่อง
productId

string

รหัสผลิตภัณฑ์ที่ซื้อ (เช่น "monthly001")

expiryTime

string (Timestamp format)

เวลาที่การสมัครใช้บริการหมดอายุหรือจะหมดอายุ เว้นแต่จะมีการขยายสิทธิ์เข้าถึง (เช่น ต่ออายุ)

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

latestSuccessfulOrderId

string

รหัสคำสั่งซื้อของคำสั่งซื้อล่าสุดที่สำเร็จซึ่งเชื่อมโยงกับรายการนี้ ไม่มีหากผู้ใช้ยังไม่ได้เป็นเจ้าของรายการ (เช่น รายการที่ถูกเลื่อนการเปลี่ยนทดแทน)

ฟิลด์ Union plan_type ประเภทแพ็กเกจการสมัครใช้บริการ plan_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
autoRenewingPlan

object (AutoRenewingPlan)

รายการนี้จะต่ออายุอัตโนมัติ

prepaidPlan

object (PrepaidPlan)

รายการนี้เป็นแบบชำระล่วงหน้า

offerDetails

object (OfferDetails)

รายละเอียดข้อเสนอสำหรับรายการนี้

ฟิลด์ Union deferred_item_change ฟิลด์นี้จะปรากฏขึ้นเมื่อรายการมีการเปลี่ยนแปลงที่เลื่อนออกไป โดยคุณสามารถนำออกหรือแทนที่ได้ deferred_item_change ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
deferredItemReplacement

object (DeferredItemReplacement)

ข้อมูลสำหรับการเปลี่ยนทดแทนสินค้าที่เลื่อนออกไป

deferredItemRemoval

object (DeferredItemRemoval)

ข้อมูลสำหรับการนำรายการออกที่เลื่อนออกไป

signupPromotion

object (SignupPromotion)

รายละเอียดโปรโมชันเกี่ยวกับสินค้านี้ ตั้งค่าเฉพาะในกรณีที่มีการใช้โปรโมชันในระหว่างการลงชื่อสมัครใช้

itemReplacement

object (ItemReplacement)

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

offerPhase

object (OfferPhase)

รายละเอียดระยะข้อเสนอปัจจุบันสำหรับรายการนี้

AutoRenewingPlan

ข้อมูลที่เกี่ยวข้องกับแพ็กเกจแบบต่ออายุใหม่อัตโนมัติ

การแสดง JSON
{
  "autoRenewEnabled": boolean,
  "recurringPrice": {
    object (Money)
  },
  "priceChangeDetails": {
    object (SubscriptionItemPriceChangeDetails)
  },
  "installmentDetails": {
    object (InstallmentPlan)
  },
  "priceStepUpConsentDetails": {
    object (PriceStepUpConsentDetails)
  }
}
ช่อง
autoRenewEnabled

boolean

หากปัจจุบันการสมัครใช้บริการตั้งค่าให้ต่ออายุอัตโนมัติ เช่น ผู้ใช้ไม่ได้ยกเลิกการสมัครใช้บริการ

recurringPrice

object (Money)

ราคาตามรอบปัจจุบันของแพ็กเกจที่ต่ออายุใหม่อัตโนมัติ โปรดทราบว่าราคาไม่รวมส่วนลดและภาษี หากต้องการใช้ราคาที่ไม่รวมภาษี โปรดเรียกใช้ orders.get API แทนหากต้องการรายละเอียดธุรกรรม

priceChangeDetails

object (SubscriptionItemPriceChangeDetails)

ข้อมูลการเปลี่ยนแปลงราคาล่าสุดของรายการตั้งแต่ลงชื่อสมัครใช้

installmentDetails

object (InstallmentPlan)

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

SubscriptionItemPriceChangeDetails

ข้อมูลที่เกี่ยวข้องกับการเปลี่ยนแปลงราคาของรายการการสมัครใช้บริการ

การแสดง JSON
{
  "newPrice": {
    object (Money)
  },
  "priceChangeMode": enum (PriceChangeMode),
  "priceChangeState": enum (PriceChangeState),
  "expectedNewPriceChargeTime": string
}
ช่อง
newPrice

object (Money)

ราคาใหม่ของการสมัครใช้บริการที่เกิดซ้ำ

priceChangeMode

enum (PriceChangeMode)

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

priceChangeState

enum (PriceChangeState)

ระบุว่าขณะนี้มีการเปลี่ยนแปลงราคา

expectedNewPriceChargeTime

string (Timestamp format)

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

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

PriceChangeMode

โหมดของการเปลี่ยนแปลงราคา

Enum
PRICE_CHANGE_MODE_UNSPECIFIED ไม่ได้ระบุโหมดการเปลี่ยนแปลงราคา ไม่ควรตั้งค่านี้
PRICE_DECREASE หากค่าสมัครใช้บริการลดลง
PRICE_INCREASE หากมีการขึ้นราคาการสมัครใช้บริการและผู้ใช้ต้องยอมรับ
OPT_OUT_PRICE_INCREASE หากค่าสมัครใช้บริการมีการขึ้นราคาในโหมดเลือกไม่ยินยอม

PriceChangeState

สถานะของการเปลี่ยนแปลงราคา

Enum
PRICE_CHANGE_STATE_UNSPECIFIED ไม่ได้ระบุสถานะการเปลี่ยนแปลงราคา ไม่ควรใช้ค่านี้
OUTSTANDING กำลังรอให้ผู้ใช้ยอมรับการเปลี่ยนแปลงราคา
CONFIRMED ยืนยันว่าผู้ใช้จะได้รับการเปลี่ยนแปลงราคา
APPLIED การเปลี่ยนแปลงราคาจะมีผล ซึ่งหมายความว่าระบบได้เริ่มเรียกเก็บเงินจากผู้ใช้ในราคาใหม่แล้ว
CANCELED ระบบยกเลิกการเปลี่ยนแปลงราคาแล้ว

InstallmentPlan

ข้อมูลเกี่ยวกับแพ็กเกจการผ่อนชำระ

การแสดง JSON
{
  "initialCommittedPaymentsCount": integer,
  "subsequentCommittedPaymentsCount": integer,
  "remainingCommittedPaymentsCount": integer,
  "pendingCancellation": {
    object (PendingCancellation)
  }
}
ช่อง
initialCommittedPaymentsCount

integer

จำนวนการชำระเงินทั้งหมดที่ผู้ใช้ตกลงไว้ในตอนแรก

subsequentCommittedPaymentsCount

integer

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

remainingCommittedPaymentsCount

integer

จำนวนการชำระเงินตามสัญญาที่เหลือทั้งหมดซึ่งต้องชำระในรอบการต่ออายุนี้

pendingCancellation

object (PendingCancellation)

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

PendingCancellation

ประเภทนี้ไม่มีฟิลด์

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

PriceStepUpConsentDetails

ข้อมูลที่เกี่ยวข้องกับการปรับราคาขึ้นซึ่งต้องได้รับความยินยอมของผู้ใช้

การแสดง JSON
{
  "state": enum (ConsentState),
  "consentDeadlineTime": string,
  "newPrice": {
    object (Money)
  }
}
ช่อง
state

enum (ConsentState)

เอาต์พุตเท่านั้น สถานะของความยินยอมในการขึ้นราคา

consentDeadlineTime

string (Timestamp format)

กำหนดเวลาที่ผู้ใช้ต้องให้ความยินยอม หากไม่ได้รับความยินยอมภายในเวลานี้ ระบบจะยกเลิกการสมัครใช้บริการ

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

newPrice

object (Money)

ราคาใหม่ที่ต้องได้รับความยินยอมของผู้ใช้

ConsentState

สถานะของความยินยอมในการขึ้นราคา

Enum
CONSENT_STATE_UNSPECIFIED สถานะความยินยอมที่ไม่ได้ระบุ
PENDING ผู้ใช้ยังไม่ได้ให้ความยินยอม
CONFIRMED ผู้ใช้ได้ให้ความยินยอมแล้ว และราคาใหม่กำลังรอให้มีผล
COMPLETED ผู้ใช้ได้ให้ความยินยอมแล้ว และราคาใหม่มีผลแล้ว

PrepaidPlan

ข้อมูลที่เกี่ยวข้องกับแพ็กเกจแบบชำระเงินล่วงหน้า

การแสดง JSON
{
  "allowExtendAfterTime": string
}
ช่อง
allowExtendAfterTime

string (Timestamp format)

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

ใช้ RFC 3339 โดยเอาต์พุตที่สร้างขึ้นจะได้รับการแปลงเป็นรูปแบบ Z เสมอ และใช้ตัวเลขเศษส่วน 0, 3, 6 หรือ 9 หลัก นอกจากนี้ ระบบยังยอมรับออฟเซ็ตอื่นๆ นอกเหนือจาก "Z" ด้วย เช่น "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" หรือ "2014-10-02T15:01:23+05:30"

OfferDetails

ข้อมูลรายละเอียดข้อเสนอที่เกี่ยวข้องกับรายการโฆษณาการซื้อ

การแสดง JSON
{
  "offerTags": [
    string
  ],
  "basePlanId": string,
  "offerId": string
}
ช่อง
offerTags[]

string

แท็กข้อเสนอล่าสุดที่เชื่อมโยงกับข้อเสนอ ซึ่งรวมถึงแท็กที่รับช่วงมาจากแพ็กเกจเริ่มต้น

basePlanId

string

รหัสแพ็กเกจเริ่มต้น มีให้สำหรับแพ็กเกจเริ่มต้นและข้อเสนอทั้งหมด

offerId

string

รหัสข้อเสนอ แสดงเฉพาะข้อเสนอที่ลดราคา

DeferredItemReplacement

ข้อมูลที่เกี่ยวข้องกับการเปลี่ยนทดแทนไอเทมที่เลื่อนออกไป

การแสดง JSON
{
  "productId": string
}
ช่อง
productId

string

รหัสผลิตภัณฑ์ที่จะแทนที่รหัสผลิตภัณฑ์ที่มีอยู่

DeferredItemRemoval

ประเภทนี้ไม่มีฟิลด์

ข้อมูลที่เกี่ยวข้องกับการเปลี่ยนทดแทนไอเทมที่เลื่อนออกไป

SignupPromotion

โปรโมชันที่ใช้กับรายการนี้เมื่อซื้อ

การแสดง JSON
{

  // Union field promotion_type can be only one of the following:
  "oneTimeCode": {
    object (OneTimeCode)
  },
  "vanityCode": {
    object (VanityCode)
  }
  // End of list of possible types for union field promotion_type.
}
ช่อง
ฟิลด์ Union promotion_type ประเภทของโปรโมชันที่ใช้กับสินค้า promotion_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
oneTimeCode

object (OneTimeCode)

มีการใช้รหัสแบบใช้ครั้งเดียว

vanityCode

object (VanityCode)

มีการใช้รหัสที่กำหนดเอง

OneTimeCode

ประเภทนี้ไม่มีฟิลด์

รหัสโปรโมชันแบบใช้ครั้งเดียว

VanityCode

รหัสโปรโมชันที่กำหนดไว้ล่วงหน้าซึ่งใช้ได้หลายครั้ง

การแสดง JSON
{
  "promotionCode": string
}
ช่อง
promotionCode

string

รหัสโปรโมชัน

ItemReplacement

รายละเอียดเกี่ยวกับรายการโฆษณาการสมัครใช้บริการที่จะแทนที่

การแสดง JSON
{
  "productId": string,
  "replacementMode": enum (ReplacementMode),
  "basePlanId": string,
  "offerId": string
}
ช่อง
productId

string

รหัสผลิตภัณฑ์ของรายการโฆษณาการสมัครใช้บริการที่จะแทนที่

replacementMode

enum (ReplacementMode)

โหมดการเปลี่ยนทดแทนที่ใช้ในระหว่างการซื้อ

basePlanId

string

รหัสแพ็กเกจเริ่มต้นของรายการโฆษณาการสมัครใช้บริการที่จะแทนที่

offerId

string

รหัสข้อเสนอของรายการโฆษณาการสมัครใช้บริการที่จะแทนที่ (หากมี)

ReplacementMode

โหมดการแทนที่สำหรับการสมัครใช้บริการ

Enum
REPLACEMENT_MODE_UNSPECIFIED โหมดการแทนที่ที่ไม่ได้ระบุ
WITH_TIME_PRORATION ระบบจะเฉลี่ยตามสัดส่วนและเครดิตแพ็กเกจใหม่จากแพ็กเกจเก่า
CHARGE_PRORATED_PRICE ระบบจะเรียกเก็บเงินจากผู้ใช้ตามสัดส่วนสำหรับแพ็กเกจใหม่
WITHOUT_PRORATION แพ็กเกจใหม่จะแทนที่แพ็กเกจเก่าโดยไม่มีการปันส่วนเวลา
CHARGE_FULL_PRICE ระบบจะเรียกเก็บเงินค่าแพ็กเกจใหม่เต็มจำนวนจากผู้ใช้
DEFERRED ระบบจะยกเลิกแพ็กเกจเก่าและแพ็กเกจใหม่จะมีผลหลังจากแพ็กเกจเก่าหมดอายุ
KEEP_EXISTING แพ็กเกจจะยังคงเหมือนเดิมเมื่อมีการเปลี่ยนทดแทน

OfferPhase

รายละเอียดระยะข้อเสนอ

การแสดง JSON
{

  // Union field offer_phase can be only one of the following:
  "prorationPeriod": {
    object (ProrationPeriodOfferPhase)
  },
  "freeTrial": {
    object (FreeTrialOfferPhase)
  },
  "introductoryPrice": {
    object (IntroductoryPriceOfferPhase)
  },
  "basePrice": {
    object (BasePriceOfferPhase)
  }
  // End of list of possible types for union field offer_phase.
}
ช่อง
ฟิลด์ Union offer_phase รายละเอียดระยะข้อเสนอ offer_phase ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
prorationPeriod

object (ProrationPeriodOfferPhase)

กำหนดเมื่อระยะข้อเสนอเป็นระยะเวลาการปันส่วนตามสัดส่วน

freeTrial

object (FreeTrialOfferPhase)

ตั้งค่าเมื่อระยะข้อเสนอเป็นช่วงทดลองใช้ฟรี

introductoryPrice

object (IntroductoryPriceOfferPhase)

ตั้งค่าเมื่อเฟสข้อเสนอเป็นเฟสข้อเสนอราคาช่วงแนะนำ

basePrice

object (BasePriceOfferPhase)

ตั้งค่าเมื่อระยะข้อเสนอเป็นระยะการกำหนดราคาแพ็กเกจเริ่มต้น

ProrationPeriodOfferPhase

รายละเอียดเกี่ยวกับระยะข้อเสนอการเสนอราคาตามสัดส่วน

การแสดง JSON
{
  "originalOfferPhaseType": enum (OriginalOfferPhaseType)
}
ช่อง
originalOfferPhaseType

enum (OriginalOfferPhaseType)

ประเภทระยะข้อเสนอเดิมก่อนระยะเวลาการปันส่วน ตั้งค่าเมื่อมีการอัปเดตระยะเวลาการคิดตามสัดส่วนจากระยะข้อเสนอที่มีอยู่เท่านั้น

OriginalOfferPhaseType

ระยะข้อเสนอเดิมของการชำระเงินตามข้อเสนอ หากการชำระเงินตามข้อเสนอเป็นการชำระเงินตามสัดส่วน

Enum
ORIGINAL_OFFER_PHASE_TYPE_UNSPECIFIED ประเภทระยะข้อเสนอเดิมที่ไม่ได้ระบุ
BASE การสมัครใช้บริการอยู่ในระยะการกำหนดราคาฐาน (เช่น ราคาเต็ม)
INTRODUCTORY การสมัครใช้บริการอยู่ในระยะราคาช่วงแนะนำ
FREE_TRIAL การสมัครใช้บริการนี้อยู่ในช่วงทดลองใช้ฟรี

FreeTrialOfferPhase

ประเภทนี้ไม่มีฟิลด์

รายละเอียดเกี่ยวกับระยะข้อเสนอช่วงทดลองใช้ฟรี

IntroductoryPriceOfferPhase

ประเภทนี้ไม่มีฟิลด์

รายละเอียดเกี่ยวกับระยะเวลาของข้อเสนอราคาช่วงแนะนำ

BasePriceOfferPhase

ประเภทนี้ไม่มีฟิลด์

รายละเอียดเกี่ยวกับระยะการเสนอราคาฐาน

OutOfAppPurchaseContext

ข้อมูลเฉพาะสำหรับการซื้อนอกแอป

การแสดง JSON
{
  "expiredExternalAccountIdentifiers": {
    object (ExternalAccountIdentifiers)
  },
  "expiredPurchaseToken": string
}
ช่อง
expiredExternalAccountIdentifiers

object (ExternalAccountIdentifiers)

ตัวระบุบัญชีผู้ใช้จากการสมัครใช้บริการที่หมดอายุล่าสุดสำหรับ SKU นี้

expiredPurchaseToken

string

โทเค็นการซื้อของการสมัครใช้บริการล่าสุดที่หมดอายุ โทเค็นการซื้อนี้ต้องใช้เพื่อช่วยระบุผู้ใช้เท่านั้น หากคุณจัดเก็บลิงก์ระหว่าง purchaseToken กับผู้ใช้ไว้ในฐานข้อมูล คุณจะใช้โทเค็นนี้เพื่อเรียก Google Developer API ไม่ได้หากโทเค็นหมดอายุนานเกิน 60 วัน

OnHoldStateContext

บริบทเพิ่มเติมเกี่ยวกับการสมัครใช้บริการในสถานะ ON_HOLD

การแสดง JSON
{

  // Union field on_hold_reason can be only one of the following:
  "renewalDeclined": {
    object (RenewalDeclinedContext)
  }
  // End of list of possible types for union field on_hold_reason.
}
ช่อง
ฟิลด์ Union on_hold_reason เหตุผลที่การสมัครใช้บริการอยู่ในสถานะ ON_HOLD on_hold_reason ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
renewalDeclined

object (RenewalDeclinedContext)

ไม่บังคับ การชำระเงินสำหรับการต่ออายุถูกปฏิเสธ

RenewalDeclinedContext

บริบทที่เกี่ยวข้องกับสถานการณ์การต่ออายุที่ถูกปฏิเสธ

การแสดง JSON
{
  "pendingOrderId": string
}
ช่อง
pendingOrderId

string

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

InGracePeriodStateContext

บริบทเพิ่มเติมเกี่ยวกับการสมัครใช้บริการในสถานะ IN_GRACE_PERIOD

การแสดง JSON
{

  // Union field grace_period_reason can be only one of the following:
  "renewalDeclined": {
    object (RenewalDeclinedContext)
  }
  // End of list of possible types for union field grace_period_reason.
}
ช่อง
ฟิลด์ Union grace_period_reason เหตุผลที่การสมัครใช้บริการอยู่ในสถานะ IN_GRACE_PERIOD grace_period_reason ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้เท่านั้น
renewalDeclined

object (RenewalDeclinedContext)

ไม่บังคับ การชำระเงินสำหรับการต่ออายุถูกปฏิเสธ

เมธอด

cancel

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

defer

เลื่อนการต่ออายุการสมัครใช้บริการ

get

รับข้อมูลเมตาเกี่ยวกับการสมัครใช้บริการ

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