Tek seferlik satın alınan ürünlerin yaşam döngüsü, abonelik ürünlerine göre daha basittir. Ancak yine de arka uçunuzun düzgün şekilde işleyebilmesi için ç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:
Real-time developer notifications
'ı ayarlayın ve satın alma işlemlerinin durumuyla ilgili güncellemeler almak içinGet all notifications for subscriptions and one-time products
'ı etkinleştirin.- Satın alma güncellemelerini otomatik olarak almak için
BillingClient
'denPurchasesUpdatedListener
arayüzünü uygulayın. BillingClient.queryPurchasesAsync()
yöntemini çağırın.
Yeni satın alma işlemi alındı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
Gerçek zamanlı geliştirici bildirimleri
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, satın alma işlemini Arka uçta tek seferlik ürün satın alma işlemlerini işleme başlıklı makalede açıklandığı şekilde yapın.
İptal edilen işlemleri ele alma
Tek seferlik ürün satın alma işlemi iptal edildiğinde, anlık geliştirici bildirimleri alacak şekilde yapılandırdıysanız Google Play, OneTimeProductNotification
türünde bir ONE_TIME_PRODUCT_CANCELED
mesaj 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 uçta 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
ya da satın alma işlemlerini manuel olarak getirerek uygulama içinde bilgilendirildiyseniz yeni satın alma işlemini gerçekleştirmeniz 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:
- 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 veyaONE_TIME_PRODUCT_PURCHASED
RTDN'den ilgilipurchaseToken
değerini almanız gerekir. getPurchaseState()
numaralı telefonu arayın ve satın alma durumununPURCHASED
olduğ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 ayarlanmışsapurchases.productsv2.getproductpurchasev2
içindekiobfuscatedExternalAccountId
alanı ile tanımlanabilir.- 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. - Ü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ö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şlemenize 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.