Topik ini mencantumkan dan menjelaskan jenis Notifikasi developer real-time yang dapat Anda terima dari Google Play.
Encoding
Setiap publikasi yang dibuat pada topik Cloud Pub/Sub berisi kolom data tunggal yang dienkode dengan base64.
{
"message": {
"attributes": {
"key": "value"
},
"data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
"messageId": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Setelah Anda mendekode kolom data yang dienkode dengan base64, DeveloperNotification
akan berisi kolom berikut:
{
"version": string,
"packageName": string,
"eventTimeMillis": long,
"oneTimeProductNotification": OneTimeProductNotification,
"subscriptionNotification": SubscriptionNotification,
"voidedPurchaseNotification": VoidedPurchaseNotification,
"testNotification": TestNotification
}
Kolom-kolom ini dijelaskan dalam tabel berikut.
Nama properti | Nilai | Deskripsi |
version | string | Versi notifikasi ini. Awalnya, versi notifikasi ini adalah "1.0". Versi ini berbeda dengan kolom versi lainnya. |
packageName | string | Nama paket aplikasi yang terkait dengan notifikasi ini (misalnya, `com.some.thing`). |
eventTimeMillis | long | Stempel waktu saat peristiwa terjadi, dalam milidetik sejak Epoch. |
subscriptionNotification | SubscriptionNotification | Jika kolom ini ada, berarti notifikasi ini terkait dengan langganan, dan kolom ini berisi informasi tambahan yang terkait dengan langganan. Perhatikan bahwa kolom ini tidak bisa ada pada saat yang sama dengan oneTimeProductNotification, voidedPurchaseNotification, dan testNotification. |
OneTimeProductNotification | OneTimeProductNotification | Jika kolom ini ada, berarti notifikasi ini terkait dengan pembelian satu kali, dan kolom ini berisi informasi tambahan yang terkait dengan pembelian. Perhatikan bahwa kolom ini tidak bisa ada pada saat yang sama dengan subscriptionNotification, voidedPurchaseNotification, dan testNotification. |
voidedPurchaseNotification | VoidedPurchaseNotification | Jika kolom ini ada, berarti notifikasi ini terkait dengan pembelian yang dibatalkan, dan kolom ini berisi informasi tambahan yang terkait dengan pembelian yang dibatalkan. Perhatikan bahwa kolom ini tidak bisa ada pada saat yang sama dengan oneTimeProductNotification, subscriptionNotification, dan testNotification. |
testNotification | TestNotification | Jika kolom ini ada, berarti notifikasi ini terkait dengan publikasi pengujian. Notifikasi ini hanya dikirim melalui Konsol Google Play. Perhatikan bahwa kolom ini tidak bisa ada pada saat yang sama dengan oneTimeProductNotification, subscriptionNotification, dan voidedPurchaseNotification. |
SubscriptionNotification
SubscriptionNotification
berisi kolom berikut:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"subscriptionId": string
}
Nama properti | Nilai | Deskripsi |
version | string | Versi notifikasi ini. Awalnya, versi notifikasi ini adalah "1.0". Versi ini berbeda dengan kolom versi lainnya. |
notificationType | int | notificationType untuk langganan dapat berisi nilai berikut:
|
purchaseToken | string | Token yang diberikan ke perangkat pengguna saat langganan dibeli. |
subscriptionId | string | ID produk langganan yang dibeli (misalnya "monthly001"). |
Contoh
Berikut adalah contoh notifikasi untuk pembelian langganan baru:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"subscriptionNotification":
{
"version":"1.0",
"notificationType":4,
"purchaseToken":"PURCHASE_TOKEN",
"subscriptionId":"monthly001"
}
}
OneTimeProductNotification
OneTimeProductNotification
berisi kolom berikut:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
Nama Properti | Nilai | Deskripsi |
version | string | Versi notifikasi ini. Awalnya, versi notifikasi ini adalah "1.0". Versi ini berbeda dengan kolom versi lainnya. |
notificationType | int | Jenis notifikasi. Dapat berisi nilai-nilai berikut:
|
purchaseToken | string | Token yang diberikan ke perangkat pengguna saat pembelian dilakukan. |
sku | string | ID produk sekali beli yang dibeli (misalnya, "sword_001"). |
Contoh
Berikut ini contoh notifikasi untuk pembelian satu kali yang baru:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"oneTimeProductNotification":
{
"version":"1.0",
"notificationType":1,
"purchaseToken":"PURCHASE_TOKEN",
"sku":"my.sku"
}
}
VoidedPurchaseNotification
VoidedPurchaseNotification
berisi kolom berikut:
Nama Properti |
Nilai |
Deskripsi |
|
|
Token yang terkait dengan pembelian yang telah dibatalkan. Informasi ini diberikan kepada developer jika pembelian baru terjadi. |
|
|
ID pesanan unik yang terkait dengan transaksi yang telah dibatalkan. Untuk pembelian satu kali, hal ini mewakili satu-satunya ID pesanan yang dibuat untuk pembelian. Untuk langganan yang diperpanjang otomatis, ID pesanan baru akan dibuat untuk setiap transaksi perpanjangan. |
|
|
|
|
|
Perhatikan, bila total jumlah yang tersisa dari pembelian multikuantitas adalah
dikembalikan dananya, |
Contoh
Berikut adalah contoh notifikasi untuk pembelian yang baru dibatalkan:
{
"version":"1.0",
"packageName":"com.some.app",
"eventTimeMillis":"1503349566168",
"voidedPurchaseNotification":
{
"purchaseToken":"PURCHASE_TOKEN",
"orderId":"GS.0000-0000-0000",
"productType":1
"refundType":1
}
}
Memakai VoidedPurchaseNotification
Jika klien RTDN Anda menerima VoidedPurchaseNotification
, perhatikan
informasi berikut:
packageName
: Hal ini mengidentifikasi aplikasi.eventTimeMillis
: Hal ini memberi tahu developer waktu saat perubahan status terjadi.purchaseToken
: Token yang diberikan ke perangkat pengguna saat produk dibeli.orderId
: Hal ini mengidentifikasi pesanan yang terkait dengan transaksi yang dibatalkan.productType
: Hal ini memberi tahu Anda apakah pembelian yang dibatalkan adalah pembelian dalam aplikasi atau langganan.refundType
: Bagian ini memberi tahu Anda jenis pengembalian dana yang membatalkan pembelian.
Jika yang perlu Anda lakukan untuk penyesuaian hak adalah menemukan pembelian dan pesanan yang tepat, Anda akan memiliki semua informasi yang diperlukan pada tahap ini. Untuk mempelajari cara mendapatkan informasi tambahan tentang pembelian yang dibatalkan, lihat Voided Purchases API Google Play, yang merupakan model pull yang memberikan data tambahan untuk pembelian yang dibatalkan di antara stempel waktu tertentu.
Untuk pembelian multikuantitas yang dibatalkan sebagian, kolom refundableQuantity
yang disediakan oleh purchases.products
berisi sisa
jumlah produk yang telah dibeli yang belum dibatalkan.
TestNotification
TestNotification
berisi kolom berikut:
{
"version": string
}
Nama properti | Nilai | Deskripsi |
version | string | Versi notifikasi ini. Awalnya, versi notifikasi ini adalah "1.0". Versi ini berbeda dengan kolom versi lainnya. |
Contoh
Berikut adalah contoh notifikasi pengujian:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}