REST Resource: purchases.subscriptionsv2

Tài nguyên: SubscriptionPurchaseV2

Cho biết trạng thái của giao dịch mua gói thuê bao của người dùng.

Biểu diễn dưới dạng 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)
  }
}
Trường
kind

string

Loại này đại diện cho đối tượng SubscriptionPurchaseV2 trong dịch vụ androidpublisher.

regionCode

string

Mã quốc gia/khu vực thanh toán theo ISO 3166-1 alpha-2 của người dùng tại thời điểm cấp gói thuê bao.

lineItems[]

object (SubscriptionPurchaseLineItem)

Thông tin ở cấp mặt hàng cho giao dịch mua gói thuê bao. Các mặt hàng trong cùng một giao dịch mua phải đều có AutoRenewingPlan hoặc đều có PrepaidPlan.

startTime

string (Timestamp format)

Thời điểm cấp gói thuê bao. Chưa được đặt cho các gói thuê bao đang chờ xử lý (gói thuê bao đã được tạo nhưng đang chờ thanh toán trong quá trình đăng ký).

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

subscriptionState

enum (SubscriptionState)

Trạng thái hiện tại của gói thuê bao.

latestOrderId

string

Mã đơn đặt hàng của đơn đặt hàng mới nhất được liên kết với giao dịch mua gói thuê bao. Đối với gói thuê bao tự động gia hạn, đây là mã đơn đặt hàng của đơn đăng ký nếu đơn đặt hàng đó chưa được gia hạn hoặc mã đơn đặt hàng định kỳ gần đây nhất (đơn đặt hàng thành công, đang chờ xử lý hoặc bị từ chối). Đối với gói thuê bao trả trước, đây là mã đơn hàng được liên kết với mã thông báo giao dịch mua được truy vấn.

linkedPurchaseToken

string

Mã thông báo giao dịch mua của gói thuê bao cũ nếu gói thuê bao này thuộc một trong những trường hợp sau: * Đăng ký lại gói thuê bao đã huỷ nhưng chưa hết hạn * Nâng cấp/hạ cấp từ một gói thuê bao trước đó. * Chuyển đổi từ gói thuê bao trả trước sang gói thuê bao tự động gia hạn. * Chuyển đổi từ gói thuê bao tự động gia hạn sang gói trả trước. * Nạp tiền cho gói thuê bao trả trước.

pausedStateContext

object (PausedStateContext)

Thông tin bổ sung về các gói thuê bao đang tạm dừng. Chỉ xuất hiện nếu gói thuê bao hiện có subscriptionState SUBSCRIPTION_STATE_PAUSED.

canceledStateContext

object (CanceledStateContext)

Thông tin bổ sung về các gói thuê bao đã huỷ. Chỉ xuất hiện nếu gói thuê bao hiện có subscriptionState SUBSCRIPTION_STATE_CANCELED hoặc SUBSCRIPTION_STATE_EXPIRED.

testPurchase

object (TestPurchase)

Chỉ xuất hiện nếu giao dịch mua gói thuê bao này là giao dịch mua thử.

acknowledgementState

enum (AcknowledgementState)

Trạng thái xác nhận của gói thuê bao.

externalAccountIdentifiers

object (ExternalAccountIdentifiers)

Giá trị nhận dạng tài khoản người dùng trong dịch vụ bên thứ ba.

subscribeWithGoogleInfo

object (SubscribeWithGoogleInfo)

Hồ sơ người dùng được liên kết với các giao dịch mua được thực hiện bằng tính năng "Đăng ký bằng Google".

SubscriptionState

Các trạng thái tiềm năng mà gói thuê bao có thể ở, ví dụ: gói thuê bao đó có đang hoạt động hay đã bị huỷ. Các mặt hàng trong giao dịch mua gói thuê bao có thể là tất cả gói tự động gia hạn hoặc tất cả gói trả trước.

