0

Я разработчик интерфейса, и я собираюсь начать писать свой первый бэкэнд (используя AWS, надеюсь, это не будет катастрофой) , Мне нужно какое-то руководство, может быть ссылка на соответствующую тему на SO или учебник или что-то еще - я искал долгое время, но я, вероятно, не знаю, КАК искать проблему, которую мне нужно решить.В архитектуре поддержки покупки приложений: учетные записи пользователей и защита приложения от «заемной учетной записи» загружается

Сохранение вещей просто: мой клиент продает книги. В дополнение к этим книгам мы в настоящее время разрабатываем приложение. Различные части этого приложения будут соответствовать различным книгам, хотя приложение тоже имеет свою ценность (т. Е. Вам не нужно владеть книгой, чтобы использовать приложение). Идея состоит в том, что если пользователь владеет книгой, ему разрешается бесплатно загрузить соответствующую часть приложения из AppStore. Он этого не делает, он должен использовать IAP для покупки этого контента за определенную сумму денег.

Я придумал следующее простое решение:

  • мы ведение базы данных с идентификаторами все продаваемые книги
  • мы позволяем пользователям регистрировать и ввести идентификатор (ы) (ы) у них есть
  • Мы проверяем эти идентификаторы на нашу базу данных, а также проверяем, не был ли другой пользователь ранее вводить идентификатор (ы)
  • , если идентификаторы являются (являются) ОК, мы разрешаем пользователь загружает содержимое, соответствующее принадлежащей книге (книгам).

Пользователь может загрузить контент с нескольких устройств (например, его iPad, iPhone, iPhone своего ребенка ...), если он войдет в свою учетную запись на этих устройствах.

Однако я хотел бы предотвратить ситуации, когда пользователь передает свою учетную запись другу, который затем входит в эту учетную запись на своем устройстве и загружает контент, затем выходит из системы и использует приложение, даже если он hasn ' t купил что-нибудь, и он не владеет книгой (-ами).

Мои идеи:

  • Пользователь должен войти в систему, чтобы проверить, что он имеет право использовать содержание, даже если содержание уже на своем телефоне (скачанный ранее). Пользователь может одновременно регистрироваться только на одном устройстве (при входе на другое устройство он выйдет из первого устройства). СЕРЬЕЗНОЕ НЕПОДВИЖЕНИЕ: пользователь может использовать приложение только при подключении к Интернету, даже если он может загрузить все содержимое.

  • Выполняя inapp при покупке или покупке книги, пользователь получает право, скажем, на 3 загрузки. СЕРЬЕЗНОЕ НЕПОДВИЖЕНИЕ: что, если пользователь удалит приложение и хочет его переустановить? Повторная загрузка приобретенных деталей будет считаться одной загрузкой, поскольку нет надежных средств для проверки того, что устройство такое же, как и раньше, по крайней мере, не для iOS - есть нечто, называемое vendorId, но оно оказалось ненадежным - например, изменение системного обновления.

  • предлагает тот же контент по самой низкой цене (вместо бесплатной) для владельцев книг и по обычной цене для других. Таким образом, я передам все проверки Apple (через пользовательскую учетную запись iCloud), так как разблокировка контента всегда потребует использования IAP, и как только покупка будет сделана, Apple будет отслеживать все.

  • другие способы сделать это? Пожалуйста помоги.

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

+0

Я предполагаю, что вы имеете в виду «базу данных с книжными идентификаторами покупки»? Убедитесь, что ввод этих идентификаторов чрезвычайно удобен (например, с использованием штрих-кода, сгенерированного из идентификатора)! Кстати, этот вопрос не имеет ничего общего с iOS, IAP и Android; вместо этого это общий вопрос проектирования системы. –

+0

Да, мы, вероятно, будем использовать некоторые автоматические способы сделать это. Однако, если у вас есть другая, более удобная идея, поделитесь ею со мной :) Хорошо, я попытаюсь удалить теги ios/android из этого вопроса. –

ответ

0

Как вы можете различать:

Пользователь имеет возможность загрузить содержимое из нескольких устройств (например, его IPAD, его iPhone, его малыша iPhone ...), если он входит в к его учет на этих устройствах.

и:

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

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

+0

Спасибо за этот комментарий. Да, мне также интересно, стоит ли это делать. Я просто не хотел бы опускать некоторые очевидные решения, которые могут уже существовать для этой проблемы, и, возможно, широко используются опытными сторонними разработчиками, но неизвестными мне (?). –

 Смежные вопросы

  • Нет связанных вопросов^_^