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

Bu konuda, Google Play'den alabileceğiniz Gerçek zamanlı geliştirici bildirimi türleri listelenmekte ve açıklanmaktadır.

Kodlama

Cloud Pub/Sub konusuna yapılan her yayınlama, 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üğünüzde, 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 Description
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.
paket adı dize Bu bildirimin ilgili olduğu uygulamanın paket adı (örneğin, "com.some.thing").
etkinlikZamanıMillis uzun Etkinliğin gerçekleştiği zaman damgası (Epoch'tan bu yana milisaniye cinsinden).
abonelik bildirimi Abonelik Bildirimi Bu alan mevcutsa bu bildirim bir abonelikle ilgilidir ve bu alan, abonelikle ilgili ek bilgiler içerir. Bu alanın oneTimeProduct Notification, voidedPurchaseNotification ve testNotification ile karşılıklı olarak hariç tutulduğunu unutmayın.
oneTimeProductBildirim OneTimeProductBildirim Bu alan mevcutsa bu bildirim tek seferlik bir satın alma işlemiyle ilgilidir ve bu alan, satın almayla ilgili ek bilgiler içerir. Bu alanın subscriptionNotification, voidedPurchaseNotification ve testBildirim' olmak üzere karşılıklı olarak hariç tutulduğunu unutmayın.
voidedSatın Alma Bildirimi Geçersiz Satın Alma Bildirimi Bu alan varsa bu bildirim geçersiz satın alma işlemiyle ilgilidir ve bu alan, geçersiz satın alma işlemiyle ilgili ek bilgiler içerir. Bu alanın oneTimeProduct Notification, subscriptionNotification ve testNotification ile karşılıklı olarak hariç tutulduğunu unutmayın.
testBildirimi Test Bildirimi Bu alan mevcutsa bu bildirim bir test yayınıyla ilgilidir. Bunlar yalnızca Google Play Developer Console üzerinden gönderilir. Bu alanın oneTimeProductNotification, subscription Notification ve voidedPurchaseNotification ile karşılıklı olarak hariç tutulduğunu unutmayın.

Abonelik Bildirimi

Bir SubscriptionNotification aşağıdaki alanları içerir:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "subscriptionId": string
}
Mülk adı Değer Description
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.
bildirimTürü int Bir abonelik için notificationType aşağıdaki değerlere sahip olabilir:
  • (1) SUBSCRIPTION_RECOVERED - Bir abonelik, askıya alınmış hesap durumundan kurtarıldı.
  • (2) SUBSCRIPTION_RENEWED - Etkin bir abonelik yenilendi.
  • (3) SUBSCRIPTION_CANCELED - Bir abonelik gönüllü olarak veya istemsiz olarak iptal edilmiştir. İsteğe bağlı 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 askıya alınmış hesap başlattı (etkinse).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD - Bir abonelik, ek süreye girdi (etkinleştirildiyse).
  • (7) SUBSCRIPTION_RESTARTED - Kullanıcı, Play > Hesap > Abonelikler bölümünden aboneliğini geri yükledi. Abonelik iptal edilmiş ancak kullanıcı geri yüklediğinde süresi henüz sona ermemiş. Daha fazla bilgi edinmek için Restorasyonlar bölümünü inceleyin.
  • (8) SUBSCRIPTION_PRICE_CHANGE_CONFIRMED - 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 - Bir abonelik duraklatıldı.
  • (11) SUBSCRIPTION_PAUSE_SCHEDULE_CHANGED - Abonelik duraklatma programı değiştirildi.
  • (12) SUBSCRIPTION_REVOKED - Geçerlilik süresi sona ermeden kullanıcının bir aboneliği iptal edilmiştir.
  • (13) SUBSCRIPTION_EXPIRED - Bir aboneliğin süresi doldu.
purchaseToken dize Abonelik satın alındığında kullanıcının cihazına sağlanan jeton.
abonelik kimliği dize Satın alınan aboneliğin ürün kimliği (ör. "monthly001").

