У додатках Покупки в iOS-додатках із Swift

Реалізація в програмі придбання додатків (IAP) у додатках для iOS [швидкий]

Зараз за кілька днів більшість додатків надає можливість отримати додаткову функцію або вміст, зробивши покупку . Цей процес добре відомий як In App Purchase (IAP), це чудовий спосіб заробити гроші на ваших додатках для iOS або MacOS.
Так, це безперечний факт, що в основному дохід розробника (звичайно, Apple) базується на покупках In App . Подобається це чи ні , 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. Кодекс у Свіфті
  3. Використання коду
  4. Тестування IAP

1. Налаштування iTunes Connect:

Ми обговоримо цю частину в чотирьох розділах: Налаштування банківського рахунку, створення користувачів Sandbox, створення додатків iTunes та створення продуктів IAP.

Налаштування банківського рахунку:

Якщо у вас немає налаштування банківського рахунку у вашому обліковому записі iTunes connect, ви не зможете користуватися послугами IAP . Отже, це найважливіша частина роботи служб IAP. Ми можемо це зробити, перейшовши до розділу Угоди, податки та банківська справа на рахунок iTunes connect account. Це має виглядати приблизно так:

Створення користувачів пісочниці:

Тепер нам потрібно створити користувача пісочниці, створити навігацію до Користувачів і ролей у iTunes connect account і вибрати розділ Тести пісочниці. Дуже важливо додати користувача пісочниці для тестування послуг IAP, користувачем пісочниці ви можете робити транзакції безкоштовно.

Завжди пам’ятайте про використання електронної пошти, яка не містить жодного Apple ID.

Створення додатків iTunes:

Щоб створити додаток на iTunes в розділі Мої програми підключення акаунта iTunes або скористатися наявним додатком, який у вас уже є. Щоб створити додаток на iTunes, вам потрібно створити ідентифікатор додатка зі свого облікового запису розробника.

Створення продуктів IAP:

Щоб ви створили продукти IAP, відкрийте додаток iTunes та перейдіть до розділу Особливості. Натисніть на кнопку «+» і виберіть один із 4 типів, про які ми вже говорили. Потім надайте всі необхідні метадані, пов’язані з цим продуктом IAP. Зверніть увагу на ідентифікатор продукту

Ідентифікатор продукту повинен бути унікальним і зрозумілим, нам знадобляться ці ідентифікатори продуктів, щоб отримати бажані продукти IAP.
Ось кілька прикладів створених мною продуктів IAP.

Отже, тут ми робимо перший крок до інтеграції IAP. Перейдемо до наступного кроку, що є кодом.

О так!! Я зробив це.

2. Кодекс у Свіфті:

Тримайте код в окремому класі, який я створив PKIAPHandler, сміливо міняйте ім'я, якщо воно вам не подобається like. У цьому класі ми зберігатимемо всі речі, пов’язані з придбанням In App.
Отже, давайте обговоримо код. Що містить цей клас.

Властивості:

По-перше, вам потрібно зберегти всі використовувані ідентифікатори продуктів IAP в масиві, де ви збираєтесь показати всі створені продукти IAP (на етапі створення продуктів IAP) у вашому додатку, щоб показати користувачеві.
Існує властивість `isLogEnabled`, що допоможе вам увімкнути консольний журнал PKIAPHandler.
Властивість `shared` дозволить взаємодіяти з усіма функціями-членами, які вам потрібно використовувати під час IAP-послуг.
Для кращого розуміння я додав файл GIST коду. Прокрутіть вниз , щоб переглянути його.

Функції класу:

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

Методи делегування:

  1. productsRequest (_ запит: SKProductsRequest, didReceive response: SKProductsResponse): повертає всі продукти IAP, доступні в iTunes, щодо ідентифікаторів, які ви встановили методом setProductIds. Це буде запущено відразу після виклику методу fetchAvailableProducts.
  2. PaymentQueueRestoreCompletedTransactionFinished (_ черга: SKPaymentQueue): обробляє ситуацію, коли користувач успішно відновлює продукт IAP.
  3. payQueue (_ черга: 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, а потім запустіть програму на реальному пристрої та ініціюйте транзакцію. Не хвилюйтеся про ціну, яка відображається у вікні сповіщення, просто йдіть далі. Ніщо не стягуватиметься , оскільки ви користувач пісочниці для програми.

Примітка. У додатках Покупки не можна перевірити на тренажері iOS. Отже, будь ласка, використовуйте реальний пристрій.

!!! ЩАСЛОВА КОДУВАННЯ !!!

Дякуємо за прочитане, будь ласка, натисніть на рекомендацію, якщо сподобалась ця колекція Питання? Залиште їх у коментарі.