REST Resource: purchases.subscriptionsv2

Referensi: 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 mewakili objek SubscriptionPurchaseV2 di layanan androidpublisher.

regionCode

string

Kode negara/wilayah 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 PrabayarPlan.

startTime

string (Timestamp format)

Waktu pemberian langganan. Tidak ditetapkan untuk langganan yang tertunda (langganan telah dibuat tetapi menunggu pembayaran selama pendaftaran).

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

subscriptionState

enum (SubscriptionState)

Status langganan saat ini.

latestOrderId

string

ID pesanan pada pesanan terbaru yang terkait dengan pembelian langganan. Untuk langganan Perpanjangan Otomatis, ini adalah ID pesanan 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 tidak habis masa berlakunya * Upgrade/downgrade dari langganan sebelumnya. * Konversi dari langganan prabayar ke langganan yang diperpanjang otomatis. * Beralih dari langganan yang diperpanjang otomatis ke prabayar. * Tambah saldo langganan prabayar.

pausedStateContext

object (PausedStateContext)

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

canceledStateContext

object (CanceledStateContext)

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

testPurchase

object (TestPurchase)

Hanya ada jika pembelian langganan ini adalah pembelian percobaan.

acknowledgementState

enum (AcknowledgementState)

Status konfirmasi langganan.

externalAccountIdentifiers

object (ExternalAccountIdentifiers)

ID akun pengguna di layanan pihak ketiga.

subscribeWithGoogleInfo

object (SubscribeWithGoogleInfo)

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

SubscriptionState

Status potensial langganan, misalnya, apakah langganan aktif atau dibatalkan. Item dalam pembelian langganan dapat berupa semua paket perpanjangan otomatis atau paket prabayar.

Enum
SUBSCRIPTION_STATE_UNSPECIFIED Status langganan tidak ditentukan.
SUBSCRIPTION_STATE_PENDING Langganan telah dibuat, tetapi menunggu pembayaran selama pendaftaran. Dalam status ini, semua item menunggu pembayaran.
SUBSCRIPTION_STATE_ACTIVE Langganan aktif. - (1) Jika langganan adalah paket perpanjangan otomatis, setidaknya satu item adalah autoRenewEnabled dan tidak habis masa berlakunya. - (2) Jika langganan adalah paket prabayar, setidaknya satu item masih belum habis masa berlakunya.
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 berada 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 masa berlakunya belum habis. Status ini hanya tersedia jika langganan adalah paket perpanjangan otomatis. AutoRenewEnabled ditetapkan ke false untuk semua item.
SUBSCRIPTION_STATE_EXPIRED Masa berlaku langganan telah berakhir. Semua item memiliki expiryTime di masa lalu.
SUBSCRIPTION_STATE_PENDING_PURCHASE_CANCELED Transaksi yang tertunda untuk langganan dibatalkan. Jika pembelian tertunda ini ditujukan untuk langganan yang sudah ada, gunakan linkedPurchaseToken untuk mendapatkan status langganan saat ini.

PausedStateContext

Informasi khusus langganan dalam status dijeda.

Representasi JSON
{
  "autoResumeTime": string
}
Kolom
autoResumeTime

string (Timestamp format)

Waktu saat langganan akan dilanjutkan secara otomatis.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan maksimal sembilan digit fraksional. 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 pembatalan langganan. cancellation_reason hanya ada berupa salah satu diantara 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 diganti dengan langganan baru.

UserInitiatedCancellation

Informasi khusus untuk pembatalan yang dimulai oleh pengguna.

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

object (CancelSurveyResult)

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

cancelTime

string (Timestamp format)

Waktu saat langganan dibatalkan oleh pengguna. Setelah itu, pengguna mungkin masih memiliki akses ke langganan. Gunakan lineItems.expiry_time untuk menentukan apakah pengguna masih memiliki akses.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan maksimal sembilan digit fraksional. 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 pengguna memilih di survei pembatalan.

reasonUserInput

string

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

CancelSurveyReason

Alasan pengguna memilih di survei pembatalan.

Enum
CANCEL_SURVEY_REASON_UNSPECIFIED Alasan pembatalan survei tidak ditentukan.
CANCEL_SURVEY_REASON_NOT_ENOUGH_USAGE Penggunaan langganan tidak memadai.
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 dimulai oleh sistem Google.

DeveloperInitiatedCancellation

Jenis ini tidak memiliki kolom.

Informasi khusus untuk pembatalan yang dimulai 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 pembelian percobaan.

AcknowledgementState

