Ilovalarda Swift-da iOS ilovalarida

IOS ilovalarida (IAP) ilovalarni amalga oshirish [swift]

Endi kunlar davomida, ilovalarning aksariyati xarid qilish orqali qo'shimcha xususiyat yoki tarkibni olish imkoniyatini taqdim etadi. Ushbu jarayon In App Shopping (IAP) nomi bilan mashhur bo'lib, u sizning iOS yoki MacOS ilovalaringizdan pul ishlashning ajoyib usuli hisoblanadi.
Ha, shubhasiz, asosan ishlab chiqaruvchilarning daromadi (albatta Apple), In App Store Xaridlariga asoslanadi. Yoqadimi yoki yo'qmi , Apple sizning dasturingiz amalga oshiradigan har bir muvaffaqiyatli operatsiya uchun 30% haq oladi.

Shunday qilib, bugungi kunda biz In App Xaridlari haqida suhbatlashamiz va iOS ilovasida Swift 4.0 tilida In App sotib olishni birlashtirish jarayonini ko'rib chiqamiz.

Ilovalarni xarid qilish turlari:

Agar foydalanuvchi qo'shimcha obuna tarkibini sotib olish uchun biron bir IAP qilsa, ilovalarni xarid qilishda quyidagilardan birini bajaring:

  1. Iste'mol qilinadigan: Foydalanuvchi har safar ushbu buyumlarni sotib olishi kerak, chunki ulardan foydalanishni xohlasangiz, kelajakda ularni bepul ishlatib bo'lmaydi. Qayta o'rnatishda va o'zgartirganda foydalanuvchi iste'molchi mahsulotlarini yo'qotishi mumkin. Masalan, o'yin valyutasini, sog'liqni saqlash va maslahatlarni sotib olish.
  2. Iste'mol qilinmaydigan: Foydalanuvchi ushbu mahsulotni bir marta sotib oladi, undan keyin bepul foydalanish mumkin. Qurilmani qayta o'rnatishda, o'zgartirishda ushbu mahsulotlar yo'qolmaydi. Agar foydalanuvchi yo'qolib qolsa, ilova ichidagi xaridlarni tiklash orqali uni yana bepul yuklab olish mumkin. Masalan: ilovani pro versiyasiga yangilash, reklamalarni olib tashlash va hk.
  3. Yangilanmaydigan obunalar: Foydalanuvchi ushbu buyumlardan belgilangan muddat davomida foydalanishi mumkin, obunalar tugaganidan keyin ularni yana sotib olish mumkin. Masalan: bitta, uch yoki olti oydan iborat sport sessiyasi.
  4. Avtomatik ravishda yangilanadigan obunalar: Foydalanuvchi ushbu mahsulotni ma'lum vaqtga sotib olishi mumkin, bu muddat o'tganidan keyin avtomatik ravishda yangilanadi. Masalan: Doimiy xizmatlar (Netflix, Hulu Plus va boshqalar), jurnal obunalari va boshqalar.

Biz iOS dasturida IAPni amalga oshirish uchun zarur bo'lgan barcha narsalarni yoritishga harakat qilamiz, quyidagi mavzularda muhokama qilamiz:

  1. iTunes-ni sozlash
  2. Sviftdagi kod
  3. Kodni ishlatish
  4. IAP-ni sinovdan o'tkazish

1. iTunes ulanishini sozlash:

Biz ushbu qismni to'rtta bo'limda muhokama qilamiz: Bank hisobini sozlash, Sandbox foydalanuvchisini yaratish, iTunes dasturini yaratish va IAP mahsulotlarini yaratish.

Bank hisobini sozlash:

Agar sizda iTunes ulanish hisob qaydnomangizda bank hisob qaydnomasi o'rnatilmagan bo'lsa, IAP xizmatlaridan foydalana olmaysiz. Shunday qilib, bu IAP xizmatlari ishlashining eng muhim qismidir. Biz buni iTunes ulanish hisob-kitobining shartnomalar, soliq va bank bo'limiga o'tish orqali amalga oshirishimiz mumkin. Bu quyidagicha ko'rinishi kerak:

Sandbox foydalanuvchisini yaratish:

