Gerçek zamanlı geliştirici bildirimleri referans kılavuzu

Bu belgede, Google Play'den alabileceğiniz anlık geliştirici bildirimlerinin türleri listelenmekte ve açıklanmaktadır.

Kodlama

Cloud Pub/Sub konusuna yapılan her yayın, tek bir base64 kodlu veri alanı içerir.

{
  "message": {
    "attributes": {
      "key": "value"
    },
    "data": "eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2thZ2VOYW1lIjogc3RyaW5nLCAiZXZlbnRUaW1lTWlsbGlzIjogbG9uZywgIm9uZVRpbWVQcm9kdWN0Tm90aWZpY2F0aW9uIjogT25lVGltZVByb2R1Y3ROb3RpZmljYXRpb24sICJzdWJzY3JpcHRpb25Ob3RpZmljYXRpb24iOiBTdWJzY3JpcHRpb25Ob3RpZmljYXRpb24sICJ0ZXN0Tm90aWZpY2F0aW9uIjogVGVzdE5vdGlmaWNhdGlvbiB9",
    "messageId": "136969346945"
  },
  "subscription": "projects/myproject/subscriptions/mysubscription"
}

Base64 kodlu 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,
  "testNotification": TestNotification
}

Bu alanlar aşağıdaki tabloda açıklanmıştır.

Mülk adı Değer Açıklama
sürüm dize Bu bildirimin sürümü. Başlangıçta bu değer "1.0" olur. Bu sürüm, diğer sürüm alanlarından farklıdır.
packageName dize Bu bildirimle ilgili uygulamanın paket adı (örneğin, "com.some.thing").
eventTimeMillis uzun Etkinliğin gerçekleştiği zaman damgası (dönemden 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 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 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 oneTimeProductNotification, subscriptionNotification 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 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
}
Mülk adı Değer Açıklama
sürüm dize Bu bildirimin sürümü. Başlangıçta bu değer "1.0" olur. 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:
  • (1) SUBSCRIPTION_RECOVERED: Bir abonelik, hesabı askıya alma sürecinden kurtarıldı.
  • (2) SUBSCRIPTION_RENEWED: Etkin bir abonelik yenilendi.
  • (3) SUBSCRIPTION_CANCELED: Abonelik, isteyerek veya istemeden iptal edildi. Kullanıcı iptal ettiğinde, isteyerek yapılan iptal için gönderilir.
  • (4) SUBSCRIPTION_PURCHASED: Yeni bir abonelik satın alındı.
  • (5) SUBSCRIPTION_ON_HOLD: Bir abonelik, hesabı beklemeye alma durumuna girdi (etkinleştirilmişse).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD: Abonelik, ödeme süresine girdi (etkinse).
  • (7) SUBSCRIPTION_RESTARTED: Kullanıcı, aboneliğini Play > Hesap > Abonelikler bölümünden geri yükledi. Abonelik iptal edilmiş ancak kullanıcı geri yükleme yaptığında henüz süresi dolmamış. Daha fazla bilgi için Geri yüklemeler bölümüne bakın.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED (KULLANIMDAN KALDIRILDI) - Bir abonelik fiyatı değişikliği kullanıcı tarafından başarıyla onaylandı.
  • (9) SUBSCRIPTION_DEFERRED: Bir aboneliğin yinelenme süresi uzatıldı.
  • (10) SUBSCRIPTION_PAUSED: Abonelik duraklatıldı.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED: Abonelik duraklatma planı değiştirildi.
  • (12) SUBSCRIPTION_REVOKED: Abonelik, son kullanma zamanından önce kullanıcıdan iptal edildi.
  • (13) SUBSCRIPTION_EXPIRED: Aboneliğin süresi doldu.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED: Bir aboneliğin beklemede olan işlemi iptal edildi.
  • (19) SUBSCRIPTION_PRICE_CHANGE_UPDATED: Bir abonelik öğesinin fiyat değişikliği ayrıntıları güncellendi.
purchaseToken dize Abonelik satın alındığında kullanıcının cihazına sağlanan jeton.

Örnek

Yeni bir abonelik satın alma işlemiyle ilgili 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 Bildirimin türü. Aşağıdaki değerleri içerebilir:
  • (1) ONE_TIME_PRODUCT_PURCHASED: Tek seferlik bir ürün, kullanıcı tarafından başarıyla satın alındı.
  • (2) ONE_TIME_PRODUCT_CANCELED: Beklemedeki tek seferlik ürün satın alma işlemi kullanıcı tarafından iptal edildi.
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 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

purchaseToken

string

İ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.

orderId

string

İ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 temsil eder. Otomatik yenilenen aboneliklerde, her yenileme işlemi için yeni bir sipariş kimliği oluşturulur.

productType

int

Geçersiz kılınan bir satın alma işlemi için productType aşağıdaki değerlere sahip olabilir:

  • (1) PRODUCT_TYPE_SUBSCRIPTION - Abonelik satın alma işlemi iptal edildi.
  • (2) PRODUCT_TYPE_ONE_TIME - Tek seferlik satın alma işlemi iptal edildiğinde

refundType

int

Geçersiz kılınan bir satın alma işlemi için refundType aşağıdaki değerlere sahip olabilir:

  • (1) REFUND_TYPE_FULL_REFUND - Satın alma işlemi tamamen iptal edilmiştir.
  • (2) REFUND_TYPE_QUANTITY_BASED_PARTIAL_REFUND - Satın alma işlemi, yalnızca birden fazla miktarda satın alma işlemleri için geçerli olan miktara dayalı kısmi geri ödeme ile kısmen iptal edilmiştir. Bir satın alma işlemi birden fazla kez kısmen iptal edilebilir.

Çoklu satın alma işleminde kalan toplam miktar iade edildiğinde refundType simgesinin REFUND_TYPE_FULL_REFUND olacağını unutmayın.

Ö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.

TestNotification

TestNotification aşağıdaki alanları içerir:

{
  "version": 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" olur. Bu sürüm, diğer sürüm alanlarından farklıdır.

Örnek

Aşağıda test bildirimiyle ilgili bir örnek verilmiştir:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503350156918",
  "testNotification":
  {
    "version":"1.0"
  }
}