HUAWEI In-App Purchases Flutter Engtegrasyonu — 1. Kısım

Tolunay Öztürk
Huawei Developers - Türkiye
5 min readFeb 23, 2021

Herkese merhaba, bu makalede HUAWEI In-App Purchases özelliklerini göstermek ve bu hizmetin Flutter’da uygulanmasını daha iyi anlamak için bir Flutter uygulaması oluşturacağız.

Bu makale serisinin her kısmında bir ürün çeşidinden bahsedeceğiz; Consumables, Non-Consumables and Subscriptions. Bu kısımda, bir kez kullanılan, tükenen ve tekrar satın alınabilen Consumables ürünlerine odaklanacağız.

HUAWEI In-App Purchases Nedir ve Neden Kullanmalıyız?

Huawei’nin In-App Purchases (IAP) hizmeti, doğrudan uygulamanızın içinden satın alınabilecek çeşitli ürünler sunmanıza ve uygulama içi ödeme akışını kolaylaştırmanıza yardımcı olur. Kullanıcılar, tek seferlik sanal ürünler ve abonelikler dahil olmak üzere çeşitli sanal ürünler satın alabilir.

Dikkatinizi küresel ödeme yöntemlerini entegre etme ve regülasyonlara uygunluğu garanti etme gibi zaman alan bir iş yerine uygulama yeniliğine odaklamak istiyorsanız, HUAWEI In-App Purchases hizmeti tam size göre. Ayrıca HUAWEI IAP, farklı bölgelerde uygulama içi ürünlerin (oyunlar dahil) fiyatlarını ve dillerini yönetmenize olanak tanıyan bir ürün yönetim sistemi (PMS) de sağlar.

Desteklenen tüm bölgeleri görmek için: HUAWEI In-App Purchases Supported Locations

Ana Özellikler

  • Ürün yönetimi: 170'den fazla ülke ve bölgede 78 dil ve yerel para birimi kullanarak 195 fiyat seviyesindeki ürünler için otomatik fiyatlandırmayı destekler.
  • Sipariş yönetimi: Çoklu sipariş yönetimi API’leri sağlar, tüm sipariş bilgilerini kaydeder ve ürün teslimatlarının kaybolmasını önlemek için proaktif olarak sipariş durumunu izler.
  • Abonelik yönetimi: Sabit bir gelir elde etmenize yardımcı olmak için abonelik ilişkilerinin, abonelik dönemlerinin, abone olunan ürünlerin ve promosyon etkinliklerinin yönetimini sağlar.

Temel Avantajlar

  • Teslimat kaybı yok: Satın alınan tüm ürünlerin kullanıcılara teslim edilmesini sağlamak için sipariş durumunu proaktif olarak izler.
  • Birden fazla ödeme yöntemi: Banka kartları, operatör faturalandırması, HUAWEI Puanları ve diğer yerel ödeme yöntemleri dahil olmak üzere çoğu genel ödeme yöntemini destekler.
  • Sandbox test yapısı: HUAWEI In-App Purchases’a kolayca erişmeniz için sandbox test ortamı ve pratik entegrasyon kılavuzu sunar.

Artık bu hizmetin bizlere neler sağladığını öğrendiğimize göre, IAP’yi uygulamamıza entegre etmeye başlayalım.

Entegrasyon Hazırlıkları

Başlamadan önce, öncelikle bir HUAWEI geliştiricisi olarak kaydolmanız ve HUAWEI Geliştirici web sitesinde kimliğinizi doğrulamanız gerekir. Daha fazla ayrıntı için lütfen HUAWEI Kimliği oluşturma bölümüne bakın.

Yazılım Gereksinimleri

  • Android Studio 3.0 veya üzeri
  • Java SDK 1.7 veya üstü
  • HMS Core (APK) 3.0.0.300 veya üstü
  • HMS Core SDK 4.0.0.300 veya üzeri

HMS Core SDK entegrasyonu

HMS Core SDK’yı uygulamanıza entegre etmek ve AppGallery Connect’te yeni bir proje oluşturmayı öğrenmek için aşağıdaki harika kılavuzu gözden geçirebilirsiniz.

In-App Purchases’i etkinleştirme

AppGallery Connect’te bir uygulama ve proje oluşturduktan sonra, Merchant Services hizmetine başvurmanız ve HUAWEI IAP’yi etkinleştirmeniz gerekir.

Merchant Services’i etkinleştirmek için Projelerim> [Projeniz]> API’leri Yönet’e gidin ve Uygulama İçi Satın Alımları etkinleştirin. Merchant Services hizmetine başvurmanız istenecektir. Buraya banka bilgilerinizi girmeniz ve bir inceleme sürecinden geçmeniz gerekir. Bu inceleme süreci 2 gün kadar sürebilir.

Merchant Services kullanmaya kabul edildikten sonra, soldaki navigasyon bölümünden Earning> In-App Purchases’a gidin ve Ayarlar’ı tıklayın. HUAWEI IAP’yi ilk kez yapılandırıyorsanız, sözleşmeyi imzalamanız için bir pop-up görüntülenir.

Yapılandırma başarılı olduktan sonra, sonraki sayfada ödeme imzası doğrulaması için kullanılan public key’i ve abonelik bildirimi URL’sini yapılandırmak için olan parametreyi görebilirsiniz.