Endi, iTunes-ga ulanish hisobidagi foydalanuvchilar va rollar bo'yicha navigatsiya yaratish va Sandbox sinovchilari bo'limini tanlash uchun biz sinov muhiti foydalanuvchisini yaratamiz. IAP xizmatlarini sinash uchun sinov muhiti foydalanuvchisini qo'shish juda muhimdir, chunki siz bepul operatsiyalarni amalga oshirishingiz mumkin.

Any Har doim Apple ID bilan biriktirilmagan elektron pochtadan foydalanishni unutmang.

iTunes ilovasini yaratish:

ITunes-da "Mening ilovalarim" -ga iTunes-ga ulanish hisob qaydnomasi-da dastur yaratish yoki mavjud ilovadan foydalanish. ITunes-da dastur yaratish uchun dasturiy ta'minot hisob qaydnomangizdan App Id-ni yaratishingiz kerak.

IAP mahsulotlarini yaratish:

IAP mahsulotlarini yaratish uchun iTunes dasturingizni oching va Xususiyatlar bo'limiga o'ting. "+" Tugmasini bosing va biz muhokama qilgan 4 turdan birini tanlang. Keyin ushbu IAP mahsuloti bilan bog'liq barcha kerakli metadata bilan ta'minlang. Mahsulot identifikatoriga e'tibor bering.

Mahsulot identifikatori noyob va tushunarli bo'lishi kerak, biz istagan IAP mahsulotlarini olish uchun ushbu mahsulot identifikatorlariga muhtoj bo'lamiz.
Men yaratgan IAP mahsulotlarining ba'zi misollari.

Shunday qilib, bu erda biz IAP integratsiyasiga birinchi qadam qo'ydik. Keyingi qadam bo'lgan kodga o'tamiz.

Urre!! Men buni qildim.

2. Sviftdagi kod:

Kodni men yaratgan PKIAPHandler-ning alohida sinfida saqlang, agar sizga yoqmasa, ismini o'zgartirish uchun bepul. Ushbu sinfda biz In App Xarid bilan bog'liq barcha narsalarni saqlaymiz.
Keling, kodni muhokama qilaylik. Bu sinf nimalarni o'z ichiga oladi.

Xususiyatlari:

Birinchidan, foydalanuvchiga ko'rsatish uchun barcha IAP mahsulotlarining identifikatorlarini bir qatorda saqlashingiz kerak, bu erda siz yaratgan IAP mahsulotlarini (IAP mahsulotlarini yaratish bosqichida) ko'rsatishingiz kerak.
"IsLogEnabled" xususiyati mavjud, u sizga PKIAPHandler konsol jurnalini yoqishga yordam beradi.
`shared` mulki sizga IAP xizmatlaridan foydalanishda ishlatilishi kerak bo`lgan a`zolarning barcha funktsiyalari bilan ishlashga imkon beradi.
Men yaxshiroq tushunish uchun kodning GIST faylini biriktirdim. Ko'rish uchun pastga aylantiring.

