Swift ile iOS uygulamalarında Uygulama İçi Satın Alımlar

İOS Uygulamalarında Uygulama İçi Satın Alma (IAP) Uygulaması [hızlı]

Şimdi bir gün, uygulamanın çoğu making satın alarak ekstra özellik veya içerik alma seçeneği sunar. Bu işlem Uygulama İçi Satın Alma (IAP) olarak bilinir, iOS veya MacOS uygulamalarınızdan para kazanmak için harika bir yoldur.
Evet, temel olarak geliştiricinin (elbette Apple’ın) gelirinin Uygulama İçi Satın Alma ’e dayandığı tartışılmaz bir gerçektir. Beğenin ya da beğenmeyin, Apple, başvurunuzun yapacağı her başarılı işlem için% 30 oranında ücret alır.

Bu yüzden, bugün Uygulama İçi Satın Almalar hakkında tartışacağız ve Uygulama İçi Satın Alma'yı iOS uygulamasına Swift 4.0 dili ile entegre etme sürecini göreceğiz.

Uygulama İçi Satın Alma Çeşitleri:

Kullanıcı fazladan abonelik içeriği almak için herhangi bir IAP yaptığında, uygulama satın alımlarında bunlardan birini yapın:

  1. Sarf malzemesi: Kullanıcının, kullanmak istediği gibi, gelecekte ücretsiz kullanılamayacak her zaman bu ürünleri alması gerekecektir. Yeniden kurulduğunda, cihaz kullanıcısını değiştirmek sarf malzemelerini kaybedebilir. Örneğin, oyun para birimi, sağlık ve ipuçları vb.
  2. Sarf malzemesi olmayan: Kullanıcı bir kez bu ürünü satın alır, gelecekte ücretsiz olarak kullanılabilir. Yeniden kurulduğunda, cihazın değiştirilmesi bu ürünler kaybolmayacak. Kullanıcı kaybederse, uygulama içi satın alımları geri alarak ücretsiz olarak tekrar indirebilir. Örneğin: Uygulamayı pro sürüme yükseltme, reklamları kaldırma vb.
  3. Yenilemeyen abonelikler: Kullanıcı bu öğeleri sabit bir süre boyunca kullanabilecek, bu öğeler abonelik sona erdikten sonra tekrar satın alınabilecek. Örneğin: bir spor seansı bir, üç veya altı ay boyunca geçer.
  4. Otomatik yenilenebilir abonelikler: Kullanıcı bu öğeyi belirli bir süre için satın alabilir, Süre geçtikten sonra otomatik olarak yenilenir. Örneğin: Devam eden hizmetler (Netflix, Hulu Plus, vb.), Dergi abonelikleri vb.

İOS uygulamasında IAP uygulamak için gereken her şeyi ele almaya çalışacağız, bu konuda aşağıdaki konular üzerinde tartışacağız:

  1. iTunes Connect Kurulumu
  2. Swift'deki Kod
  3. Kodunu kullanarak
  4. IAP’ın Test Edilmesi

1. iTunes Connect Kurulumu:

Bu bölümü dört bölümde tartışacağız: Banka hesabı oluşturma, Sandbox kullanıcı oluşturma, iTunes uygulaması oluşturma ve IAP ürünleri oluşturma.

Banka Hesabı Kur:

İTunes connect hesabınızdaki banka hesabı ayarlarına sahip değilseniz, IAP servislerini kullanamazsınız. Bu nedenle, IAP servislerinin çalışmasını sağlamak için en önemli kısımdır. İTunes connect hesabının Anlaşmalar, Vergi ve Bankacılık bölümüne giderek yapabiliriz. Bunun gibi bir şeye benzemeli:

Sandbox Kullanıcı Oluşturma:

