Geçersiz Satın Alma İşlemleri API'si

Google Play Voided Purchases API'si, kullanıcının iptal ettiği satın alma işlemleriyle ilişkili siparişlerin listesini sağlar. Kullanıcının bu siparişlerdeki ürünlere erişmesini engelleyen bir iptal sistemi uygulamak için bu listedeki bilgileri kullanabilirsiniz.

Bu API, tek seferlik uygulama içi siparişler ve Uygulama Abonelikleri için geçerlidir.

Satın alma işlemi aşağıdaki yollarla geçersiz kılınabilir:

  • Kullanıcı, siparişi için geri ödeme talebinde bulunur.
  • Kullanıcı siparişini iptal eder.
  • Siparişin ödemesi geri alınır.
  • Geliştirici siparişi iptal eder veya siparişe geri ödeme yapar.

  • Google siparişi iptal eder veya siparişe geri ödeme yapar.

Bu API'yi kullanarak, özellikle uygulamanız bir oyunsa uygulamanızın tüm kullanıcıları için daha dengeli ve adil bir deneyim oluşturulmasına yardımcı olursunuz.

Erişim Kazanma

Voided Purchases API'si ile çalışmak için finansal bilgileri görüntüleme izninizin olması gerekir. Yetkilendirmeyi OAuth istemcisi veya hizmet hesabı kullanarak sağlarsınız. Hizmet hesabı kullanıyorsanız bu hesapta "Finansal raporları görüntüleme" iznini etkinleştirin.

Google Play Developer API'lerine yetkili erişim elde etme hakkında daha fazla bilgi edinmek için aşağıdaki kılavuzlara bakın:

İptal Edilmiş Satın Almaları Görüntüleme

Geçersiz satın alma işlemlerinin listesini istemek için GET yöntemini kullanın. İsteğinize uygulamanızın tam paket adını (ör. com.google.android.apps.maps) ve API'ye erişim elde ederken aldığınız yetkilendirme jetonunu ekleyin.

GET https://www.googleapis.com/androidpublisher/v3/applications/
your_package_name/purchases/voidedpurchases?access_token=your_auth_token

İsteğinize her biri isteğe bağlı olan aşağıdaki parametreleri de ekleyebilirsiniz:

startTime

Yanıtta görmek istediğiniz, geçersiz kılınan en eski satın alma işleminin Unix zamanından bu yana geçen milisaniye cinsinden süre. startTime varsayılan olarak 30 gün öncesine ayarlanmıştır.

API yalnızca son 30 gün içinde gerçekleşmiş geçersiz satın alma işlemlerini gösterebilir. Geçersiz kılınan eski satın alma işlemleri, startTime için sağladığınız değerden bağımsız olarak yanıta dahil edilmez.

endTime

Yanıtta görmek istediğiniz geçersiz kılınan en yeni satın alma işleminin Unix zamanından bu yana geçen milisaniye cinsinden süre. Varsayılan olarak endTime geçerli saate ayarlıdır.

maxResults
Her bir yanıtta görünen geçersiz satın alma işlemlerinin maksimum sayısı. Varsayılan olarak bu değer 1.000'dir. Bu parametre için maksimum değerin de 1.000 olduğunu unutmayın.
token
Daha fazla sonuç görüntülemenizi sağlayan, önceki bir yanıttan bir devam jetonu.
tür

Her yanıtta görünen geçersiz satın alma işlemlerinin türü. 0 olarak ayarlanırsa yalnızca geçersiz uygulama içi satın alma işlemleri iade edilir. Bu değer 1'e ayarlanırsa hem geçersiz uygulama içi satın alma işlemleri hem de geçersiz abonelik satın alma işlemleri iade edilir. Varsayılan değer 0'dır.

includeQuantityBasedPartialRefund

Yalnızca çok miktarlı satın alma işlemleri için geçerli olan miktara dayalı kısmi geri ödemelerin geçersiz satın alma işlemlerinin dahil edilip edilmeyeceğini belirtir. true durumunda, iptal edilen ek satın alma işlemlerinde miktara dayalı kısmi geri ödemenin geri ödeme miktarını belirten voidedQuantity iade edilebilir. false, varsayılan değerdir.

Yanıt, geçersiz satın alma işlemlerinin listesini içeren bir JSON dizesidir. maxResults istek parametresinde belirtilen sayıdan daha fazla sonuç varsa yanıt, daha fazla sonuç görüntülemek için sonraki bir isteğe iletebileceğiniz nextPageToken değerini içerir. Listedeki ilk sonuç, en eski geçersiz satın alma işlemini gösterir.