Sinf vazifalari:

  1. canMakePurchases (): qurilma xarid qila oladimi yoki yo'qmi, bool qiymatini (haqiqiy / noto'g'ri) qaytaradi.
  2. setProductIds (idlar: [String]): IAP mahsulot identifikatorlarini ishlash uchun sozlash uchun ushbu usullardan foydalaning. Mavjud IAP mahsulotlarini ko'rsatmoqchi bo'lgan UIViewController-ning ViewDidLoad usulida ushbu usullarni chaqiring.
  3. fetchAvailableProducts (shikoyat: @escaping (([SKProduct]) -> Void)): SetProductIds usuli bilan o'rnatgan identifikatorlarga IAP mahsulotining barcha tafsilotlarini olish uchun ushbu usuldan foydalaning. Bu SKProduct-ning bir qatorini qaytaradi, ushbu SKProduct ob'ekti iTunes-da IAP mahsulotlarini yaratishda kiritgan barcha tafsilotlarga ega bo'ladi. Ushbu qatorni oling va uni listda ko'rsatiladigan va kelajakda sotib olishda ishlatiladigan qatorga saqlang.
  4. sotib olish (mahsulot: SKProduct, shikoyat: @escaping ((PKIAPHandlerAlertType, SKProduct? . Bu foydalanuvchini tasdiqlash uchun to'lov oynasini ko'taradi. Tugallash blokida sizga ishlov beruvchidan, sotib olingan mahsulotdan va agar xarid muvaffaqiyatli amalga oshirilgan bo'lsa, to'lov operatsiyasining tafsilotlari haqida xabar keladi, aks holda mahsulot va to'lov operatsiyalari nolga teng bo'ladi.
  5. restavratsiya (): sotib olingan / iste'mol qilinmaydigan mahsulotni qayta tiklash uchun ushbu usuldan foydalaning.

Delegatsiya usullari:

  1. productsRequest (_ so'rov: SKProductsRequest, qilingan javob: SKProductsResponse): iTunes-da mavjud bo'lgan barcha IAP mahsulotlarini setProductIds usuli bilan o'rnatgan identifikatorlarga nisbatan qaytaradi. Bu faqat fetchAvailableProducts usulini chaqirgandan so'ng qo'zg'atiladi.
  2. to'lovQueueRestoreTopirovka qilingan operatsiyalarni tugatish (_ navbat: SKPaymentQueue): foydalanuvchi IAP mahsulotini muvaffaqiyatli tiklaydigan vaziyatni hal qiladi.
  3. to'lovQueue (_ navbat: SKPaymentQueue, yangilangan tranzaktsiyalar: [SKPaymentTransaction]): Ushbu vakillik usullari xaridni chaqirgandan so'ng (mahsulot: SKProduct) chaqirildi. Ushbu usulda siz sotib olingan yoki muvaffaqiyatsiz bo'lgan IAP bitimi bilan bog'liq barcha tafsilotlarni olasiz.

3. Kodni ishlatish:

Sizga UIViewController dasturini oching, SKProduk tipidagi bo'sh qatorni yarating, so'ngra ViewDidLoad funktsiyasida IAP mahsulotlarining identifikatorlarini o'rnating va IAP mahsulotlarining barcha tafsilotlarini oling va ularni UITableView, UICollectionView-da yoki xohlaganingizcha ko'rsating.

PKIAPHandler.shared.setProductIds (idlar: self.productIDs)
PKIAPHandler.shared.fetchAvailableProducts {[zaif o'zini o'zi] (mahsulotlar)
   Guard let sSelf = selfie {qaytish}
   sSelf.productsArray = mahsulotlar
   sSelf.tableView.reloadData () // jadval yoki to'plam ko'rinishini qayta yuklash
}

Ikkalasi ham harakatni yaratadi yoki "buy () usulini chaqirib IAP sotib olishni boshlash uchun tableView / collectionView vakolatli usulidan foydalaning.

func tableView (_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
PKIAPHandler.shared.purchase (mahsulot: self.productsArray [indexPath.row]) {(ogohlantirish, mahsulot, bitim) ichida
   agar tran = tranzaktsiya bo'lsa, prod = product {ga ruxsat bering
     // tranzaktsiya tafsilotlarini va sotib olingan mahsulotni xohlaganingizcha ishlating
   }
   Globals.shared.showWarnigMessage (alert.message)
   }
}

Mana bu kod faylidir, uni ko'rish uchun pastga aylantiring.

Biz bu erda iOS dasturida IAPni tezkorlik bilan amalga oshirish uchun qilinganmiz.
Endi sinovga boraylik.

Sinovga boraylik

4. Sinov:

Birinchidan, yaratilgan Sandbox foydalanuvchi qayd yozuvidan foydalanib, iOS qurilmangizga kiring, so'ngra haqiqiy qurilmada ilovangizni ishga tushiring va operatsiyani boshlang. Ogohlantirish oynasida ko'rsatiladigan narxlar haqida xavotir olmang, faqat oldinga boring. Siz dastur uchun sinov muhitidan foydalanuvchisiz, hech narsa olinmaydi.

Eslatma: Ilovalar xaridlarida iOS simulyatorida sinovdan o'tkazib bo'lmaydi. Shunday qilib, iltimos, haqiqiy qurilmadan foydalaning.

!!! Baxtli kodlash !!!

O'qiganingiz uchun rahmat, iltimos, agar ushbu to'plam kabi bo'lsa, tavsiya belgisini bosing. Savollar? Ularni sharhda qoldiring.