Şimdi, iTunes connect hesabındaki Kullanıcılar ve Roller bölümüne gidip Sandbox Test Cihazları bölümünü seçmek için bir sandbox kullanıcısı oluşturmamız gerekiyor. IAP servislerini test etmek için sanal alan kullanıcısı eklemek çok önemlidir, sanal alan kullanıcısı tarafından ücretsiz işlem yapabilirsiniz.

Her zaman bir Apple kimliği ile uyumlu olmayan bir e-posta kullanmayı unutmayın.

iTunes App Oluşturma:

İTunes'ta iTunes connect hesabının Uygulamaları kısmına bir uygulama oluşturmak için veya önceden sahip olduğunuz bir uygulamayı kullanın. İTunes'ta bir uygulama oluşturmak için, geliştirici hesabınızdan bir Uygulama Kimliği oluşturmanız gerekir.

IAP Ürünleri Oluşturma:

IAP Ürünleri oluşturabilmek için iTunes uygulamanızı açın ve Özellikler bölümüne gidin. “+” Düğmesine tıklayın ve daha önce tartıştığımız 4 tipten birini seçin. Ardından, bu IAP Ürünüyle ilgili tüm gerekli meta verileri sağlayın. Ürün kimliğine dikkat edin.

Ürün Kimliği benzersiz ve anlaşılır olmalı, istenen IAP ürünlerini elde etmek için bu ürün kimliklerini almamız gerekecek.
İşte benim yarattığım IAP ürünlerinin bazı örnekleri.

İşte burada, IAP'ın entegrasyonuna yönelik ilk adım atıldı. Kod olan bir sonraki adıma geçelim.

Ah evet!! Ben yaptım.

2. Swift'deki Kod:

Kodu, PKIAPHandler'ı oluşturduğum ayrı bir sınıfta tutun, eğer beğenmediyseniz adını değiştirmek için çekinmeyin . Uygulama İçi Satın Alma ile ilgili her şeyi bu sınıfta saklayacağız.
Öyleyse kodu tartışalım. Bu sınıfın içindekiler.

Özellikleri:

Öncelikle, tüm kullanılabilir IAP ürünleri kimliklerini, bir kullanıcıya göstermek için uygulamanızdaki tüm yaratma IAP ürünlerini (adım IAP Ürünleri Oluşturma aşamasında) göstereceğiniz bir dizide saklamanız gerekir.
'İsLogEnabled' özelliği var, PKIAPHandler'ın konsol günlüğünü etkinleştirmenize yardımcı olur.
`shared` özelliği, IAP servislerinde kullanmanız gereken tüm üye fonksiyonlarla etkileşime girmenizi sağlar.
Daha iyi anlaşılması için, kodun GIST dosyasını ekledim. Bir göz atmak için aşağı kaydırın.

