Tek seferlik satın alınan ürünlerin yaşam döngüsü abonelik ürünlerinden daha basittir. Ancak arka ucunuzun düzgün bir şekilde işlemesi gereken birkaç durum ve geçiş etkinliği vardır.
Yeni tek seferlik ürün satın alımları
Kullanıcı faturalandırma akışını tamamladıktan sonra, uygulamanız aşağıdaki yollardan biriyle yeni satın alma işlemiyle ilgili bilgileri görebilir:
Real-time developer notifications
hizmetini kurun ve satın alma işlemlerinin durumuyla ilgili güncellemeleri almak içinGet all notifications for subscriptions and one-time products
hizmetini etkinleştirin.- Satın alma güncellemelerini otomatik olarak almak için
BillingClient
uygulamasındanPurchasesUpdatedListener
arayüzünü uygulayın. BillingClient.queryPurchasesAsync()
yöntemini çağırın.
Yeni satın alma işlemini aldıktan sonra, yeni satın alma işleminin ödeme durumunu belirlemek için getPurchaseState
yöntemini veya purchases.products.get in Play Developer API
yöntemini kullanın.
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 bir OneTimeProductNotification
mesajı gönderir. Arka uç satın alma durumunuzu güncellemek için OneTimeProductNotification
nesnesinde sağlanan satın alma jetonunu kullanarak purchases.products.get
yöntemini çağırın. Bu yöntemde, satın alma jetonuna göre en son satın alma ve tüketim durumu gösterilir.
İşlemle ilgili RTDN'leri güvenli arka ucunuzda işlemeniz gerekir.
Tamamlanan işlemleri yönetme
Kullanıcı tek seferlik bir ü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 Tek seferlik ürün satın alımlarını arka ucunuzda işleme bölümünde açıklandığı şekilde işleyin.
İptal edilen işlemleri ele alma
Tek seferlik bir ürün satın alma işlemi iptal edildiğinde, gerçek zamanlı geliştirici bildirimlerini almak üzere yapılandırdıysanız Google Play, ONE_TIME_PRODUCT_CANCELED
türünde bir OneTimeProductNotification
mesajı gönderir.
Örneğin, kullanıcı gerekli süre içinde ödemeyi tamamlamazsa veya satın alma işlemi geliştirici ya da müşterinin isteği üzerine iptal edilirse bu durum ortaya çıkabilir. Arka uç sunucunuz bu bildirimi aldığında en son satın alma durumunu almak için purchases.products.get
yöntemini çağırın ve ardından arka ucunuzu, kullanıcı yararlanma hakları da dahil olmak üzere uygun şekilde güncelleyin.
Purchased
eyaletinde yapılan tek seferlik bir ürün satın alma işlemi için geri ödeme yapılırsa Voided Purchases API'si üzerinden bu durum size bildirilir.
Tek seferlik ürün satın alımlarını arka uçta işleyin
İster ONE_TIME_PRODUCT_PURCHASED
RTDN aracılığıyla yeni bir satın alma işlemi algılamış ister uygulamanızın onResume()
yönteminden PurchasesUpdatedListener
aracılığıyla uygulama içinde bilgilendirilmiş ya da satın alma işlemlerini manuel olarak getirmek için uygulamanızın onResume()
yöntemini kullanıyor olabilirsiniz. Yeni satın alma işlemini gerçekleştirmeniz gerekir. Daha fazla güvenlik için satın alma işlemlerini arka ucunuzda gerçekleştirmenizi öneririz.
Tek seferlik yeni bir satın alma işlemini gerçekleştirmek için aşağıdaki adımları uygulayın:
- Tek seferlik ürün satın alma işleminin en güncel durumunu öğrenmek için
purchases.products.get
uç noktasını sorgulayın. Bir satın alma işleminde bu yöntemi çağırmak için uygulamanızdan veyaONE_TIME_PRODUCT_PURCHASED
RTDN'den ilgilipurchaseToken
öğesine ihtiyacınız vardır. 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şkilendirilen kullanıcı hesabı, satın alma işlemi yapılırken
setObfuscatedAccountId()
kullanılarak ayarlanmışsapurchases.products.get
alanındakiobfuscatedExternalAccountId
alanıyla tanımlanabilir.- Tüketilebilir olmayan ürün satın alımlarında
purchases.products.acknowledge
yöntemini çağırarak içeriğin teslimini onaylayın.acknowledgementState
alanını kontrol ederek satın alma işleminin daha önce onaylanmadığından emin olun. - Ürün tüketilebilir durumdaysa
purchases.products.consume
yöntemini çağırarak öğeyi tüketildi olarak işaretleyin. Böylece kullanıcı, öğeyi tükettikten sonra tekrar satın alabilir. Bu yöntemle satın alma işlemi de kabul edilir.
- Tüketilebilir olmayan ürün satın alımlarında
Play Faturalandırma Kitaplığı'nda, uygulamanızdan yapılan satın alma işlemlerini işlemenizi sağlayan satın alma onayı ve kullanma yöntemleri de vardır ancak daha güvenli bir uygulama için arka ucunuzda işlem gerçekleştirmenizi öneririz.