REST Resource: purchases.subscriptionsv2

Resource: SubscriptionPurchaseV2

Menunjukkan status pembelian langganan pengguna.

Representasi 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)
  }
}
Kolom
kind

string

Jenis ini menampilkan objek SubscriptionPurchaseV2 di layanan androidpublisher.

regionCode

string

Kode wilayah/negara penagihan ISO 3166-1 alpha-2 pengguna pada saat langganan diberikan.

lineItems[]

object (SubscriptionPurchaseLineItem)

Info tingkat item untuk pembelian langganan. Item dalam pembelian yang sama harus semuanya dengan AutoRenewingPlan atau semuanya dengan PrepaidPlan.

startTime

string (Timestamp format)

Waktu saat langganan diberikan. Tidak ditetapkan untuk langganan yang tertunda (langganan sudah dibuat, tetapi menunggu pembayaran saat pendaftaran).

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

subscriptionState

enum (SubscriptionState)

Status langganan saat ini.

latestOrderId

string

ID pesanan dari pesanan terbaru yang terkait dengan pembelian langganan. Untuk langganan autoRenewing, ini adalah ID pesanan dari pesanan pendaftaran jika belum diperpanjang, atau ID pesanan berulang terakhir (pesanan berhasil, tertunda, atau ditolak). Untuk langganan prabayar, ini adalah ID pesanan yang terkait dengan token pembelian yang dikueri.

linkedPurchaseToken

string

Token pembelian langganan lama jika langganan ini adalah salah satu dari yang berikut: * Pendaftaran ulang langganan yang dibatalkan, tetapi belum berakhir * Upgrade/downgrade dari langganan sebelumnya. * Konversi dari langganan prabayar ke perpanjangan otomatis. * Konversi dari langganan perpanjangan otomatis ke prabayar. * Tambah saldo langganan prabayar.

pausedStateContext

object (PausedStateContext)

Konteks tambahan seputar langganan yang dijeda. Hanya ada jika langganan saat ini memiliki status subscriptionState SUBSCRIPTION_STATE_PAUSED.

canceledStateContext

object (CanceledStateContext)

Konteks tambahan seputar langganan yang dibatalkan. Hanya ada jika langganan saat ini memiliki status subscriptionState SUBSCRIPTION_STATE_CANCELED atau SUBSCRIPTION_STATE_EXPIRED.

testPurchase

object (TestPurchase)

Hanya ada jika pembelian langganan ini adalah uji coba.

acknowledgementState

enum (AcknowledgementState)

Status konfirmasi langganan.

externalAccountIdentifiers

object (ExternalAccountIdentifiers)

ID akun pengguna dalam layanan pihak ketiga.

subscribeWithGoogleInfo

object (SubscribeWithGoogleInfo)

Profil pengguna yang terkait dengan pembelian yang dilakukan dengan 'Berlangganan dengan Google'.

SubscriptionState

Kemungkinan status langganan, misalnya apakah langganan aktif atau dibatalkan. Item dalam pembelian langganan mungkin berupa paket perpanjangan otomatis atau paket prabayar seluruhnya.

Enum
SUBSCRIPTION_STATE_UNSPECIFIED Status langganan tidak ditentukan.
SUBSCRIPTION_STATE_PENDING Langganan sudah dibuat, tetapi menunggu pembayaran selama pendaftaran. Dalam status ini, semua item sedang menunggu pembayaran.
SUBSCRIPTION_STATE_ACTIVE Langganan aktif. - (1) Jika langganan adalah paket perpanjangan otomatis, dengan minimal satu item autoRenewEnabled dan belum berakhir. - (2) Jika langganan adalah paket prabayar, dengan minimal satu item belum berakhir.
SUBSCRIPTION_STATE_PAUSED Langganan dijeda. Status ini hanya tersedia jika langganan adalah paket perpanjangan otomatis. Dalam status ini, semua item dalam status dijeda.
SUBSCRIPTION_STATE_IN_GRACE_PERIOD Langganan dalam masa tenggang. Status ini hanya tersedia jika langganan adalah paket perpanjangan otomatis. Dalam status ini, semua item berada dalam masa tenggang.
SUBSCRIPTION_STATE_ON_HOLD Langganan ditangguhkan (ditangguhkan). Status ini hanya tersedia jika langganan adalah paket perpanjangan otomatis. Dalam status ini, semua item ditangguhkan.
SUBSCRIPTION_STATE_CANCELED Langganan dibatalkan, tetapi belum habis masa berlakunya. Status ini hanya tersedia jika langganan adalah paket perpanjangan otomatis. Semua item memiliki autoRenewEnabled yang disetel ke salah.
SUBSCRIPTION_STATE_EXPIRED Masa berlaku langganan habis. Semua item memiliki masa berlaku expiryTime di masa lalu.
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED Transaksi yang tertunda untuk langganan dibatalkan. Jika pembelian tertunda ini adalah untuk langganan yang sudah ada, gunakan linkedPurchaseToken untuk mendapatkan status langganan itu saat ini.