Sınıf İşlevleri:

  1. canMakePurchases (): cihazın satın alma yapıp yapamayacağı bir bool değeri (doğru / yanlış) döndürür.
  2. setProductIds (ids: [String]): Çalışmak için IAP ürün kimliklerini ayarlamak için bu yöntemleri kullanın. Bu yöntemleri, mevcut IAP ürünlerini göstereceğiniz UIViewController'ınızın viewDidLoad yönteminde çağırın.
  3. fetchAvailableProducts (complition: @escaping (([[SKProduct]) -> Void)): setProductIds yöntemiyle belirlediğiniz kimliklerin tüm IAP ürün ayrıntılarını almak için bu yöntemi kullanın. Bir SKProduct dizisi döndürecek, bu SKProduct nesnesi iTunes'da IAP ürünleri oluştururken girdiğiniz tüm ayrıntılara sahip olacaktır. Bu diziyi edinin ve listede göstermek ve gelecekte satın almak için kullanılmak üzere dizide tutun.
  4. satın alma (ürün: SKProduct, complition: @escaping ((PKIAPHandlerAlertType, SKProduct ?, SKPaymentTransaction?) -> Void)): Ürün için satın alma işlemini başlatmak için bu yöntemi kullanın (ürünü, fetchAvailableProducts yöntemiyle tamamen hazır hale getirdiğiniz SKProduct kullanıcısı) . Kullanıcı onayı için ödeme iletişim kutusunu yükseltir. Tamamlama bloğunda, başarılı bir şekilde satın alındıysa işleyiciden, satın alınan üründen ve ödeme işlem detaylarından mesaj alacaksınız, aksi takdirde ürün ve ödeme işlemi sıfır olacaktır.
  5. restorePurchase (): Satın alınan / tüketilmeyen öğenin satın alımını geri yüklemek için bu yöntemi kullanın.

Delege Yöntemleri:

  1. productsRequest (_ request: SKProductsRequest, didReceive response: SKProductsResponse): setProductIds yöntemiyle belirlediğiniz kimliklere göre iTunes'ta bulunan tüm IAP ürünlerini döndürür. FetchAvailableProducts yöntemini çağırdıktan hemen sonra tetiklenir.
  2. paymentQueueRestoreCompletedTransactionsFinished (_ queue: SKPaymentQueue): Bir kullanıcının bir IAP ürününü başarıyla geri yüklediği bir durumu ele alır.
  3. paymentQueue (_ queue: SKPaymentQueue, updatedTransactions işlemler: [SKPaymentTransaction]): Bu delege yöntemleri, satın alma (ürün: SKProduct) yöntemini çağırdıktan hemen sonra tetiklenir. Bu yöntemde, IAP işlemiyle ilgili tüm detayları ya satın alınmış ya da başarısız olmuş olacaksınız.

3. Kodu Kullanma:

UIViewController'ı açın, SKProduct türünde boş bir dizi oluşturun, sonra viewDidLoad işlevinde IAP ürün kimliklerini ayarlayın ve tüm IAP ürün ayrıntılarını alın ve bunları UITableView, UICollectionView veya istediğiniz şekilde gösterin.

PKIAPHandler.shared.setProductIds (ids: self.productIDs)
PKIAPHandler.shared.fetchAvailableProducts in {[zayıf kendini] (ürün) içinde
   güvenlik sSelf = self else {return}
   sSelf.productsArray = ürünler
   sSelf.tableView.reloadData () // tablo veya koleksiyon görünümünü yeniden yükle
}

Ya bir eylem oluşturun ya da use () yöntemini kullanarak IAP Satın Alma işlemini başlatmak için tableView / collectionView işlevinin didSelect yöntemini kullanın.

func tableView (_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
PKIAPHandler.shared.purchase (ürün: self.productsArray [indexPath.row]) {(alarm, ürün, işlem)
   tran = işlem yapalım, prod = product {
     // işlem ayrıntılarını ve satın alınan ürünü istediğiniz gibi kullanın
   }
   Globals.shared.showWarnigMessage (alert.message)
   }
}

İşte kod dosyası, üzerine bakmak için aşağı kaydırın.

Burada, iAP uygulamasında IAP'yi hızlı bir şekilde uygulamak için yapılır.
Şimdi teste geçelim.

Teste geçelim

4. Test:

Öncelikle, oluşturulan Sandbox kullanıcı hesabını kullanarak iOS cihazınızda oturum açın, ardından uygulamanızı gerçek cihazda çalıştırın ve işlemi başlatın. Uyarı penceresinde görüntülenen fiyat için endişelenmeyin, daha da ileri gidin. Uygulama için sanal alan kullanıcısı olduğunuzdan hiçbir şey tahsil edilmeyecektir.

Not: Uygulama İçi Satın Alma, iOS simülatöründe test edilemez. Yani, lütfen gerçek bir cihaz kullanın.

‍ !!! MUTLU KODLAMA !!!

Okuduğunuz için teşekkür ederiz, bu koleksiyon gibi eğer lütfen tavsiye simgesine tıklayın. Sorular? Onları yorumda bırak.