- How to cancel a subscription from Apple
- Cancel a subscription from Apple
- How to cancel a subscription on your iPhone, iPad, or iPod touch
- Cancel a subscription on your Mac
- Cancel a subscription on your Windows PC
- Cancel a subscription on your Apple Watch
- Cancel a subscription on your Apple TV
- If you don’t have an Apple device or Windows PC
- About canceling subscriptions from Apple
- Buy additional app features with in-app purchases and subscriptions
- What are in-app purchases?
- What is a subscription?
- What is a non-consumable in-app purchase?
- What is a consumable in-app purchase?
- About sharing in-app purchases
- Learn more
- iOS in-app purchases: часть 2: Инициализация и обработка покупок
- Создание экрана с подписками
- Доработка кода для отображения информации о покупках
- Дорабатываем модуль Purchases
- Реализация механизма покупки
- Вызовы в интерфейсе
- Про Adapty
How to cancel a subscription from Apple
Learn how to cancel subscriptions that you purchased with an app from the App Store. You can also cancel Apple TV+, Apple News+, Apple Fitness+, and other subscriptions from Apple.
Cancel a subscription from Apple
You can cancel a subscription in the Settings app on your iPhone or iPad, or in the App Store on your Mac.
How to cancel a subscription on your iPhone, iPad, or iPod touch
- Open the Settings app.
- Tap your name.
- Tap Subscriptions.
- Tap the subscription that you want to manage. Don’t see the subscription that you’re looking for?
- Tap Cancel Subscription. (Or if you want to cancel Apple One but keep some subscriptions, tap Choose Individual Services.) If you don’t see Cancel, the subscription is already canceled and won’t renew.
Cancel a subscription on your Mac
- Open the App Store app.
- Click the sign-in button or your name at the bottom of the sidebar.
- Click View Information at the top of the window. You might be asked to sign in.
- On the page that appears, scroll until you see Subscriptions, then click Manage.
- Click Edit next to the subscription that you want. Don’t see the subscription that you’re looking for?
- Click Cancel Subscription. If you don’t see Cancel Subscription, then the subscription is already canceled and won’t renew.
Cancel a subscription on your Windows PC
Cancel a subscription on your Apple Watch
- On your Apple Watch, open the App Store.
- Scroll to Account and tap it.
- Tap Subscriptions.
- Tap the subscription that you want. Don’t see the subscription that you’re looking for?
- Tap Cancel Subscription. If you don’t see Cancel Subscription, then the subscription is already canceled and won’t renew.
Cancel a subscription on your Apple TV
On Apple TV, you can edit subscriptions only for tvOS apps that are installed on that Apple TV. For Apple TV (3rd generation or earlier), use an iOS or iPadOS device or computer to manage your subscriptions.
- Open Settings.
- Select Users & Accounts, then select your account.
- Select Subscriptions.
- Choose the subscription that you want to manage, then select Cancel Subscription. If you don’t see Cancel Subscription, then the subscription is already canceled and won’t renew.
If you don’t have an Apple device or Windows PC
- You can cancel Apple Music on the web.
- You can cancel Apple TV+ on the web.
- If you want to cancel a different subscription from Apple, contact Apple Support.
About canceling subscriptions from Apple
- Most subscriptions automatically renew unless you cancel them.
- If you cancel a paid subscription, you can keep using the subscription until the next billing date.
- If you cancel during a free trial period, you might lose access to the subscription immediately.
If you signed up for a free or discounted trial subscription and you don’t want to renew it, cancel it at least 24 hours before the trial ends.
Canceling subscriptions is slightly different in Israel, South Africa, and Turkey. Learn about special circumstances for these countries and regions.
Information about products not manufactured by Apple, or independent websites not controlled or tested by Apple, is provided without recommendation or endorsement. Apple assumes no responsibility with regard to the selection, performance, or use of third-party websites or products. Apple makes no representations regarding third-party website accuracy or reliability. Contact the vendor for additional information.
Источник
Buy additional app features with in-app purchases and subscriptions
Learn how subscriptions and in-app purchases work.
What are in-app purchases?
In-app purchases are extra content or subscriptions that you buy inside an app. Not all apps offer in-app purchases. To check if an app offers in-app purchases before you buy or download it, find it in the App Store. Then look for «In-App Purchases» near the app’s price or Get button.
What is a subscription?
With a subscription, you pay to access content from an app or service for a period of time. For example, you might subscribe to Apple Music on a monthly basis. Subscriptions include services that you sign up for in an app, such as Hulu, Spotify, Pandora, or HBO NOW.
Most subscriptions renew automatically unless you cancel them. With some apps and services, you can choose how often the subscription renews. For example, you might be offered weekly, monthly, quarterly, or yearly subscriptions.
What is a non-consumable in-app purchase?
Here are examples of non-consumable in-app purchases:
- Remove ads
- Full game unlock
- Upgrade to pro edition
- Bonus game levels
You buy these items one time, and you can transfer them to other devices that are associated with your Apple ID. If you lose a non-consumable purchase, you might be able to download it again for free.
What is a consumable in-app purchase?
Here are examples of consumable in-app purchases:
- Game currency, such as coins or gems
- Extra health points in a game
- A package of exports to a new file format
You need to buy these items every time you want them, and you can’t download them again for free. If you remove and reinstall an app or install an app on a new device, you might lose your consumable purchases. For example, if you install a game on your iPod touch that you started playing on your iPhone, the game levels sync, but extra health that you bought on your iPhone doesn’t sync.
About sharing in-app purchases
If you use Family Sharing, you might be able to share some subscriptions with family members. Find out how to share a subscription with family. Consumable in-app purchases can’t be shared.
Learn more
- To prevent unintentional in-app purchases or prevent a child from making in-app purchases, set up Screen Time.
- If you tried to make an in-app purchase and you aren’t sure the purchase was successful, check your purchase history. If you see it in your purchase history but you don’t see it in the app, contact the app developer.
- For any other issues with in-app purchases, you can request a refund or report a problem.
For more information about subscriptions and in-app purchases, see the Apple Media Services Terms and Conditions.
Store availability and features might vary by country or region. Learn what’s available in your country or region.
Information about products not manufactured by Apple, or independent websites not controlled or tested by Apple, is provided without recommendation or endorsement. Apple assumes no responsibility with regard to the selection, performance, or use of third-party websites or products. Apple makes no representations regarding third-party website accuracy or reliability. Contact the vendor for additional information.
Источник
iOS in-app purchases: часть 2: Инициализация и обработка покупок
Всем привет, меня зовут Виталий, я основатель Adapty. Мы продолжаем цикл статей, посвещенных встроенным покупкам в iOS приложениях:
- iOS in-app purchases, часть 1: Конфигурация и добавление в проект.
- iOS in-app purchases, часть 2: Инициализация и обработка покупок. — Вы тут.
- iOS in-app purchases, часть 3: Серверная валидация покупок.
- iOS in-app purchases, часть 4: Локальное тестирование покупок в XCode.
- iOS in-app purchases, часть 5: Обработка ошибок SKErrors
В нашем блоге также есть туториалы для Android, React Native и Flutter, заходите, чтобы найти что-то полезное.
В данной статье мы разберем создание простейшего пейволла (платежного экрана), а также инициализацию и обработку покупок, настроенных нами на первом этапе.
Создание экрана с подписками
В любом приложении, которое использует встроенные покупки присутствует пейволл. Есть требования от Apple, которые определяют минимальный набор необходимых элементов и поясняющих текстов для подобных экранов. На данном этапе мы не будем максимально точно выполнять их все, но наш вариант будет очень приближен к рабочему варианту.
Итак, наш экран будет состоять из следующих функциональных элементов:
- Заголовок: поясняющий/продающий блоки.
- Набор кнопок для инициализации процесса покупки. На них также будут указаны основные свойства подписок: название и цена в местной валюте (валюте магазина).
- Кнопка восстановления прошлых покупок. Этот элемент необходим для всех приложений, в которых используются подписки либо non-consumable покупки.
Для верстки я использовал Interface Builder Storyboard. В код класса ViewController, который содержит всю необходимую логику UI я вынес связи с кнопками покупок и индикатором прогресса (UIActivityIndicatorView) для того, чтобы визуализировать процесс оплаты.
Доработка кода для отображения информации о покупках
Разберем каркас нашего ViewController. Пока что тут нет логики, мы допишем ее позднее.
- Поля класса-проперти для связи элементов UI и нашего кода
- В методе viewDidLoad запускаем асинхронный процесс инициализации модуля покупок. Вообще говоря, это лучше делать на старте всего приложения, делая данный процесс независимым от слоя UI, но для простоты и наглядности сделаем это прямо здесь. Перед началом инициализации будем показывать индикатор загрузки, а по ее окончании — убирать. Для этого я написал небольшие хелпер-функции, которые привел в следующем блоке кода.
- Функция, которая обновляет интерфейс, используя полученные данные о покупках, такие как продолжительность пробного периода и цены.
- Методы-связки кнопок инициализации и восстановления покупок.
Обратите внимание, как здесь (1) используются объекты SKProduct. Мы не используем их поля напрямую, но сделаем extension для более удобного извлечения необходимой нам информации:
Дорабатываем модуль Purchases
В прошлой части мы провели инициализацию модуля покупок. Для этого мы запросили информацию о месячной и годовой подписке у серверов Apple. Я немного доработал класс Purchases для того, чтобы результат асинхронной операции было возможно отображать в интерфейсе, а также добавил сохранение объектов SKProduct в память для дальнейшего использования.
Реализация механизма покупки
Для того, чтобы полноценно сообщать об ошибках, произошедших внутри нашего кода, создадим enum PurchaseError, который будет реализовать протокол Error (или LocalizedError):
Если же во время оплаты произойдут ошибки на уровне StoreKit, то в результате мы также получим ошибку (подробнее о типах ошибок можно почитать в документации).
Функция purchaseProduct запускает процесс покупки выбранного нами продукта, а restorePurchases — запрашивает у системы список уже совершенных пользователей покупок (автовозобновляемые подписки или non-consumable покупки):
- Проверяем, что сейчас не запущен другой процесс покупки (в теории можно реализовать поддержку параллельных процессов покупки, но как правило, в этом нет никакой нужды, а вообще говоря, добавляет больше пространства для багов)
- Если будет попытка совершить покупку с несуществующим в нашей системе peoductId, возвращаем ошибку
- Добавляем в SKPaymentQueue нашу покупку
- Для восстановления покупок, также делаем запрос к SKPaymentQueue
Для того, чтобы обрабатывать результаты покупок, нам необходимо реализовать протокол SKPaymentTransactionObserver:
- Итерируемся по массиву транзакций, обрабатывая каждую по отдельности
- В случае, если транзакция находится в состоянии purchased или restored, нам нужно произвести все действия, необходимые для того, чтобы пользователю стал доступен контент/подписка, после чего, закрыть транзакцию при помощи метода finishTransaction. Важно: в случае работы с consumable покупками критически важно сначала убедиться, что пользователю стал доступен контент, а только после этого закрывать транзакцию, иначе возможен кейс потери информации о покупке.
- По различным причинам процесс покупки может завершиться ошибкой, возвращаем эту информацию.
- Функция, которая вызывается на этапе 2: как раз в ней мы предоставляем пользователю купленный контент (например, запоминаем дату истечения подписки, для того чтобы UI интерпретировал пользователя, как премиум)
В данном случае мы рассмотрели не все возможные состояния транзакции. Существует также состояние purchasing (означает, что транзакция находится в процессе обработки) и deferred — транзакция отложена на неопределенное время и будет завершена позднее (например, в ожидании подтверждения от родителей). Эти состояния при необходимости также можно показывать в UI.
Вызовы в интерфейсе
Теперь осталось только вызвать данные функции из нашего ViewController, позаботившись о том, чтобы процесс был визуализирован, а всевозможные ошибки отображены пользователю.
Вот и все, очередной забор за нашей спиной. Спасибо Алексею Гончарову x401om за помощь в подготовке статьи.
Про Adapty
В целом, добавление покупок в приложения — довольно трудоёмкий процесс. Поэтому советуем познакомиться с SDK Adapty для in-app покупок. Он не только облегчает работу по подключению покупок, но и даёт много других преимуществ:
- Встроенная аналитика позволяет быстро понять основные метрики приложения.
- Когортный анализ отвечает на вопрос, как быстро сходится экономика.
- А/Б тесты увеличивают выручку приложения.
- Интеграции с внешними системами позволяют отправлять транзакции в сервисы атрибуции и продуктовой аналитики.
- Промо кампании уменьшают отток аудитории.
- Open source SDK позволяет интегрировать подписки в приложение за несколько часов.
- Серверная валидация и API для работы с другими платформами.
Познакомьтесь подробнее с этими возможностями, чтобы быстрее внедрить подписки в своё приложение и улучшить конверсии.
Источник