PausedStateContext

Informasi khusus untuk langganan dalam status dijeda.

Representasi JSON
{
  "autoResumeTime": string
}
Kolom
autoResumeTime

string (Timestamp format)

Waktu saat langganan akan otomatis dilanjutkan.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

CanceledStateContext

Informasi khusus langganan dalam status SUBSCRIPTION_STATE_CANCELED atau SUBSCRIPTION_STATE_EXPIRED.

Representasi 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.
}
Kolom
Kolom union cancellation_reason. Alasan langganan dibatalkan. cancellation_reason hanya dapat berupa salah satu dari berikut:
userInitiatedCancellation

object (UserInitiatedCancellation)

Langganan dibatalkan oleh pengguna.

systemInitiatedCancellation

object (SystemInitiatedCancellation)

Langganan dibatalkan oleh sistem, misalnya karena masalah penagihan.

developerInitiatedCancellation

object (DeveloperInitiatedCancellation)

Langganan dibatalkan oleh developer.

replacementCancellation

object (ReplacementCancellation)

Langganan digantikan dengan langganan baru.

UserInitiatedCancellation

Informasi khusus untuk pembatalan yang dilakukan oleh pengguna.

Representasi JSON
{
  "cancelSurveyResult": {
    object (CancelSurveyResult)
  },
  "cancelTime": string
}
Kolom
cancelSurveyResult

object (CancelSurveyResult)

Informasi yang diberikan oleh pengguna saat mereka menyelesaikan alur pembatalan langganan (survei alasan pembatalan).

cancelTime

string (Timestamp format)

Waktu saat langganan dibatalkan oleh pengguna. Pengguna mungkin masih memiliki akses ke langganan setelah waktu ini. Gunakan lineItems.expiry_time untuk mengetahui apakah pengguna masih memiliki akses.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

CancelSurveyResult

Hasil survei pembatalan saat langganan dibatalkan oleh pengguna.

Representasi JSON
{
  "reason": enum (CancelSurveyReason),
  "reasonUserInput": string
}
Kolom
reason

enum (CancelSurveyReason)

Alasan yang dipilih pengguna dalam survei pembatalan.

reasonUserInput

string

Hanya ditetapkan untuk CANCEL_SURVEY_REASON_OTHERS. Ini adalah respons bentuk bebas pengguna terhadap survei.

CancelSurveyReason

Alasan yang dipilih pengguna dalam survei pembatalan.

Enum
CANCEL_SURVEY_REASON_UNSPECIFIED Alasan pembatalan survei yang tidak ditentukan.
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE Penggunaan langganan tidak cukup.
CANCEL_SURVEY_REASON_TECHNICAL_ISSUES Masalah teknis saat menggunakan aplikasi.
CANCEL_SURVEY_REASON_FOUND_BETTER_APP Pengguna menemukan aplikasi yang lebih baik.
CANCEL_SURVEY_REASON_OTHERS Alasan lain.

SystemInitiatedCancellation

Jenis ini tidak memiliki kolom.

Informasi khusus untuk pembatalan yang dilakukan oleh sistem Google.

DeveloperInitiatedCancellation

Jenis ini tidak memiliki kolom.

Informasi khusus untuk pembatalan yang dilakukan oleh developer.

ReplacementCancellation

Jenis ini tidak memiliki kolom.

Informasi khusus untuk pembatalan yang disebabkan oleh penggantian langganan.

TestPurchase

Jenis ini tidak memiliki kolom.

Apakah pembelian langganan ini merupakan uji coba.

AcknowledgementState

Kemungkinan status konfirmasi suatu langganan.

Enum
ACKNOWLEDGEMENT_STATE_UNSPECIFIED Status konfirmasi tidak ditentukan.
ACKNOWLEDGEMENT_STATE_PENDING Langganan belum dikonfirmasi.
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED Langganan sudah dikonfirmasi.