Enum
SUBSCRIPTION_STATE_UNSPECIFIED Trạng thái gói thuê bao chưa xác định.
SUBSCRIPTION_STATE_PENDING Gói thuê bao đã được tạo nhưng đang chờ thanh toán trong quá trình đăng ký. Ở trạng thái này, tất cả các mặt hàng đều đang chờ thanh toán.
SUBSCRIPTION_STATE_ACTIVE Gói thuê bao đang hoạt động. – (1) Nếu gói thuê bao là gói tự động gia hạn, thì ít nhất một mục phải có autoRenewEnabled và chưa hết hạn. – (2) Nếu gói thuê bao là gói trả trước, thì ít nhất một mục phải chưa hết hạn.
SUBSCRIPTION_STATE_PAUSED Gói thuê bao đã bị tạm dừng. Trạng thái này chỉ có khi gói thuê bao là gói tự động gia hạn. Ở trạng thái này, tất cả các mục đều ở trạng thái tạm dừng.
SUBSCRIPTION_STATE_IN_GRACE_PERIOD Gói thuê bao đang trong thời gian ân hạn. Trạng thái này chỉ có khi gói thuê bao là gói tự động gia hạn. Ở trạng thái này, tất cả các mục đều đang trong thời gian gia hạn.
SUBSCRIPTION_STATE_ON_HOLD Gói thuê bao đang bị tạm ngưng. Trạng thái này chỉ có khi gói thuê bao là gói tự động gia hạn. Ở trạng thái này, tất cả các mục đều bị tạm ngưng.
SUBSCRIPTION_STATE_CANCELED Gói thuê bao đã bị huỷ nhưng chưa hết hạn. Trạng thái này chỉ có khi gói thuê bao là gói tự động gia hạn. Tất cả các mục đều có autoRenewEnabled được đặt thành false.
SUBSCRIPTION_STATE_EXPIRED Gói thuê bao đã hết hạn. Tất cả các mục đều có expiryTime trong quá khứ.
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED Giao dịch đang chờ xử lý cho gói thuê bao đã bị huỷ. Nếu giao dịch mua đang chờ xử lý này là cho một gói thuê bao hiện có, hãy sử dụng linkedPurchaseToken để biết trạng thái hiện tại của gói thuê bao đó.

PausedStateContext

Thông tin cụ thể về một gói thuê bao ở trạng thái tạm dừng.

Biểu diễn dưới dạng JSON
{
  "autoResumeTime": string
}
Trường
autoResumeTime

string (Timestamp format)

Thời điểm gói thuê bao sẽ tự động tiếp tục.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

CanceledStateContext

Thông tin dành riêng cho một gói thuê bao ở trạng thái SUBSCRIPTION_STATE_CANCELED hoặc SUBSCRIPTION_STATE_EXPIRED.

Biểu diễn dưới dạng 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.
}
Trường
Trường hợp hợp nhất cancellation_reason. Lý do khiến một gói thuê bao bị huỷ. cancellation_reason chỉ có thể là một trong những loại sau:
userInitiatedCancellation

object (UserInitiatedCancellation)

Người dùng đã huỷ gói thuê bao.

systemInitiatedCancellation

object (SystemInitiatedCancellation)

Hệ thống đã huỷ gói thuê bao, ví dụ: do vấn đề thanh toán.

developerInitiatedCancellation

object (DeveloperInitiatedCancellation)

Nhà phát triển đã huỷ gói thuê bao.

replacementCancellation

object (ReplacementCancellation)

Gói thuê bao đã được thay thế bằng một gói thuê bao mới.

UserInitiatedCancellation

Thông tin cụ thể về các yêu cầu huỷ do người dùng thực hiện.

Biểu diễn dưới dạng JSON
{
  "cancelSurveyResult": {
    object (CancelSurveyResult)
  },
  "cancelTime": string
}
Trường
cancelSurveyResult

object (CancelSurveyResult)

Thông tin do người dùng cung cấp khi họ hoàn tất quy trình huỷ gói thuê bao (bản khảo sát về lý do huỷ).

cancelTime

string (Timestamp format)

Thời điểm người dùng huỷ gói thuê bao. Người dùng có thể vẫn có quyền truy cập vào gói thuê bao sau thời điểm này. Sử dụng lineItems.expiry_time để xác định xem người dùng có còn quyền truy cập hay không.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

CancelSurveyResult

Kết quả của cuộc khảo sát về việc huỷ khi người dùng huỷ gói thuê bao.