Örnek

Aşağıda, yeni bir abonelik satın almayla ilgili bildirim örneği verilmiştir:

{
  "version":"1.0",
  "packageName":"com.some.thing",
  "eventTimeMillis":"1503349566168",
  "subscriptionNotification":
  {
    "version":"1.0",
    "notificationType":4,
    "purchaseToken":"PURCHASE_TOKEN",
    "subscriptionId":"monthly001"
  }
}

OneTimeProductBildirim

Bir OneTimeProductNotification aşağıdaki alanları içerir:

{
  "version": string,
  "notificationType": int,
  "purchaseToken": string,
  "sku": string
}
Mülk Adı Değer Description
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.
bildirimTürü int Bildirimin türü. Değer aşağıdaki değerlere sahip olabilir:
  • (1) ONE_TIME_PRODUCT_PURCHASED - Bir kullanıcı tarafından başarıyla satın alınan tek seferlik bir ürün.
  • (2) ONE_TIME_PRODUCT_CANCELED - Kullanıcı, beklemede olan tek seferlik bir ürün satın alma işlemini iptal etti.
purchaseToken dize Satın alma işlemi yapıldığında kullanıcının cihazına verilen jeton.
SKU dize Tek seferlik satın alınan ürün kimliği (ör. "sword_001")

Örnek

Tek seferlik yeni satın alma işlemi için 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"
  }
}

Geçersiz Satın Alma Bildirimi

Bir VoidedPurchaseNotification aşağıdaki alanları içerir:

Mülk Adı

Değer

Description

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şkilendirilen benzersiz sipariş kimliği. Tek seferlik satın alımlarda bu, söz konusu 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 satın alma işlemi için productType aşağıdaki değerlere sahip olabilir:

  • (1) PRODUCT_TYPE_SUBSCRIPTION - Bir abonelik satın alma işlemi iptal edildi.
  • (2) PRODUCT_TYPE_ONE_TIME - Tek seferlik satın alma işlemi geçersiz kılınmıştır.

refundType

int

Geçersiz 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ınmıştır.
  • (2) REFUND_TYPE_QUANTITY_BASED_PARTIAL_REFUND - Satın alma işlemi, yalnızca çoklu miktar satın alma işlemleri için geçerli olan miktara dayalı kısmi geri ödeme ile kısmen iptal edildi. Satın alma işlemi birden çok kez kısmen iptal edilebilir.

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

Örnek

İptal edilen yeni satın alma işlemiyle ilgili bildirim örneğini aşağıda bulabilirsiniz:

{
  "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: Bu, geliştiriciyi durumda değişikliğin ne zaman gerçekleştiği konusunda bilgilendirir.
  • purchaseToken: Ürün satın alındığında kullanıcının cihazına sağlanan jeton.
  • orderId: Bu, geçersiz kılınan işlemle ilişkili sırayı tanımlar.
  • productType: Bu boyut, geçersiz 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şleminin iptal edilmesine neden olan geri ödeme türünü gösterir.

Yararlanma hakkı düzenlemeleri için tek yapmanız gereken doğru satın alma ve siparişi bulmaksa bu noktada ihtiyacınız olan tüm bilgilere sahipsiniz. Geçersiz satın alma işlemiyle ilgili nasıl ek bilgi alacağınızı öğrenmek için Google Play Voided Purchases API'sine göz atın. Bu API, belirli bir zaman damgası arasında geçersiz satın alma işlemleri için ek veriler sağlayan bir çekme modelidir.

Kısmen geçersiz olan çoklu miktar satın alma işlemleri için purchases.products tarafından sağlanan refundableQuantity alanı, iptal edilmemiş diğer satın alınmış ürün sayısını içerir.

Test Bildirimi

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

{
  "version": string
}
Mülk adı Değer Description
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 bir test bildirimi örneği verilmiştir:

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