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

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.

Ş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 aşağıdaki yollardan biriyle yeni satın alma işlemiyle ilgili bilgileri görebilir:

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:

  1. 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 veya ONE_TIME_PRODUCT_PURCHASED RTDN'den ilgili purchaseToken öğesine 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şkilendirilen kullanıcı hesabı, satın alma işlemi yapılırken setObfuscatedAccountId() kullanılarak ayarlanmışsa purchases.products.get alanındaki obfuscatedExternalAccountId alanıyla tanımlanabilir.
    1. 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.
    2. Ü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.

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.