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

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:
  • (1) SUBSCRIPTION_RECOVERED: Abonelik, hesap askıya alınma durumundan kurtarıldı veya duraklatma durumundan devam ettirildi.
  • (2) SUBSCRIPTION_RENEWED: Etkin bir abonelik yenilendi.
  • (3) SUBSCRIPTION_CANCELED: Bir abonelik, isteyerek veya istemeden iptal edildi. İsteyerek yapılan 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, hesap askıya alma durumuna girdi (etkinleştirilmişse).
  • (6) SUBSCRIPTION_IN_GRACE_PERIOD: Abonelik, ek süreye girdi (etkinleştirilmişse).
  • (7) SUBSCRIPTION_RESTARTED: Kullanıcı, aboneliğini Play > Hesap > Abonelikler'den geri yükledi. Abonelik iptal edilmiş ancak kullanıcı geri yüklediğinde henüz süresi dolmamış. Daha fazla bilgi için Süresi dolmadan önce geri yükleme başlıklı makaleyi inceleyin.
  • (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 tekrar etme 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, geçerlilik süresi dolmadan önce kullanıcıdan iptal edildi.
  • (13) SUBSCRIPTION_EXPIRED: Abonelik süresi sona erdi.
  • (17) SUBSCRIPTION_ITEMS_CHANGED: Bir abonelik paketindeki öğe değiştirildi.
  • (18) SUBSCRIPTION_CANCELLATION_SCHEDULED: Bir taksitli aboneliğin iptal işlemi, taahhüt süresinin sonunda geçerli olacak şekilde planlandı.
  • (19) SUBSCRIPTION_PRICE_CHANGE_UPDATED: Bir abonelik öğesinin fiyat değişikliği ayrıntıları güncellendi.
  • (20) SUBSCRIPTION_PENDING_PURCHASE_CANCELED: Bir aboneliğin bekleyen işlemi iptal edildi.
  • (22) SUBSCRIPTION_PRICE_STEP_UP_CONSENT_UPDATED: Aboneliğin fiyat artışı için izin dönemi başladı veya kullanıcı fiyat artışı için izin verdi. Bu anlık bildirim yalnızca fiyat artışının gerekli olduğu bir bölgedeki abonelikler için gönderilir.
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:
  • (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ü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 ifade 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şleminin productType değeri aşağıdaki değerlerden birini alabilir:

  • (1) PRODUCT_TYPE_SUBSCRIPTION - Abonelik satın alma işlemi geçersiz kılındı.
  • (2) PRODUCT_TYPE_ONE_TIME - Tek seferlik satın alma işlemi iptal edildi.

refundType

int

Geçersiz kılınan bir satın alma işleminin refundType değeri aşağıdaki değerlerden birini alabilir:

  • (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 ürün satın alma işlemlerinde 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 geçersiz kılınabilir.

Çoklu satın alma işleminde kalan toplam miktar geri ödendiğinde refundType tutarının 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.

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"
  }
}