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

Bu konuda, Google Play'den alabileceğiniz gerçek zamanlı geliştirici bildirimlerinin türleri listelenip 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 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,
  "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ü. Bu değer başlangıçta "1.0" olur. Bu sürüm, diğer sürüm alanlarından farklıdır.
packageName dize Bu bildirimin ilişkili olduğu uygulamanın paket adı (örneğin, `com.bir.şey`).
eventTimeMillis uzun Etkinliğin gerçekleştiği zaman damgası (sıfır zamandan itibaren milisaniye cinsinden).
subscriptionNotification SubscriptionNotification Bu alan mevcutsa bildirim bir abonelikle ilgilidir ve bu alan, abonelikle ilgili ek bilgiler içerir. Bu alanın oneTimeProductNotification, voidedPurchaseNotification ve testNotification ile aynı anda kullanılamayacağını unutmayın.
oneTimeProductNotification OneTimeProductNotification Bu alan varsa bu 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ılamayacağını unutmayın.
voidedPurchaseNotification VoidedPurchaseNotification Bu alan mevcutsa bu bildirim, iptal edilmiş bir satın alma işlemiyle ilgilidir ve bu alan, iptal edilmiş satın alma işlemiyle ilgili ek bilgiler içerir. Bu alanın oneTimeProductNotification, subscriptionNotification ve testNotification ile aynı anda kullanılamayacağını unutmayın.
testNotification TestNotification Bu alan mevcutsa bu bildirim, test yayınıyla ilgilidir. Bu bildirimler yalnızca Google Play Developer Console üzerinden gönderilir. Bu alanın oneTimeProductNotification, subscriptionNotification ve voidedPurchaseNotification ile aynı anda kullanılamayacağı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ü. Bu değer başlangıçta "1.0" olur. Bu sürüm, diğer sürüm alanlarından farklıdır.
notificationType int Bir aboneliğin notificationType özelliği aşağıdaki değerlere sahip olabilir:
  • (1) SUBSCRIPTION_RECOVERED: Hesabı askıya alma sürecindeki bir abonelik kurtarıldı.
  • (2) SUBSCRIPTION_RENEWED: Etkin bir abonelik yenilendi.
  • (3) SUBSCRIPTION_CANCELED: Abonelik gönüllü veya zorunlu olarak iptal edilmiştir. Gönüllü iptal için, kullanıcı iptal ettiğinde gönderilir.
  • (4) SUBSCRIPTION_PURCHASED: Yeni bir abonelik satın alındı.
  • (5) SUBSCRIPTION_ON_HOLD: Bir abonelik, hesabı beklemeye aldı (etkinse).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD: Abonelik ek süreye girdi (etkinse).
  • (7) SUBSCRIPTION_RESTARTED: Kullanıcı, Play > Hesap > Abonelikler bölümünden aboneliğini geri yüklemiştir. Abonelik iptal edilmiş ancak kullanıcı geri yükleme işlemini yaptığında henüz süresi dolmamış. Daha fazla bilgi için Restorasyonlar bölümüne bakın.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED (DEPRECATED) - Abonelik fiyatındaki değişiklik kullanıcı tarafından başarıyla onaylandı.
  • (9) SUBSCRIPTION_DEFERRED: Aboneliğin tekrarlama süresi uzatıldı.
  • (10) SUBSCRIPTION_PAUSED: Abonelik duraklatıldı.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED: Abonelik duraklatma planı değişti.
  • (12) SUBSCRIPTION_REVOKED: Abonelik, süre dolmadan önce kullanıcıdan iptal edilmiştir.
  • (13) SUBSCRIPTION_EXPIRED: Aboneliğin süresi doldu.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED: Beklemede olan bir abonelik işlemi iptal edildi.
  • (19) SUBSCRIPTION_PRICE_CHANGE_UPDATED: 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

Aşağıda, yeni abonelik satın alma bildirimi örneği verilmiştir:

{
  "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" olur. 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:
  • (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 alışverişi 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 (ör. "sword_001")

Örnek

Aşağıda, yeni bir tek seferlik satın alma işlemiyle ilgili bildirim örneği verilmiştir:

{
  "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şlemleri için bu, satın alma işlemi için oluşturulan tek sipariş kimliğini temsil eder. Otomatik olarak yenilenen aboneliklerde her yenileme işlemi için yeni bir sipariş kimliği oluşturulur.

productType

int

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

refundType

int

İptal edilen 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 geçersiz kılındı.
  • (2) REFUND_TYPE_QUANTITY_BASED_PARTIAL_REFUND: Satın alma işlemi, yalnızca çoklu miktarlı satın alma işlemleri için geçerli olan miktara dayalı kısmi geri ödemeyle kısmen geçersiz kılındı. Bir satın alma işlemi, kısmen iptal edilmek için birden fazla kez gönderilebilir.

Çok miktarlı bir satın alma işleminin kalan toplam miktarı geri ödendiğinde refundType değerinin REFUND_TYPE_FULL_REFUND olacağını unutmayın.

Örnek

Aşağıda, iptal edilen yeni bir satın alma işlemiyle ilgili bildirim örneği 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 VoidedPurchaseNotification aldığında aşağıdaki bilgileri not edin:

  • packageName: Uygulamayı tanımlar.
  • eventTimeMillis: Bu, geliştiriciyi durum değişikliğinin gerçekleştiği zaman hakkında bilgilendirir.
  • purchaseToken: Ürün satın alındığında kullanıcının cihazına sağlanan jeton.
  • orderId: İptal edilen işlemle ilişkili siparişi tanımlar.
  • productType: İptal edilen satın alma işleminin uygulama içi satın alma işlemi mi yoksa abonelik mi olduğunu belirtir.
  • refundType: Satın alma işlemini geçersiz kılan geri ödemenin türünü belirtir.

Uygunluk düzenlemeleri için tek yapmanız gereken doğru satın alma işlemini ve siparişi bulmaksa bu aşamada ihtiyacınız olan tüm bilgilere sahipsiniz demektir. İptal edilen satın alma işlemi hakkında nasıl ek bilgi edineceğinizi öğrenmek için Google Play İptal Edilen Satın Alma İşlemleri API'sine göz atın. Bu API, belirli bir zaman damgası arasındaki iptal edilen satın alma işlemleri için ek veriler sağlayan bir alma modelidir.

Kısmen iptal edilen çok miktarlı satın alma işlemleri için purchases.products tarafından sağlanan refundableQuantity alanı, iptal edilmemiş kalan satın alınan ürün sayısını içerir.

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ü. Bu değer başlangıçta "1.0" olur. Bu sürüm, diğer sürüm alanlarından farklıdır.

Örnek

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

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