При покупки на приложения в iOS приложения със Swift

Внедряване в покупка на приложения (IAP) в приложения за iOS [бързо]

Сега дни, по-голямата част от приложението предоставя възможност да получите допълнителната функция или съдържание, като направите покупка . Този процес е добре известен като In App Purchase (IAP), е чудесен начин да спечелите парите от вашите iOS или MacOS приложения.
Да, безспорен факт е, че главно приходите на разработчиците (Apple, разбира се) се основават на покупките в приложение . Харесва ви или не , Apple таксува 30% за всяка успешна транзакция, която ще направи вашето приложение .

И така, днес ще обсъдим покупките в In App и ще видим процеса на интегриране на In App Purchase в iOS приложение с език Swift 4.0.

Видове покупки в приложения:

Когато потребителят направи IAP, за да закупи допълнително съдържание на абонамент, направете едно от тях в покупката на приложение:

  1. Консумативи: Потребителят ще трябва да купува тези елементи всеки път, тъй като иска да ги използва, не може да се използва в бъдеще безплатно. При преинсталиране променящият се потребител може да загуби своите консумативи. Например, закупуване на игрална валута, здраве и съвети и т.н.
  2. Не консумативи: Потребителят купува този артикул еднократно, може да се използва в бъдеще безплатно. При преинсталиране, смяна на устройството тези продукти няма да бъдат загубени. Ако потребителят загуби, може да може да го изтегли отново безплатно, като възстанови покупките в приложението. Например: надграждане на приложение до професионална версия, премахване на реклами и т.н.
  3. Не подновяващи се абонаменти: Потребителят ще може да използва тези елементи за определен период от време, тези елементи могат да бъдат закупени отново след приключване на абонамента. Например: спортна сесия преминава за един, три или шест месеца.
  4. Автоматично подновяващи се абонаменти: Потребителят може да закупи този артикул за определен период от време, той автоматично ще се поднови, когато периодът е преминал. Например: Текущи услуги (Netflix, Hulu Plus и др.), Абонаменти за списания и т.н.

Ще се опитаме да обхванем всичко, което е необходимо за внедряване на IAP в iOS приложение, ще бъде обсъдено по следните теми в това:

  1. iTunes Connect Настройка
  2. Кодът в Swift
  3. Използване на кода
  4. Тестване на IAP

1. iTunes Connect Настройка:

Ще обсъдим тази част в четири раздела: Настройка на банкова сметка, създаване на потребител в Sandbox, създаване на приложение iTunes и създаване на IAP продукти.

Настройка на банкова сметка:

Ако нямате настройка на банковата сметка във вашия iTunes connect акаунт, няма да можете да използвате IAP услуги . Така че, най-важната част е работата на IAP услугите да работи. Можем да го направим, като отидем в секцията „Споразумения, данъци и банкиране“ на акаунта на iTunes connect. Тя трябва да изглежда така:

Създаване на потребител в пясъчницата:

Сега трябва да създадем потребител на пясъчна кутия, да създадем навигация до Потребители и Роли в iTunes свързване на акаунта и да изберем секцията Тестери за пясъчници. Много е важно да добавите потребител на пясъчниците, за да тествате услугите на IAP, от потребителя на пясъчниците можете да извършвате транзакции безплатно.

Винаги не забравяйте да използвате имейл, който не е добавен с Apple ID.

iTunes Създаване на приложение:

За да създадете приложение в iTunes към секцията My Apps на iTunes connect account или да използвате съществуващо приложение, което вече имате. За да създадете приложение в iTunes, трябва да създадете идентификационен номер на приложение от вашия акаунт на програмист.

Създаване на продукти от IAP:

За да създадете IAP продукти, отворете приложението си iTunes и отворете секцията функции. Кликнете върху бутона „+“ и изберете един от 4-те типа, които вече обсъдихме. След това предоставете всички необходими метаданни, свързани с този IAP продукт. Обърнете внимание на идентификатора на продукта

Идент. № на продукта трябва да бъде уникален и разбираем, ще се нуждаем от тези идентификатори на продукти, за да получим желаните IAP продукти.
Ето няколко примера за IAP продукти, които създадох.

И така, тук сме готови с първата стъпка към интегриране на IAP. Нека да преминем към следващата стъпка, която е код.

О да!! Направих го.

2. Кодът в Swift:

Дръжте кода в отделен клас, който създадох PKIAPHandler, не се колебайте да промените името, ако не ви харесва . В този клас ще съхраняваме всички неща, свързани с покупката на приложения.
Така че, нека да обсъдим кода. Какво съдържа този клас.

Имоти:

