Предотвращение мошенничества с пробным периодом при покупках в приложениях для iOS

У нас есть приложение с автоматически возобновляемым IAP, для которого мы предлагаем пользователю начальный пробный период и взимаем плату по истечении пробного периода. Наше приложение поддерживает управление учетными записями пользователей (логин пользователя), и все функции (включая IAP) доступны только тогда, когда пользователь вошел в систему.

Есть два сценария для рассмотрения:

Случай 1. Новый пользователь (пользователь приложения) решает приобрести подписку на пробный период на устройстве, на котором он вошел в систему со своим Apple ID. Позже (после истечения пробного периода) она устанавливает приложение на другое устройство и регистрируется с другой учетной записью приложения, но использует тот же Apple Id. Поскольку идентификаторы Apple непрозрачны для приложения, приложение не может узнать, что этот пользователь уже приобрел пробную версию, поэтому пользовательский интерфейс приложения предоставляет им возможность начать с пробного периода. Поскольку используется тот же Apple Id, с пользователя будет взиматься плата.

Хотя этот сценарий встречается редко и может быть оправдан предлогом того, что используется тот же Apple Id, поэтому предполагается, что с пользователя взимается плата, но со стороны приложения ошибочно предполагать, что пробный период доступен для нового пользователя приложения. (другой логин)

Кроме того, пользователь может не делать этого намеренно, чтобы воспользоваться вторым пробным периодом, но мог забыть о предыдущей покупке и может использовать альтернативный адрес электронной почты при следующей регистрации.

Как предотвратить взимание платы с пользователя, если он уже использовал пробную версию для того же Apple ID, или если есть способ узнать, совершал ли текущий пользователь (пользователь Apple ID) эту покупку в прошлом, чтобы вы больше не показываете им пробный вариант. Поможет ли восстановление покупок в этом отношении?

Случай 2. Один и тот же пользователь приложения может намеренно изменить идентификатор Apple на новом/одном устройстве, чтобы воспользоваться несколькими пробными версиями. Хотя ваше приложение обнаружит, что пользователь уже приобрел пробную версию, вы можете разрешить пользователю не показывать пользовательский интерфейс для покупки подписки, но если вы выполняете рабочий процесс покупки со стороны Apple, он все равно будет считаться пробным периодом (новый идентификатор Apple) и не переводить вам оплату за то же самое.

Как вы можете обойти эти условия или есть ли в моем понимании ошибка, из-за которой эти ситуации вообще не возникнут.

Для случая 1: возможно, следующее может работать, но не уверен:

Всякий раз, когда в приложении появляется новый логин, приложение должно либо обновить квитанцию, либо запросить восстановление транзакций у пользователя (это может разочаровать реальных пользователей, впервые зашедших в систему), и следует выполнить проверку квитанции, чтобы проверить, совершал ли пользователь предыдущую покупку и если идентификатор транзакции связан с каким-либо предыдущим пользователем. По сути, это своего рода самоуправляемое восстановление. Но все равно в этом случае новый пользователь не сможет получить пробный период, можно просто подсказать, что текущий apple id уже используется для пробного периода.

Пожалуйста, подскажите, правильно ли я понимаю.


person mickeymoon    schedule 02.05.2019    source источник
comment
Одним из способов решения первой проблемы может быть то, что когда они впервые используют пробную версию программного обеспечения и оно регистрируется с помощью AppleID, оно немедленно уведомляет их о том, что срок действия пробной версии истек, и с их существующей подписки будет взиматься плата. Вы должны знать на этом этапе, даже если вы не знаете во время установки. Если вы не знаете AppleID на каком-то этапе, то как вы будете их взимать? Насколько я понимаю, вторая проблема не возникнет, если вы уже можете определить идентификатор устройства во время установки, вы не будете предлагать пробную версию?   -  person Gem Taylor    schedule 02.05.2019
comment
Второй случай также может произойти с новым устройством. Новое устройство можно использовать для доступа к той же пробной версии с другим Apple Id, сохраняя при этом логин пользователя. Кроме того, идентификация устройства может быть сложной, особенно при удалении и переустановке приложений.   -  person mickeymoon    schedule 02.05.2019
comment
Итак, вам нужно управлять тремя вещами: идентификатором устройства, идентификатором Apple и идентификатором пользователя? Могут ли/должны ли клиенты рассчитывать на наличие нескольких идентификаторов пользователей и соответствующую оплату на одном устройстве? Например. личная учетная запись и рабочая учетная запись на одном устройстве?   -  person Gem Taylor    schedule 02.05.2019
comment
@GemTaylor: На самом деле я ищу ответы в обоих случаях. Если несколько учетных записей не разрешены, каждый запрос на покупку может быть предварительно проверен с помощью запроса на обновление квитанции, чтобы проверить, воспользовался ли уже текущий пользователь магазина приложений пробным периодом. Но если мы разрешим использование нескольких учетных записей (например, Instagram), повторно предоставить пробный период для второй учетной записи невозможно. (и я думаю, что Instagram тоже не делает IAP)   -  person mickeymoon    schedule 07.05.2019