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