Biểu diễn dưới dạng JSON
{
  "reason": enum (CancelSurveyReason),
  "reasonUserInput": string
}
Trường
reason

enum (CancelSurveyReason)

Lý do mà người dùng đã chọn trong bản khảo sát về lý do huỷ.

reasonUserInput

string

Chỉ đặt cho CANCEL_SURVEY_REASON_OTHERS. Đây là câu trả lời dạng tự do của người dùng cho cuộc khảo sát.

CancelSurveyReason

Lý do mà người dùng đã chọn trong bản khảo sát về lý do huỷ.

Enum
CANCEL_SURVEY_REASON_UNSPECIFIED Chưa xác định lý do huỷ bản khảo sát.
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE Không sử dụng đủ gói thuê bao.
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES Vấn đề kỹ thuật khi dùng ứng dụng.
CANCEL_SURVEY_REASON_FOUND_BETTER_APP Người dùng đã tìm thấy một ứng dụng tốt hơn.
CANCEL_SURVEY_REASON_OTHERS Lý do khác.

SystemInitiatedCancellation

Loại này không có trường nào.

Thông tin cụ thể về các yêu cầu huỷ do hệ thống của Google thực hiện.

DeveloperInitiatedCancellation

Loại này không có trường nào.

Thông tin cụ thể về các yêu cầu huỷ do nhà phát triển thực hiện.

ReplacementCancellation

Loại này không có trường nào.

Thông tin cụ thể về các trường hợp huỷ do thay thế gói thuê bao.

TestPurchase

Loại này không có trường nào.

Liệu giao dịch mua gói thuê bao này có phải là giao dịch mua thử không.

AcknowledgementState

Các trạng thái xác nhận có thể có cho một gói thuê bao.

Enum
ACKNOWLEDGEMENT_STATE_UNSPECIFIED Trạng thái xác nhận không xác định.
ACKNOWLEDGEMENT_STATE_PENDING Gói thuê bao chưa được xác nhận.
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED Chúng tôi đã xác nhận việc đăng ký.

ExternalAccountIdentifiers

Giá trị nhận dạng tài khoản người dùng trong dịch vụ bên thứ ba.

Biểu diễn dưới dạng JSON
{
  "externalAccountId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
Trường
externalAccountId

string

Giá trị nhận dạng tài khoản người dùng trong dịch vụ bên thứ ba. Chỉ xuất hiện nếu quá trình liên kết tài khoản diễn ra trong quy trình mua gói thuê bao.

obfuscatedExternalAccountId

string

Phiên bản mã nhận dạng bị làm rối được liên kết duy nhất với tài khoản của người dùng trong ứng dụng. Xuất hiện trong các giao dịch mua sau: * Nếu quá trình liên kết tài khoản diễn ra trong quy trình mua gói thuê bao. * Mã này được chỉ định bằng https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid khi giao dịch mua được thực hiện.

obfuscatedExternalProfileId

string

Phiên bản mã nhận dạng đã làm rối mã nguồn được liên kết riêng biệt với hồ sơ của người dùng trong ứng dụng. Chỉ xuất hiện nếu được chỉ định bằng https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid khi giao dịch mua được thực hiện.

SubscribeWithGoogleInfo

Thông tin liên quan đến các giao dịch mua được thực hiện bằng tính năng "Đăng ký bằng Google".

Biểu diễn dưới dạng JSON
{
  "profileId": string,
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string
}
Trường
profileId

string

Mã hồ sơ Google của người dùng khi họ mua gói thuê bao.

profileName

string

Tên hồ sơ của người dùng khi mua gói thuê bao.

emailAddress

string

Địa chỉ email của người dùng khi người dùng mua gói thuê bao.

givenName

string

Tên của người dùng khi mua gói thuê bao.

familyName

string

Họ của người dùng khi mua gói thuê bao.

SubscriptionPurchaseLineItem

Thông tin ở cấp mặt hàng cho giao dịch mua gói thuê bao.

Biểu diễn dưới dạng JSON
{
  "productId": string,
  "expiryTime": 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)
  }
  // End of list of possible types for union field deferred_item_change.
  "signupPromotion": {
    object (SignupPromotion)
  }
}
Trường
productId

string

Mã sản phẩm được mua (ví dụ: "monthly001").