ExternalAccountIdentifiers

ID akun pengguna dalam layanan pihak ketiga.

Representasi JSON
{
  "externalAccountId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string
}
Kolom
externalAccountId

string

ID akun pengguna dalam layanan pihak ketiga. Hanya ada jika penautan akun terjadi sebagai bagian dari alur pembelian langganan.

obfuscatedExternalAccountId

string

Versi ID yang di-obfuscate dan terkait secara unik dengan akun pengguna di aplikasi Anda. Ada untuk pembelian berikut: * Jika penautan akun terjadi sebagai bagian dari alur pembelian langganan. * Ditentukan menggunakan https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid saat pembelian dilakukan.

obfuscatedExternalProfileId

string

Versi ID yang di-obfuscate dan terkait secara unik dengan profil pengguna di aplikasi Anda. Hanya ada jika ditentukan menggunakan https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid saat pembelian dilakukan.

SubscribeWithGoogleInfo

Informasi terkait pembelian yang dilakukan dengan 'Berlangganan dengan Google'.

Representasi JSON
{
  "profileId": string,
  "profileName": string,
  "emailAddress": string,
  "givenName": string,
  "familyName": string
}
Kolom
profileId

string

ID profil Google pengguna saat langganan dibeli.

profileName

string

Nama profil pengguna saat langganan dibeli.

emailAddress

string

Alamat email pengguna saat langganan dibeli.

givenName

string

Nama pengguna saat langganan dibeli.

familyName

string

Nama keluarga pengguna saat langganan dibeli.

SubscriptionPurchaseLineItem

Info tingkat item untuk pembelian langganan.

Representasi 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)
  }
}
Kolom
productId

string

ID produk yang dibeli (misalnya, 'monthly001').

expiryTime

string (Timestamp format)

Waktu saat langganan berakhir atau akan habis masa berlakunya kecuali akses diperpanjang (misalnya, berlangganan lagi).

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

Kolom union plan_type. Jenis paket langganan. plan_type hanya dapat berupa salah satu dari berikut:
autoRenewingPlan

object (AutoRenewingPlan)

Item diperpanjang otomatis.

prepaidPlan

object (PrepaidPlan)

Item merupakan item prabayar.

offerDetails

object (OfferDetails)

Detail penawaran untuk item ini.

Kolom union deferred_item_change. Kolom ini ada jika item mengalami perubahan yang ditangguhkan. Item dapat dihapus atau diganti. deferred_item_change hanya dapat berupa salah satu dari berikut:
deferredItemReplacement

object (DeferredItemReplacement)

Informasi untuk penggantian item yang ditangguhkan.

signupPromotion

object (SignupPromotion)

Detail promosi tentang item ini. Hanya ditetapkan jika promosi diterapkan selama pendaftaran.

AutoRenewingPlan

Informasi terkait paket perpanjangan otomatis.

Representasi JSON
{
  "autoRenewEnabled": boolean,
  "recurringPrice": {
    object (Money)
  },
  "priceChangeDetails": {
    object (SubscriptionItemPriceChangeDetails)
  },
  "installmentDetails": {
    object (InstallmentPlan)
  }
}
Kolom
autoRenewEnabled

boolean

Jika langganan saat ini disetel ke perpanjangan otomatis, misalnya, pengguna belum membatalkan langganan

recurringPrice

object (Money)

Harga berulang saat ini untuk paket dengan perpanjangan otomatis.

priceChangeDetails

object (SubscriptionItemPriceChangeDetails)

Informasi perubahan harga terakhir untuk item sejak pendaftaran langganan.

installmentDetails

object (InstallmentPlan)

Komitmen paket cicilan dan informasi terkait status untuk paket perpanjangan otomatis.

SubscriptionItemPriceChangeDetails

Informasi terkait perubahan harga item langganan.

Representasi JSON
{
  "newPrice": {
    object (Money)
  },
  "priceChangeMode": enum (PriceChangeMode),
  "priceChangeState": enum (PriceChangeState),
  "expectedNewPriceChargeTime": string
}
Kolom
newPrice

object (Money)

Harga berulang baru untuk item langganan.

priceChangeMode

enum (PriceChangeMode)

Mode perubahan harga menentukan bagaimana harga item langganan berubah.

priceChangeState

enum (PriceChangeState)

Status perubahan harga yang berlaku saat ini.

expectedNewPriceChargeTime

string (Timestamp format)