defaultConfig> applicationId bölümünden paket adınızı ayarlamayı ve MinSdkVersion ayarını 19 veya daha yüksek bir değere ayarlamayı unutmayın. Paket adı, agconnect-services.json dosyasındaki package_name ile eşleşmelidir.

Implementasyon

Flutter proje dizininizde, pubspec.yaml dosyanızı bulup açın ve eklentiyi bağımlılıklara ekleyin. Daha fazla ayrıntı için lütfen Paketleri kullanma bölümüne bakın

dependencies:
huawei_iap: ^ 5.0.0 + 300

Bu makalede kullanılan SDK sürümünün en yeni sürüm olmayabileceğini unutmayın. En son SDK sürümünü kullanmak istiyorsanız, lütfen GitHub’daki flutter-hms-iap’e bakın.

Ve paket bilgilerini güncellemek için aşağıdaki komutu çalıştırın.

[project_path]> flutter pub get

Ürün Bilgilerini Yapılandırma

Bir ürün eklemek için soldaki navigasyon ksımından Uygulamalarım> [Uygulamanız]> Çalıştır> Ürün İşlemleri> Ürün Yönetimi’ne gidin, ardından Ürünler sekmesine ve Ürün Ekle’ye tıklayın. Ürün bilgilerini yapılandırın ve Kaydet’i tıklayın.

Yapılandırma tamamlandıktan sonra, geçerli ve satın alınabilir hale getirmek için listedeki ürünü etkinleştirin.

AppGallery Connect’e başarıyla 2 ürün ekledik. Şimdi uygulamamızda IAP İstemci API’lerini nasıl kullanabileceğimize bakalım.

Implementasyona geçmeden önce hatırlatma

Size sadece özelliği açıklamak için gerekli kısımları göstereceğim. Tam kaynak koduna bir göz atmak isterseniz, GitHub bağlantısını bu makalenin sonunda bulabilirsiniz.

Ürün Bilgilerini Almak

Ürünlerimizin ürün bilgilerini IapClient.obtainProductInfo (productInfoRequest) çağrısıyla alabiliriz.

Unutmayın: SkuIds, AppGallery Connect’te ürün bilgilerini yapılandırırken geliştirici tarafından belirlenenlerle aynıdır.

Consumable Satın Almak

Kullanıcıların uygulamanızdaki ürünleri satın almalarına izin vermek için, kullanıcılar satın alma düğmesine dokunduklarında, önce bir satın alma amacı isteği oluşturun ve talepte ürünün türünü (bu durumda Consumable) ve ürün kimliğini belirtin.

Unutmayın: Satın alma işlevini test etmek ve gerçek ödeme yapmadan uçtan uca testi tamamlamak için, AppGallery Connect’te bir test kullanıcısı hesabı oluşturmanız ve aşağıdaki kodda olduğu gibi istekte geliştiriciPayload’ı “Test” olarak belirtmeniz gerekir.

Uygulamanız için nasıl test kullanıcısı hesabı oluşturacağınızı öğrenmek için lütfen Sandbox Testing’e bakın.

Kullanıcı ödeme sürecini tamamladıktan sonra, satın alma işleminin ayrıntılarını içeren bir PurchaseResultInfo alıyoruz. Bu sonucu daha sonra kullanıcıların satın aldığı ürünleri tüketmek için kullanacağız.

purchaseConsumableProduct’çağırmadan önce IapClient.isEnvReady’yi çağırmayı unutmayın; bu, kullanıcının oturum açtığını ve satın alma durumu durumunu gösteren bir yanıt döndürür.

Ayrıca farklı return kodlarını kontrol edebilir ve duruma göre ayrı işlem yapabilirsiniz. Tüm return kodlarını görmek için lütfen Result Codes’a bakın.

Artık bir ürünü başarıyla satın aldığımıza göre, etkili olması için onu tüketmemiz gerekiyor. Aksi takdirde kullanıcılar bu ürünü tekrar satın alamayacaklar.

Ürünü Tüketmek

Sahip olunan bir ürünü IapClient.consumeOwnedPurchase (consumeOwnedPurchaseRequest) çağrısıyla tüketebiliriz.

Bu, imzayı doğrulamak için kullanabileceğimiz bir sonuç da verir. Daha fazla bilgi için lütfen Sonuçtaki İmzayı Doğrulama bölümüne bakın.

Kullanıcı satın aldıktan hemen sonra ürünü tüketeceğiz.

Bu kadar. Kullanıcılarımız için “satın alma” ve “tüketme” işlevlerini başarıyla uyguladık.

Satın alma işleminin hemen ardından tüketim sürecinde bir şeyler ters giderse, kullanıcının ürün tüketilene kadar o ürünü tekrar satın alamayacağını unutmayın. Bu nedenle, kullanıcıların sahip olduğu ürünleri kontrol etmek ve tüketilmemiş ürünler varsa bunları tüketmek için bir kontrol ve tüketim mekanizması uygulamanız tavsiye edilir.

Bu demo uygulamasının tam kaynak kodunu aşağıdaki bağlantıda bulabilirsiniz. Her bölüm yayınlandıkça kaynak kodunu güncelleyeceğim.

Bu kısım için bu kadar. Her zaman olduğu gibi, bu makaleyi okuduğunuz ve HMS kullandığınız için teşekkür ederiz. Herhangi bir sorunuz olursa lütfen bize bildirin. 2. kısımda görüşmek üzere!

KAYNAKÇA

--

--