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çtaki 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.

İşlemle ilgili RTDN'leri güvenli arka uçta işlemelisiniz.

Tamamlanan işlemleri yönetme

Kullanıcı tek seferlik bir ürün satın alma işlemini tamamladığında Google Play, OneTimeProductNotification türünde bir ONE_TIME_PRODUCT_PURCHASED mesajı gönderir. Bu RTDN'yi aldığınızda, Arka uçta tek seferlik ürün satın alma işlemlerini işleme başlıklı makalede açıklandığı şekilde satın alma işlemini gerçekleştirin.

İptal edilen işlemleri yönetme

Tek seferlik ürün satın alma işlemi iptal edildiğinde, gerçek zamanlı geliştirici bildirimleri alacak şekilde yapılandırdıysanız Google Play, OneTimeProductNotification türünde bir mesaj ONE_TIME_PRODUCT_CANCELED gönderir. Örneğin, 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 bu duruma neden olabilir. Arka uç sunucunuz bu bildirimi aldığında en son satın alma durumunu almak 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 ucunuzda tek seferlik ürün satın alma işlemlerini işleme

ONE_TIME_PRODUCT_PURCHASED RTDN kullanarak yeni bir satın alma işlemi tespit ettiyseniz veya uygulamanızın onResume() yönteminde PurchasesUpdatedListener aracılığıyla uygulama içinde ya da manuel olarak satın alma işlemleri getirilerek yeni satın alma işleminden haberdar olduysanız 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 işlemek için aşağıdaki adımları uygulayın:

  1. En son tek seferlik ürün satın alma durumunu almak 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ğerine ihtiyacınız vardır.
  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 ayarlanmışsa 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 teslim edildiğini onaylayın. acknowledgementState alanını kontrol ederek satın alma işleminin daha önce kabul edilmediğinden emin olun.
    2. Ürün tüketilebilir bir ürünse purchases.products.consume yöntemini çağırarak öğeyi tüketilmiş olarak işaretleyin. Böylece kullanıcı, ürünü tükettikten sonra tekrar satın alabilir. Bu yöntemle satın alma işlemi de onaylanır.

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