Waktu perpanjangan saat perubahan harga akan berlaku bagi pengguna. Hal ini dapat berubah(ke waktu mendatang) saat waktu perpanjangan berubah seperti karena jeda. Kolom ini hanya diisi jika perubahan harga belum berlaku.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

PriceChangeMode

Mode perubahan harga.

Enum
PRICE_CHANGE_MODE_UNSPECIFIED Mode perubahan harga tidak ditentukan. Nilai ini tidak boleh disetel.
PRICE_DECREASE Jika harga langganan turun.
PRICE_INCREASE Jika harga langganan naik dan pengguna harus menerimanya.
OPT_OUT_PRICE_INCREASE Jika harga langganan naik dengan pilihan untuk tidak menerima.

PriceChangeState

Status perubahan harga.

Enum
PRICE_CHANGE_STATE_UNSPECIFIED Status perubahan harga tidak ditentukan. Nilai ini tidak boleh digunakan.
OUTSTANDING Menunggu pengguna menyetujui perubahan harga.
CONFIRMED Perubahan harga dipastikan terjadi pada pengguna.
APPLIED Perubahan harga diterapkan, yaitu pengguna mulai dikenai harga baru.

InstallmentPlan

Informasi untuk paket cicilan.

Representasi JSON
{
  "initialCommittedPaymentsCount": integer,
  "subsequentCommittedPaymentsCount": integer,
  "remainingCommittedPaymentsCount": integer,
  "pendingCancellation": {
    object (PendingCancellation)
  }
}
Kolom
initialCommittedPaymentsCount

integer

Jumlah total pembayaran yang menjadi komitmen pengguna di awal.

subsequentCommittedPaymentsCount

integer

Jumlah total pembayaran yang akan dilakukan pengguna setelah setiap periode komitmen. Kosong berarti paket cicilan akan kembali ke langganan perpanjangan otomatis normal setelah komitmen awal.

remainingCommittedPaymentsCount

integer

Jumlah total komitmen pembayaran yang tersisa yang harus dibayar dalam siklus perpanjangan ini.

pendingCancellation

object (PendingCancellation)

Jika ada, paket cicilan ini menunggu untuk dibatalkan. Pembatalan hanya akan terjadi setelah pengguna menyelesaikan semua komitmen pembayaran.

PendingCancellation

Jenis ini tidak memiliki kolom.

Ini merupakan indikator apakah ada pembatalan tertunda pada paket cicilan virtual. Pembatalan hanya akan terjadi setelah pengguna menyelesaikan semua komitmen pembayaran.

PrepaidPlan

Informasi terkait paket prabayar.

Representasi JSON
{
  "allowExtendAfterTime": string
}
Kolom
allowExtendAfterTime

string (Timestamp format)

Jika ada, ini adalah waktu setelah pembelian tambah saldo diizinkan untuk paket prabayar. Tidak akan ada untuk paket prabayar yang sudah habis masa berlakunya.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan hingga sembilan digit pecahan. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

OfferDetails

Informasi detail penawaran terkait item baris pembelian.

Representasi JSON
{
  "offerTags": [
    string
  ],
  "basePlanId": string,
  "offerId": string
}
Kolom
offerTags[]

string

Tag penawaran terbaru yang terkait dengan penawaran. Ini termasuk tag yang diambil dari paket dasar.

basePlanId

string

ID paket dasar. Ada untuk semua paket dasar dan penawaran.

offerId

string

ID penawaran. Hanya ada untuk penawaran diskon.

DeferredItemReplacement

Informasi terkait penggantian item yang ditangguhkan.

Representasi JSON
{
  "productId": string
}
Kolom
productId

string

productId ini akan menggantikan productId yang ada.

SignupPromotion

Promosi yang diterapkan pada item ini saat dibeli.

Representasi 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.
}
Kolom
Kolom union promotion_type. Jenis promosi yang diterapkan ke item. promotion_type hanya dapat berupa salah satu dari berikut:
oneTimeCode

object (OneTimeCode)

Kode sekali pakai telah diterapkan.

vanityCode

object (VanityCode)

Kode nama sebutan channel telah diterapkan.

OneTimeCode

Jenis ini tidak memiliki kolom.

Kode promosi sekali pakai.

VanityCode

Kode promosi standar yang dapat digunakan beberapa kali.

Representasi JSON
{
  "promotionCode": string
}
Kolom
promotionCode

string

Kode promosi.

Metode

get

Mendapatkan metadata tentang langganan

revoke

Mencabut pembelian langganan untuk pengguna.