Non renewable subscription

swift
in-apppurchase

#1

Добрый день, кто делал non renewable подписку в приложении?
Такой вопрос:
В приложении есть регистрация. После покупки я сохраняю на своем сервере дату покупки и потом проверяю, чтобы не вышел срок. Но проблема такая:
Допустим есть человек, у него AppleID qwerty@gmail.com
Вот он зарегистрировался под ником User1. Он совершает покупку этой подписки на месяц. Все хорошо, подписка работает. Тут к нему приходит друг (User2) и просит ему сделать на халяву подписку. User1 на своем устройстве заходит в приложение, используя данные User2, а посколько AppleID принадлежит User1, то восстанавливает покупку, которая в итоге на моем сервере ставит юзеру2 ставит дату начала подписки такую же, как у User1. В итоге User1 может так раздавать подписки всем налево и направо. Как избежать этого? Или я что-то не так понял? Может быть она не восстанавливается, а покупается заново?
Заранее спасибо :slight_smile:


#2

Вроде бы нашел ответ вот тут. Подскажите, все происходит так, как написано в той ветке форума?


:slight_smile:


#3

Ну, можно хранить у себя на сервере активную подписку и по ней отдавать токен. Если приходит проверка на активацию/восстановление подписки, то обнулять предыдущий токен и выдавать новый. В самом приложении, кроме валидации, предусматривается запрос токена с сервера. Если валидация прошла, но токен не активный, сообщать юзеру, что использование программы невозможно, так как копия продукта используется одновременно на нескольких устройствах.

Ну а вообще, по поводу подписок можно не париться особо, что кто то даст свой AppleID, это врят ли и очень мало таких шизонутых. Ведь кроме покупок, человек по сути дает возможность контроля другому над своими устройствами: блокировка, стирание и т.д.

Лучше сделайте нормальную валидацию квитанции на своем сервере, так как все в основном ломается через твики в Сидии!

Как то так!

Если подписка кончилась, то она покупается заново. Вообще в квитанции, которую возвращает Apple, есть поле с истечением даты подписки. Если подписка не истекла, то восстанавливается как обычная покупка.

Пример квитанции


#4

Добрый день! Подскажите, пожалуйста, Вам удалось реализовать non renewable покупки, как рассказывалось в курсе на swift3?