Първо трябва да съхраните всички използваеми идентификационни номера на IAP продукти в масив, където ще покажете всички създадени IAP продукти (в стъпка създаване на IAP продукти) във вашето приложение, за да покажете на потребителя.
Има свойство `isLogEnabled`, което ще ви помогне да активирате дневника на конзолата на PKIAPHandler.
свойството `shared` ще ви позволи да взаимодействате с всички функции на членове, които трябва да използвате, докато IAP услугите.
За по-добро разбиране прикачих GIST файла на кода. Превъртете надолу , за да го видите.

Функции на класа:

  1. canMakePurchases (): връща стойност на bool (true / false) или устройството може да извърши покупка, или не.
  2. setProductIds (ids: [String]): Използвайте тези методи, за да настроите идентификационните номера на IAP продукти да работят. Обадете се на тези методи в viewDidLoad метод на вашия UIViewController, в който ще покажете наличните IAP продукти.
  3. fetchAvailableProducts (complition: @escaping (([SKProduct]) -> void)): Използвайте този метод за извличане на всички детайли на IAP продукта за идентификаторите, които сте задали по метода setProductIds. Той ще върне масив от SKProduct, този SKProduct обект ще има всички подробности, които сте въвели, докато създавате IAP продукти в iTunes. Вземете този масив и го запазете в масив за показване в списъка и за да бъде използван в бъдеще за извършване на покупка.
  4. покупка (продукт: SKProduct, complition: @escaping ((PKIAPHandlerAlertType, SKProduct ?, SKPaymentTransaction?) -> void)): Използвайте този метод, за да инициирате покупка за продукта (използвайте SKProduct, за който сте получили всичко готово по метод fetchAvailableProducts) , Ще повдигне диалоговия прозорец за плащане за потвърждение от потребителя. В блока за завършване ще получите съобщение от обработващия, продукт, който е закупен и данни за платежната транзакция, ако бъде закупен успешно, в противен случай транзакцията с продукти и плащания ще бъде нулева.
  5. RestoPurchase (): Използвайте този метод за възстановяване на покупката за закупения / неразходен продукт.

Методи за делегиране:

  1. productsRequest (_ заявка: SKProductsRequest, didReceive response: SKProductsResponse): връща всички IAP продукти, които са налични в iTunes по отношение на идентификаторите, които сте задали по метода setProductIds. Той ще се задейства веднага след извикване на метода fetchAvailableProducts.
  2. PaymentQueueRestoreCompletedTransactionFinished (_ опашка: SKPaymentQueue): обработва ситуация, при която потребителят успешно възстановява IAP продукт.
  3. PaymentQueue (_ опашка: SKPaymentQueue, актуализирани транзакционни транзакции: [SKPaymentTransaction]): Този метод на делегат се задейства веднага след извикване на метода за покупка (продукт: SKProduct). В този метод ще получите всички подробности, свързани с транзакция с IAP, закупена или неуспешна.

3. Използване на кода:

Отворете ви UIViewController, създайте празен масив от тип SKProduct, след това в функцията viewDidLoad задайте идентификаторите на продуктите на IAP и извлечете всички детайли за IAP продуктите и ги покажете или в UITableView, UICollectionView или както искате.

PKIAPHandler.shared.setProductIds (идентификатори: self.productIDs)
PKIAPHandler.shared.fetchAvailableProducts {[слабо себе си] (продукти) в
   пази нека sSelf = self else {return}
   sSelf.productsArray = продукти
   sSelf.tableView.reloadData () // презареди ви изглед на таблица или колекция
}

Или създайте действие, или използвайте метода на делегат didSelect на tableView / collectionView, за да инициирате покупката на IAP чрез извикване на метод за покупка ().

func tableView (_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
PKIAPHandler.shared.purchase (продукт: self.productsArray [indexPath.row]) {(сигнал, продукт, транзакция) в
   ако нека tran = транзакция, нека prod = продукт {
     // използвайте данните за транзакциите и закупения продукт както искате
   }
   Globals.shared.showWarnigMessage (alert.message)
   }
}

Ето кодовия файл, превъртете надолу , за да го разгледате.

Тук сме готови за бързата имплементация на IAP в iOS приложение.
Сега, нека да тестваме.

Нека да тестваме

4. Тестване:

Първо, влезте в iOS устройството си чрез създадения потребителски акаунт в Sandbox, след това стартирайте приложението си на реалното устройство и инициирайте транзакцията. Не се притеснявайте за цената, която се показва в прозореца за предупреждение, просто отидете по-далеч. Нищо няма да бъде таксувано тъй като вие сте потребител на пясъчниците за приложението.

Забележка: В App покупките не могат да бъдат тествани на iOS симулатор. Така че, моля използвайте истинско устройство.

!!! ЧЕСТИТ КОДИРАНЕ !!!

Благодаря ви за четенето, моля натиснете иконата за препоръчване, ако харесвате тази колекция . Въпроси? Оставете ги в коментара.