In-App Purchases (IAP) позволяют пользователям покупать цифровой контент, подписки или премиум-функции прямо в приложении. iOS реализует это с помощью фреймворка StoreKit, который обрабатывает получение информации о продуктах, обработку платежей и валидацию.
SKProductsRequestSKPaymentQueue и отслеживание обновлений транзакцийSKPaymentTransactionObserver для обработки состояний покупок1. Получить продукты с помощью SKProductsRequest
2. Показать продукты пользователю
3. Инициировать платёж через SKPaymentQueue.default().add(payment)
4. Обработать состояния транзакций: purchased, failed, restored
5. Валидировать чеки и разблокировать контент
6. Завершить транзакцию с помощью SKPaymentQueue.default().finishTransaction()
StoreKit 2 вводит async/await API, что делает реализацию значительно чище:
let products = try await Product.products(for: productIDs)
let result = try await product.purchase()
Transaction.updates для отслеживания изменений транзакцийBundle.main.appStoreReceiptURL для локальной валидации/verifyReceiptTransactionSKPaymentQueue.canMakePayments() перед тем, как инициировать покупкуrestored для поддержки пользователей, переустановивших приложениеПротокол SKPaymentTransactionObserver требуется для наблюдения и обработки изменений платежных транзакций в очереди платежей.
Новый — ещё не проверен сообществом
Вы