У нас есть приложение с автоматически обновляемым IAP, для которого мы предлагаем начальный пробный период для пользователя и взимаем плату по истечении пробного периода. Наше приложение поддерживает управление учетными записями пользователей (вход в систему), и все функции (включая IAP) доступны только при входе пользователя в систему.
Есть два сценария для рассмотрения:
Случай 1: Новый пользователь (пользователь приложения) решает приобрести подписку на пробный период на устройстве, на котором она вошла со своим идентификатором Apple. Позже (после истечения пробного периода) она устанавливает приложение на другое устройство и регистрируется с другой учетной записью, но использует тот же Apple Id. Поскольку Apple Ids непрозрачны для приложения, приложение не может знать, что этот пользователь уже приобрел пробную версию, поэтому пользовательский интерфейс приложения предоставляет им возможность начать с пробного периода. Поскольку использованный Apple Id одинаковый, с пользователя будет снята плата.
Хотя этот сценарий является редким и может быть оправдан под тем предлогом, что используется тот же Apple Id, поэтому с пользователя предполагается взимать плату, но с точки зрения приложения ошибочно полагать, что пробный период доступен для новый пользователь приложения (другой логин)
Кроме того, пользователь, возможно, не намеренно делал это, чтобы воспользоваться вторым пробным периодом, но, возможно, забыл о предыдущей покупке и может использовать альтернативный адрес электронной почты при следующей регистрации.
Как запретить взимать с пользователя плату, если он уже использовал пробную версию для того же Apple ID, или если есть способ узнать, совершал ли этот пользователь (пользователь Apple ID) эту покупку в прошлом , чтобы вы больше не показывали им пробный вариант. Поможет ли восстановление покупок в этом отношении?
Случай 2: Один и тот же пользователь приложения может преднамеренно изменить идентификатор яблока на новом / том же устройстве, чтобы использовать несколько испытаний. Хотя ваше приложение обнаружит, что пользователь уже приобрел пробную версию, вы можете разрешить пользователю не отображать пользовательский интерфейс покупки подписки, но если вы выполняете рабочий процесс покупки со стороны Apple, он все равно будет считаться пробным периодом (новый идентификатор Apple) и не перечислять вам плату за то же самое.
Как вы обходите эти условия или если в моем понимании есть изъян, когда эти ситуации вообще не возникают.
Для случая 1: возможно, может сработать следующее, но не уверен:
Всякий раз, когда в приложении появляется новый логин, приложение должно либо обновить квитанцию, либо попросить восстановить транзакции для пользователя (это может расстраивать реальных пользователей в первый раз), и должна быть выполнена проверка квитанции, чтобы проверить, имел ли пользователь предыдущая покупка и если идентификатор транзакции связан с каким-либо предыдущим пользователем. Это в основном своего рода самостоятельное восстановление. Но все же в этом случае новый пользователь не сможет получить пробный период, вы можете просто сообщить, что текущий идентификатор Apple уже используется для пробного использования.
Пожалуйста, предложите, если мое понимание верно.