Tek seferlik satın alma yaşam döngüsü

Tek seferlik satın alma ürünlerinin yaşam döngüsü, abonelik ürünlerine göre daha basittir ancak arka uçunuzun düzgün şekilde işleyebilmesi için yine de çeşitli durumlar ve geçiş etkinlikleri vardır.

Tek seferlik satın alma işlemlerine yönelik yaşam döngüsü durumları ve geçiş etkinlikleri.
Şekil 1 Tek seferlik satın alımlar için yaşam döngüsü durumları ve geçiş etkinlikleri.

Yeni tek seferlik ürün satın alımları

Kullanıcı faturalandırma akışını tamamladıktan sonra uygulamanız, yeni satın alma işlemiyle ilgili bilgileri aşağıdaki yöntemlerden biriyle görebilir:

Yeni satın alma işlemini aldıktan sonra getPurchaseState yöntemini veya purchases.productsv2.getproductpurchasev2 in Play Developer API yöntemini kullanın.

yeni satın alma işleminin ödeme durumunu belirlemek için kullanılır.

Gerçek zamanlı geliştirici bildirimleri

Bir kullanıcı tek seferlik bir ürün satın aldığında veya satın alma işlemini iptal ettiğinde Google Play, OneTimeProductNotification mesajı gönderir. Arka uç satın alma durumunuzu güncellemek için OneTimeProductNotification nesnesinde sağlanan satın alma jetonunu kullanarak purchases.productsv2.getproductpurchasev2 yöntemini çağırın. Bu yöntem, satın alma jetonu verildiğinde en son satın alma ve tüketim durumunu sağlar.

Ön sipariş karşılandığında ve satın alma durumu SATIN ALINDI olarak değiştiğinde istemcinize bir RTDN gönderilir. RTDN'yi aldıktan sonra, ön sipariş satın alma işlemini Tek seferlik ürün satın alma işlemlerini arka uçta işleme başlıklı makalede açıklandığı şekilde işleyin.

İşlemlerle ilgili RTDN'leri güvenli arka ucunuzda işlemeniz gerekir.

Tamamlanan işlemleri yönetme

Kullanıcı tek seferlik ürün satın alma işlemini tamamladığında Google Play, ONE_TIME_PRODUCT_PURCHASED türünde bir OneTimeProductNotification mesajı gönderir. Bu RTDN'yi aldığınızda satın alma işlemini Arka ucunuzda tek seferlik ürün satın alma işlemlerini işleme bölümünde açıklandığı şekilde işleyin.

İptal edilen işlemleri yönetme

Tek seferlik ürün satın alma işlemi iptal edildiğinde Google Play, gerçek zamanlı geliştirici bildirimlerini alacak şekilde yapılandırdıysanız ONE_TIME_PRODUCT_CANCELED türünde bir OneTimeProductNotification mesajı gönderir. Örneğin, bu durum, kullanıcının ödemeyi gerekli süre içinde tamamlamaması veya satın alma işleminin geliştirici ya da müşteri isteği üzerine iptal edilmesi halinde ortaya çıkabilir. Arka uç sunucunuz bu bildirimi aldığında en son satın alma durumunu öğrenmek için purchases.productsv2.getproductpurchasev2 yöntemini çağırın, ardından kullanıcı hakları da dahil olmak üzere arka ucunuzu buna göre güncelleyin.

Purchased durumundaki tek seferlik ürün satın alma işlemi için geri ödeme yapılırsa Voided Purchases API kullanılarak da bilgilendirilirsiniz.

Arka uçta tek seferlik ürün satın alma işlemlerini işleme

Yeni bir satın alma işlemini ONE_TIME_PRODUCT_PURCHASED RTDN kullanarak tespit ettiyseniz veya uygulamanızın onResume() yönteminde PurchasesUpdatedListener ya da satın alma işlemlerini manuel olarak getirerek uygulama içinde fark ettiyseniz yeni satın alma işlemini işlemeniz gerekir. Daha iyi güvenlik için satın alma işlemlerini arka uçta yapmanızı öneririz.

Yeni bir tek seferlik satın alma işlemini gerçekleştirmek için aşağıdaki adımları uygulayın:

  1. En son tek seferlik ürün satın alma durumunu öğrenmek için purchases.productsv2.getproductpurchasev2 uç noktasını sorgulayın. Bu yöntemi bir satın alma işlemi için çağırmak üzere uygulamanızdan veya ONE_TIME_PRODUCT_PURCHASED RTDN'den ilgili purchaseToken değerini almanız gerekir.
  2. getPurchaseState() numaralı telefonu arayın ve satın alma durumunun PURCHASED olduğundan emin olun.
  3. Satın alma işlemini doğrulayın.
  4. Kullanıcıya içeriğe erişim izni verin. Satın alma işlemiyle ilişkili kullanıcı hesabı, satın alma işlemi yapılırken setObfuscatedAccountId() kullanılarak ayarlandıysa purchases.productsv2.getproductpurchasev2 içindeki obfuscatedExternalAccountId alanı ile tanımlanabilir.
    1. Tüketilebilir olmayan ürün satın alma işlemlerinde, purchases.products.acknowledge yöntemini çağırarak içeriğin teslimatını onaylayın. acknowledgementState alanını kontrol ederek satın alma işleminin daha önce onaylanmadığından emin olun.
    2. Ürün tüketilebilir bir ürünse purchases.products.consume yöntemini çağırarak ürünü tüketildi olarak işaretleyin. Böylece kullanıcı, ürünü tükettikten sonra tekrar satın alabilir. Bu yöntem, satın alma işlemini de onaylar.

Play Faturalandırma Kitaplığı'nda, uygulamanızdaki satın alma işlemlerini işleme almanıza olanak tanıyan satın alma onayı ve tüketme yöntemleri de mevcuttur. Ancak daha güvenli bir uygulama için, arka uç sisteminiz varsa işlemleri orada yapmanızı öneririz.