expiryTime

string (Timestamp format)

Thời điểm gói thuê bao hết hạn hoặc sẽ hết hạn trừ phi quyền truy cập được gia hạn (ví dụ: gia hạn).

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

Trường hợp hợp nhất plan_type. Loại gói thuê bao. plan_type chỉ có thể là một trong những loại sau:
autoRenewingPlan

object (AutoRenewingPlan)

Mục này đang tự động gia hạn.

prepaidPlan

object (PrepaidPlan)

Mặt hàng được thanh toán trước.

offerDetails

object (OfferDetails)

Thông tin chi tiết về ưu đãi cho mặt hàng này.

Trường hợp hợp nhất deferred_item_change. Trường này xuất hiện khi một mục có thay đổi bị trì hoãn. Bạn có thể xoá hoặc thay thế tệp đó. deferred_item_change chỉ có thể là một trong những loại sau:
deferredItemReplacement

object (DeferredItemReplacement)

Thông tin về việc thay thế mặt hàng bị trì hoãn.

signupPromotion

object (SignupPromotion)

Thông tin chi tiết về chương trình khuyến mãi của mặt hàng này. Chỉ được đặt nếu người dùng đã áp dụng chương trình khuyến mãi trong quá trình đăng ký.

AutoRenewingPlan

Thông tin liên quan đến gói tự động gia hạn.

Biểu diễn dưới dạng JSON
{
  "autoRenewEnabled": boolean,
  "priceChangeDetails": {
    object (SubscriptionItemPriceChangeDetails)
  },
  "installmentDetails": {
    object (InstallmentPlan)
  }
}
Trường
autoRenewEnabled

boolean

Nếu gói thuê bao hiện đang được đặt thành tự động gia hạn, ví dụ: người dùng chưa huỷ gói thuê bao

priceChangeDetails

object (SubscriptionItemPriceChangeDetails)

Thông tin về lần thay đổi giá gần đây nhất của mặt hàng kể từ khi người dùng đăng ký gói thuê bao.

installmentDetails

object (InstallmentPlan)

Cam kết về gói trả góp và thông tin liên quan đến trạng thái của gói tự động gia hạn.

SubscriptionItemPriceChangeDetails

Thông tin liên quan đến việc thay đổi giá của một mặt hàng trong gói thuê bao.

Biểu diễn dưới dạng JSON
{
  "newPrice": {
    object (Money)
  },
  "priceChangeMode": enum (PriceChangeMode),
  "priceChangeState": enum (PriceChangeState),
  "expectedNewPriceChargeTime": string
}
Trường
newPrice

object (Money)

Giá định kỳ mới cho mặt hàng thuê bao.

priceChangeMode

enum (PriceChangeMode)

Chế độ thay đổi giá chỉ định cách giá của mặt hàng trong gói thuê bao thay đổi.

priceChangeState

enum (PriceChangeState)

Trạng thái của việc thay đổi giá.

expectedNewPriceChargeTime

string (Timestamp format)

Thời điểm gia hạn mà thay đổi về giá sẽ có hiệu lực đối với người dùng. Thời gian này có thể thay đổi(thành một thời điểm trong tương lai) do các trường hợp thời gian gia hạn thay đổi như tạm dừng. Trường này chỉ được điền nếu thay đổi về giá chưa có hiệu lực.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

PriceChangeMode

Chế độ thay đổi giá.

Enum
PRICE_CHANGE_MODE_UNSPECIFIED Chưa chỉ định chế độ thay đổi giá. Bạn không được đặt giá trị này.
PRICE_DECREASE Nếu giá gói thuê bao giảm.
PRICE_INCREASE Nếu giá gói thuê bao đang tăng và người dùng cần chấp nhận việc tăng giá.
OPT_OUT_PRICE_INCREASE Nếu giá gói thuê bao đang tăng ở chế độ không cần có sự đồng ý.

PriceChangeState

Trạng thái của thay đổi giá.

Enum
PRICE_CHANGE_STATE_UNSPECIFIED Trạng thái thay đổi giá chưa được chỉ định. Không nên sử dụng giá trị này.
OUTSTANDING Đang chờ người dùng đồng ý với việc thay đổi giá.
CONFIRMED Người dùng đã xác nhận việc thay đổi giá.
APPLIED Thay đổi về giá được áp dụng, tức là người dùng đã bắt đầu được tính phí theo mức giá mới.

