Bu belgede, Google Play'den alabileceğiniz Gerçek zamanlı geliştirici bildirimlerinin türleri listelenmekte ve açıklanmaktadır.
Kodlama
Cloud Pub/Sub konusuna yapılan her yayın, base64 kodlu tek bir veri alanı içerir.
{
"message": {
"attributes": {
"key": "value"
},
"data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
"messageId": "136969346945"
},
"subscription": "projects/myproject/subscriptions/mysubscription"
}
Base64 olarak kodlanmış veri alanının kodunu çözdükten sonra DeveloperNotification aşağıdaki alanları içerir:
{
"version": string,
"packageName": string,
"eventTimeMillis": long,
"oneTimeProductNotification": OneTimeProductNotification,
"subscriptionNotification": SubscriptionNotification,
"voidedPurchaseNotification": VoidedPurchaseNotification,
"pendingRefundReviewNotification": PendingRefundReviewNotification,
"testNotification": TestNotification
}
Bu alanlar aşağıdaki tabloda açıklanmıştır.
| Özellik adı | Değer | Açıklama |
|---|---|---|
| sürüm | dize | Bu bildirimin sürümü. Başlangıçta bu değer "1.0"dır. Bu sürüm, diğer sürüm alanlarından farklıdır. |
| packageName | dize | Bu bildirimin ilgili olduğu uygulamanın paket adı (örneğin, "com.some.thing"). |
| eventTimeMillis | uzun | Etkinliğin gerçekleştiği zamanın zaman damgası (Epoch'tan bu yana geçen milisaniye cinsinden). |
| subscriptionNotification | SubscriptionNotification | Bu alan varsa bildirim bir abonelikle ilgilidir ve bu alan, abonelikle ilgili ek bilgiler içerir. Bu alanın pendingRefundReviewNotification, oneTimeProductNotification, voidedPurchaseNotification ve testNotification ile aynı anda kullanılamadığını unutmayın. |
| oneTimeProductNotification | OneTimeProductNotification | Bu alan varsa bildirim tek seferlik bir satın alma işlemiyle ilgilidir ve bu alan, satın alma işlemiyle ilgili ek bilgiler içerir. Bu alanın, pendingRefundReviewNotification, subscriptionNotification, voidedPurchaseNotification ve testNotification ile aynı anda kullanılamadığını unutmayın. |
| voidedPurchaseNotification | VoidedPurchaseNotification | Bu alan varsa bildirim, geçersiz kılınan bir satın alma işlemiyle ilgilidir ve bu alan, geçersiz kılınan satın alma işlemiyle ilgili ek bilgiler içerir. Bu alanın pendingRefundReviewNotification, oneTimeProductNotification, subscriptionNotification ve testNotification ile aynı anda kullanılamadığını unutmayın. |
| pendingRefundReviewNotification | PendingRefundReviewNotification | Bu alan varsa bu bildirim, çözüm önerisinde bulunabileceğiniz bir ters ibraz talebiyle ilgilidir. `ReviewRefund` API'sini çağırarak bu bildirime yanıt verin. Bu alanın subscriptionNotification, oneTimeProductNotification, voidedPurchaseNotification ve testNotification ile aynı anda kullanılamadığını unutmayın. |
| testNotification | TestNotification | Bu alan varsa bildirim, test yayınıyla ilgilidir. Bu mesajlar yalnızca Google Play Console üzerinden gönderilir. Bu alanın pendingRefundReviewNotification, oneTimeProductNotification, subscriptionNotification ve voidedPurchaseNotification ile aynı anda kullanılamadığını unutmayın. |
SubscriptionNotification
SubscriptionNotification aşağıdaki alanları içerir:
{
"version": string,
"notificationType": int,
"purchaseToken": string
}
| Özellik adı | Değer | Açıklama |
|---|---|---|
| sürüm | dize | Bu bildirimin sürümü. Başlangıçta bu değer "1.0"dır. Bu sürüm, diğer sürüm alanlarından farklıdır. |
| notificationType | int | Abonelik için notificationType şu değerlere sahip olabilir:
|
| purchaseToken | dize | Abonelik satın alındığında kullanıcının cihazına sağlanan jeton. |
Örnek
Yeni abonelik satın alma işlemine ilişkin bildirim örneğini aşağıda bulabilirsiniz:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"subscriptionNotification":
{
"version":"1.0",
"notificationType":4,
"purchaseToken":"PURCHASE_TOKEN"
}
}
OneTimeProductNotification
OneTimeProductNotification aşağıdaki alanları içerir:
{
"version": string,
"notificationType": int,
"purchaseToken": string,
"sku": string
}
| Mülk Adı | Değer | Açıklama |
|---|---|---|
| sürüm | dize | Bu bildirimin sürümü. Başlangıçta bu değer "1.0" olacaktır. Bu sürüm, diğer sürüm alanlarından farklıdır. |
| notificationType | int | Bildirim türü. Aşağıdaki değerleri içerebilir:
|
| purchaseToken | dize | Satın alma işlemi yapıldığında kullanıcının cihazına sağlanan jeton. |
| sku | dize | Satın alınan tek seferlik ürünün kimliği (örneğin, "sword_001") |
Örnek
Yeni bir tek seferlik satın alma işlemine ilişkin bildirim örneğini aşağıda bulabilirsiniz:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503349566168",
"oneTimeProductNotification":
{
"version":"1.0",
"notificationType":1,
"purchaseToken":"PURCHASE_TOKEN",
"sku":"my.sku"
}
}
VoidedPurchaseNotification
VoidedPurchaseNotification aşağıdaki alanları içerir:
| Mülk Adı | Değer | Açıklama |
|---|---|---|
|
|
İptal edilen satın alma işlemiyle ilişkili jeton. Bu bilgiler, yeni bir satın alma işlemi gerçekleştiğinde geliştiriciye sağlanır. |
|
|
İptal edilen işlemle ilişkili benzersiz sipariş kimliği. Tek seferlik satın alma işlemlerinde bu, satın alma işlemi için oluşturulan tek sipariş kimliğini ifade eder. Otomatik yenilenen aboneliklerde, her yenileme işlemi için yeni bir sipariş kimliği oluşturulur. |
|
|
Geçersiz kılınan bir satın alma işleminin
|
|
|
Geçersiz kılınan bir satın alma işleminin
Çoklu satın alma işleminde kalan toplam miktar geri ödendiğinde |
Örnek
Aşağıda, yeni bir geçersiz kılınan satın alma işlemiyle ilgili bildirime bir örnek verilmiştir:
{
"version":"1.0",
"packageName":"com.some.app",
"eventTimeMillis":"1503349566168",
"voidedPurchaseNotification":
{
"purchaseToken":"PURCHASE_TOKEN",
"orderId":"GS.0000-0000-0000",
"productType":1
"refundType":1
}
}
VoidedPurchaseNotification kullanma
RTDN istemciniz bir VoidedPurchaseNotification aldığında aşağıdaki bilgileri not edin:
packageName: Uygulamayı tanımlar.eventTimeMillis: Durum değişikliğinin gerçekleştiği zamanı bildirir.purchaseToken: Ürün satın alındığında kullanıcının cihazına sağlanan jeton.orderId: Geçersiz kılınan işlemle ilişkili siparişi tanımlar.productType: İptal edilen satın alma işleminin uygulama içi satın alma mı yoksa abonelik mi olduğunu gösterir.refundType: Satın alma işlemini geçersiz kılan geri ödeme türünü belirtir.
PendingRefundReviewNotification
Bir kullanıcı, satın alma işlemi için geri ödeme isteğinde bulunduğunda ve bu istek geliştirici incelemesi gerektirdiğinde PendingRefundReviewNotification gönderilir. Bu bildirimi aldığınızda isteği değerlendirmeniz ve ReviewRefund API'yi çağırarak 24 saat içinde geri ödeme önerisi ve satın alma kullanım kanıtı sağlamanız gerekir.
PendingRefundReviewNotification aşağıdaki alanları içerir:
{
"version": string,
"pendingRefundToken": string,
"orderId": string,
"refundReason": int,
"obfuscatedAccountId": string,
"obfuscatedProfileId": string
}
| Özellik adı | Değer | Açıklama |
|---|---|---|
| sürüm | dize | Bu bildirimin sürümü. Başlangıçta bu değer "1.0"dır. Bu sürüm, diğer sürüm alanlarından farklıdır. |
| pendingRefundToken | dize | İncelenmekte olan bekleyen geri ödeme isteğini tanımlayan benzersiz bir jeton. ReviewRefund API'yi çağırırken bu jetonu iletin. |
| orderId | dize | Bekleyen geri ödeme incelemesine tabi olan satın alma işleminin sipariş kimliği. |
| refundReason | int | Geri ödeme talebinin nedeni. Beklemede olan incelemelerde yalnızca CHARGEBACK (7) geri ödeme nedeni olarak desteklenir. Kodunuz, yeni nedenler kullanıma sunuldukça bunları işlemelidir. |
| obfuscatedAccountId | dize | (Geçerliyse) Satın alma işlemi yapılırken sağlanan, geliştirici tarafından belirtilen ve karartılmış kullanıcı hesabı kimliği. |
| obfuscatedProfileId | dize | (Geçerliyse) Satın alma işlemi yapılırken sağlanan, geliştirici tarafından belirtilen ve karartılmış profil kimliği. |
Örnek
Beklemede olan geri ödeme incelemesi bildirimine örnek:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"pendingRefundReviewNotification":
{
"version":"1.0",
"pendingRefundToken":"example-token",
"orderId":"GPA.1234-5678-9012-34567",
"refundReason":7,
"obfuscatedAccountId":"user-account-id",
"obfuscatedProfileId":"user-profile-id"
}
}
TestNotification
TestNotification aşağıdaki alanları içerir:
{
"version": string
}
| Özellik adı | Değer | Açıklama |
|---|---|---|
| sürüm | dize | Bu bildirimin sürümü. Başlangıçta bu değer "1.0"dır. Bu sürüm, diğer sürüm alanlarından farklıdır. |
Örnek
Aşağıda test bildirimi örneği verilmiştir:
{
"version":"1.0",
"packageName":"com.some.thing",
"eventTimeMillis":"1503350156918",
"testNotification":
{
"version":"1.0"
}
}