Kemungkinan status konfirmasi untuk langganan.

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

ExternalAccountIdentifiers

ID akun pengguna di layanan pihak ketiga.

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

string

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

obfuscatedExternalAccountId

string

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

obfuscatedExternalProfileId

string

Versi ID yang di-obfuscate yang secara unik terkait 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 depan 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.
}
Kolom
productId

string

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

expiryTime

string (Timestamp format)

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

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

Kolom union plan_type. Jenis paket langganan. plan_type hanya ada berupa salah satu diantara berikut:
autoRenewingPlan

object (AutoRenewingPlan)

Item diperpanjang otomatis.

prepaidPlan

object (PrepaidPlan)

Item bersifat prabayar.

offerDetails

object (OfferDetails)

Detail penawaran untuk item ini.

Kolom union deferred_item_change. Kolom ini ada saat item memiliki perubahan yang ditangguhkan. Data tersebut dapat dihapus atau diganti. deferred_item_change hanya ada berupa salah satu diantara berikut:
deferredItemReplacement

object (DeferredItemReplacement)

Informasi untuk penggantian item yang ditangguhkan.

AutoRenewingPlan

Informasi terkait paket perpanjangan otomatis.

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

boolean

Jika saat ini langganan disetel agar diperpanjang otomatis, mis. pengguna belum membatalkan langganan

priceChangeDetails

object (SubscriptionItemPriceChangeDetails)

Informasi perubahan harga terakhir untuk item sejak pendaftaran langganan.

installmentDetails

object (InstallmentPlan)

Komitmen paket cicilan dan info terkait negara bagian untuk paket perpanjangan otomatis.

SubscriptionItemPriceChangeDetails

Informasi terkait perubahan harga untuk 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 perubahan harga item langganan.

priceChangeState

enum (PriceChangeState)

Sebutkan perubahan harga yang terjadi saat ini.

expectedNewPriceChargeTime

string (Timestamp format)

Waktu perpanjangan saat perubahan harga akan mulai berlaku bagi pengguna. Hal ini dapat berubah(pada waktu yang akan datang) karena jangka waktu perpanjangan bergeser seperti jeda. Kolom ini hanya diisi jika perubahan harga belum diterapkan.

Stempel waktu dalam format RFC3339 UTC "Zulu", dengan resolusi nanodetik dan maksimal sembilan digit fraksional. 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 belum ditetapkan. Nilai ini tidak boleh ditetapkan.
PRICE_DECREASE Jika harga langganan mengalami penurunan.
PRICE_INCREASE Jika harga langganan naik dan pengguna harus menerimanya.
OPT_OUT_PRICE_INCREASE Jika harga langganan naik dengan mode pilihan tidak ikut.

PriceChangeState

Status perubahan harga.

Enum
PRICE_CHANGE_STATE_UNSPECIFIED Status perubahan harga belum ditetapkan. Nilai ini tidak boleh digunakan.
OUTSTANDING Menunggu pengguna menyetujui perubahan harga.
CONFIRMED Perubahan harga telah dikonfirmasi untuk terjadi bagi pengguna.
APPLIED Perubahan harga diterapkan, yaitu pengguna mulai ditagih dengan harga baru.

InstallmentPlan

Informasi untuk paket cicilan.

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

integer

Total jumlah pembayaran yang pada awalnya menjadi komitmen pengguna.

subsequentCommittedPaymentsCount

integer

Total jumlah 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 tertunda untuk dibatalkan. Pembatalan hanya akan terjadi setelah pengguna menyelesaikan semua komitmen pembayaran.

PendingCancellation

Jenis ini tidak memiliki kolom.

Ini adalah indikator apakah ada pembatalan yang 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 penambahan 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 maksimal sembilan digit fraksional. Contoh: "2014-10-02T15:01:23Z" dan "2014-10-02T15:01:23.045123456Z".

OfferDetails

Informasi detail penawaran yang terkait dengan item baris pembelian.

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

string

Tag penawaran terbaru yang terkait dengan penawaran. Paket ini mencakup tag yang diwarisi dari paket dasar.

basePlanId

string

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

offerId

string

ID penawaran. Hanya ada untuk penawaran diskon.

DeferredItemReplacement

Informasi terkait penggantian item yang ditangguhkan.

Representasi JSON
{
  "productId": string
}
Kolom
productId

string

productId akan menggantikan productId yang sudah ada.

Metode

get

Mendapatkan metadata tentang langganan

revoke

Mencabut pembelian langganan untuk pengguna.