InstallmentPlan

Thông tin về một gói trả góp.

Biểu diễn dưới dạng JSON
{
  "initialCommittedPaymentsCount": integer,
  "subsequentCommittedPaymentsCount": integer,
  "remainingCommittedPaymentsCount": integer,
  "pendingCancellation": {
    object (PendingCancellation)
  }
}
Trường
initialCommittedPaymentsCount

integer

Tổng số khoản thanh toán mà người dùng cam kết ban đầu.

subsequentCommittedPaymentsCount

integer

Tổng số khoản thanh toán mà người dùng sẽ cam kết sau mỗi khoảng thời gian cam kết. Trống có nghĩa là gói trả góp sẽ chuyển về gói thuê bao tự động gia hạn thông thường sau khi hết thời hạn cam kết ban đầu.

remainingCommittedPaymentsCount

integer

Tổng số khoản thanh toán đã cam kết còn phải thanh toán trong chu kỳ gia hạn này.

pendingCancellation

object (PendingCancellation)

Nếu có, gói trả góp này đang chờ huỷ. Việc huỷ chỉ diễn ra sau khi người dùng hoàn tất tất cả các khoản thanh toán đã cam kết.

PendingCancellation

Loại này không có trường nào.

Đây là chỉ báo cho biết liệu có yêu cầu huỷ đang chờ xử lý đối với gói trả góp ảo hay không. Việc huỷ chỉ diễn ra sau khi người dùng hoàn tất tất cả các khoản thanh toán đã cam kết.

PrepaidPlan

Thông tin liên quan đến gói trả trước.

Biểu diễn dưới dạng JSON
{
  "allowExtendAfterTime": string
}
Trường
allowExtendAfterTime

string (Timestamp format)

Nếu có, đây là thời điểm sau đó người dùng có thể mua gói nạp tiền cho gói trả trước. Sẽ không xuất hiện đối với các gói trả trước đã hết hạn.

Dấu thời gian ở định dạng "Zulu" RFC3339 UTC, có độ phân giải nano giây và tối đa 9 chữ số thập phân. Ví dụ: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z".

OfferDetails

Thông tin chi tiết về ưu đãi liên quan đến một mục hàng mua.

Biểu diễn dưới dạng JSON
{
  "offerTags": [
    string
  ],
  "basePlanId": string,
  "offerId": string
}
Trường
offerTags[]

string

Thẻ mặt hàng mới nhất được liên kết với mặt hàng. Gói này bao gồm các thẻ được kế thừa từ gói cơ bản.

basePlanId

string

Mã gói cơ bản. Có trong tất cả các gói cơ bản và ưu đãi.

offerId

string

Mã ưu đãi. Chỉ xuất hiện đối với các mặt hàng giảm giá.

DeferredItemReplacement

Thông tin liên quan đến việc thay thế mặt hàng bị trì hoãn.

Biểu diễn dưới dạng JSON
{
  "productId": string
}
Trường
productId

string

productId sẽ thay thế productId hiện có.

SignupPromotion

Chương trình khuyến mãi được áp dụng cho mặt hàng này khi mua.

Biểu diễn dưới dạng 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.
}
Trường
Trường hợp hợp nhất promotion_type. Loại chương trình khuyến mãi được áp dụng cho mặt hàng. promotion_type chỉ có thể là một trong những loại sau:
oneTimeCode

object (OneTimeCode)

Mã một lần đã được áp dụng.

vanityCode

object (VanityCode)

Bạn đã áp dụng mã nhận dạng.

OneTimeCode

Loại này không có trường nào.

Mã khuyến mãi dùng một lần.

VanityCode

Mã khuyến mãi được xác định trước, có thể sử dụng nhiều lần.

Biểu diễn dưới dạng JSON
{
  "promotionCode": string
}
Trường
promotionCode

string

Mã khuyến mãi.

Phương thức

get

Lấy siêu dữ liệu về một gói thuê bao

revoke

Thu hồi giao dịch mua gói thuê bao của người dùng.