{
  "tokenPagination": {
    "nextPageToken": "next_page_token"
  },
  "voidedPurchases": [
    {
      "kind": "androidpublisher#voidedPurchase",
      "purchaseToken": "some_purchase_token",
      "purchaseTimeMillis": "1468825200000",
      "voidedTimeMillis": "1469430000000",
      "orderId": "some_order_id",
      "voidedSource": "0",
      "voidedReason": "4"
    },
    {
      "kind": "androidpublisher#voidedPurchase",
      "purchaseToken": "some_other_purchase_token",
      "purchaseTimeMillis": "1468825100000",
      "voidedTimeMillis": "1470034800000",
      "orderId": "some_other_order_id",
      "voidedSource": "2",
      "voidedReason": "5"
    },
  ]
}

Kotalar

Voided Purchases API'si, aşağıdaki kotaları paket bazında ayarlar:

  • Günlük 6.000 sorgu. (Gün, Pasifik Saati'ne göre gece yarısı başlar ve biter.)
  • Herhangi bir 30 saniyelik dönemde 30 sorgu.

İlk istekler için yönergeler

İlk API isteğiniz sırasında uygulamanızın mevcut tüm verilerini getirmek isteyebilirsiniz. Düşük bir ihtimal de olsa bu işlem günlük kotanızı tüketebilir. Geçersiz satın alma verilerini daha güvenli ve tutarlı bir şekilde elde etmek için aşağıdaki en iyi uygulamaları izleyin:

  • maxResults parametresi için varsayılan değeri kullanın. Bu şekilde, sorgu kotanızın tamamını bir gün için kullanırsanız 6.000.000 geçersiz satın alma işleminin ayrıntılarını alabilirsiniz.
  • Bir yanıt nextPageToken için bir değer içeriyorsa bir sonraki isteğiniz sırasında bu değeri token parametresine atayın.

En iyi uygulamalar

Uygulamanızda bu API'yi kullanırken bir satın alma işlemini iptal etmek için birçok neden olduğunu ve her durumda işe yarayan tek bir çözüm olmadığını unutmayın. İptal politikalarınızı ve stratejilerinizi tasarlarken kullanıcılarınızı göz önünde bulundurmalısınız. Bunun için önerilen şu uygulamalardan yararlanabilirsiniz:

  • Bu API'yi, istenmeyen davranışlara yönelik kapsamlı bir stratejinin pek çok öğesinden biri olarak kullanın. Uygulama içi ürünlere erişimi iptal etmek, uygulama içi satın alma işlemleri için makul fiyatlara sahip bir uygulama, istenmeyen davranışlardan vazgeçiren bir uygulama tasarımı, kültürü bu tür davranışları reddeden güçlü bir kullanıcı tabanı ve duyarlı ve verimli kullanıcı destek kanallarıyla birleştirildiğinde genellikle daha etkilidir.
  • Tüm kullanıcılar için adaleti sağlamak amacıyla iptal politikanızı eşit şekilde yönetin.
  • İstenmeyen davranışlarla ilgilenirken aşamalı bir politika oluşturmayı düşünün. Örneğin, erken ihlaller için uygulama içi uyarılarla başlayın ve ardından kullanıcının istenmeyen davranışları devam ettikçe yanıtlarınızı üst merciye iletin. Son çare olarak, bir kullanıcının uygulamanızla etkileşimde bulunmasını engelleyebilirsiniz.
  • Bir iptal politikası uygulamaya geçirdiğinizde ve politikayı her güncellediğinizde, kullanıcılarınızı değişiklikler hakkında bilgilendirmek için uygulamanızın destek kanallarını kullanın. Uygulamanızda geçerli olmadan önce kullanıcılarınıza bu değişiklikleri net bir şekilde anlamaları için zaman tanıyın.
  • Kullanıcılarınıza karşı şeffaf olun ve uygulama içi bir ürüne erişimlerini iptal etmek gibi bir işlem yaptığınızda onları bilgilendirin. İdeal olarak, kullanıcılar kararlarınıza itiraz edebilmeli ve bu tür anlaşmazlıklara adil bir şekilde yaklaşılmalıdır.
  • Geri bildirim formlarını ve topluluk forumlarını izleyerek kullanıcıları istenmeyen davranışlara iten şeyin ne olduğunu ve bu tür davranışları nasıl gerçekleştirdiklerini öğrenin. İlk savunma hattı olarak bu bilgilere göre hareket edin.