Отмените автоматическое продление подписки с помощью Swift
Я хочу создать кнопку, где пользователь может отменить подписку на автоматическое продление (или перенаправиться в App Store).
Возможно ли это, чтобы пользователю не пришлось сначала пройти весь процесс покупки? Если это так, как бы вы поступили?
Любые мысли по этому вопросу будут с благодарностью!
5 ответов
Из Руководства по программированию покупки в приложении Apple -
Вместо того, чтобы кодировать собственный интерфейс управления подписками, ваше приложение может открыть следующий URL:
https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions открытии этого URL-адреса запускается iTunes или iTunes Store, а затем отображается страница "Управление подпиской".
Итак, просто создайте кнопку, которая запускает этот URL.
UIApplication.sharedApplication().openURL(NSURL(string: "https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions")!)
Декабрь 2019 г.
Правильный URL-адрес теперь https://apps.apple.com/account/subscriptions соответствии с Документацией по оплате подписок Apple.
Так что просто используйте:
UIApplication.shared.open(URL(string: "https://apps.apple.com/account/subscriptions")!)
Как упоминалось в документации: https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/Subscriptions.html
Так что для Swift 3/4 просто используйте это
UIApplication.shared.openURL(URL(string: "https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions")!)
I OS 10 и выше
UIApplication.shared.open(URL(string: "https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions")!, options: [:], completionHandler: nil)
Апрель 2021 г.
Согласно документу Apple , URL-адрес был обновлен до
https://apps.apple.com/account/subscriptions
Таким образом, следующий код можно использовать для перенаправления пользователя на страницу управления подписками.
DispatchQueue.main.async {
UIApplication.shared.open(URL(string: "https://apps.apple.com/account/subscriptions")!, options: [:], completionHandler: nil)
}