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.
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:
- Satın alma işlemlerinin durumuyla ilgili güncellemeleri almak için
Real-time developer notificationskurulumunu yapın veGet all notifications for subscriptions and one-time productsözelliğini etkinleştirin. - Satın alma güncellemelerini otomatik olarak almak için
BillingClient'denPurchasesUpdatedListenerarayüzünü uygulayın. BillingClient.queryPurchasesAsync()yöntemini çağırın.
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:
- En son tek seferlik ürün satın alma durumunu öğrenmek için
purchases.productsv2.getproductpurchasev2uç noktasını sorgulayın. Bu yöntemi bir satın alma işlemi için çağırmak üzere uygulamanızdan veyaONE_TIME_PRODUCT_PURCHASEDRTDN'den ilgilipurchaseTokendeğerini almanız gerekir. getPurchaseState()numaralı telefonu arayın ve satın alma durumununPURCHASEDolduğundan emin olun.- Satın alma işlemini doğrulayın.
- 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ıysapurchases.productsv2.getproductpurchasev2içindekiobfuscatedExternalAccountIdalanı ile tanımlanabilir.- Tüketilebilir olmayan ürün satın alma işlemlerinde,
purchases.products.acknowledgeyöntemini çağırarak içeriğin teslimatını onaylayın.acknowledgementStatealanını kontrol ederek satın alma işleminin daha önce onaylanmadığından emin olun. - Ürün tüketilebilir bir ürünse
purchases.products.consumeyö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.
- Tüketilebilir olmayan ürün satın alma işlemlerinde,
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.