Доступ к квитанциям StoreKit напрямую с сервера - PullRequest
3 голосов
/ 04 марта 2012

Я создаю приложение для iOS, которое предоставляет услугу, которую уже предоставляет наш веб-сайт. Это сервис на основе подписки, где все функции включены, когда вы подписаны. Чтобы заставить людей подписаться на регулярные платежи в приложении, мне кажется, что мне придется пройти через Apple в API покупки приложений с автоматическим продлением подписок. Это нормально, но проблема в том, что сервис, который пользователи будут покупать через приложение, также должен быть доступен на сайте. Но, прочитав пошаговые руководства и руководство разработчика, похоже, что единственный способ обработки транзакций - это само приложение, которое затем можно настроить для передачи информации на сервер. Но тогда я представляю себе такой сценарий:

Пользователь покупает подписку в приложении iOS, переключается между сайтом и приложением iOS. В день, когда с пользователя взимается плата, и в последующие дни, по любой причине, он использует только веб-сайт. Сервер не знает, что им выставлен счет, и поэтому функции отключены. Чтобы сервер узнал, что Apple выставил счет пользователю, пользователь должен открыть приложение на своем iphone или ipad и синхронизировать его как с Apple, так и с моим сервером.

Может ли мой сервер напрямую пропинговать Apple и получать информацию о покупках, сделанных для моего приложения для данного пользователя? Я не смог ничего найти; оба предложенных макета, с сервером или без него, используют приложение iOS в качестве единственного коммуникатора с Apple, за исключением того, что сервер проверяет достоверность информации. Если сервер не может получить эту информацию из первых рук, какое еще возможное решение может быть?

  1. Старайтесь не использовать встроенную платежную систему Apple и рискуйте получить отказ (если приложение дублирует службу, которая была доступна в течение многих лет в Интернете, нам больше не придется использовать их в системе покупки приложений?)
  2. Если пользователь платит через Apple, пусть сервер предоставит ему щедрый буфер между ожидаемыми датами оплаты и когда функции отключены (проблема возникает реже, но не решает ее)
  3. Когда срок действия его учетной записи на сервере истек, но он этого не ожидает, отправьте пользователю электронное письмо с сообщением о том, что ему нужно открыть приложение, иначе его учетная запись не будет зачислена на приобретенное время (странно и не очень большая вещь, чтобы попросить пользователя сделать, чтобы использовать сервис)

Это все, что я смог придумать до сих пор. У кого-нибудь есть советы по этим решениям, или кто-то знает, или знает, с кем я мог бы поговорить, чтобы попытаться выяснить это?

1 Ответ

4 голосов
/ 07 марта 2012

Да, вы можете проверить состояние учетной записи пользователя с вашего сервера. Есть несколько предостережений:

  • Прежде всего, автоматическое продление подписки зарезервировано для периодических изданий, таких как журналы и газеты. Если ваше приложение не похоже на это, Apple может отклонить его (как они сделали мое) и потребовать, чтобы вы использовали невозобновляемые подписки (читай: Обновление подписок вручную).
  • Второе: в этом сценарии вам потребуется хранить все квитанции, полученные в приложении, на вашем сервере.
  • Наконец: я не знаю, как работает ваша система имени пользователя / пароля, но пользователю придется войти в систему с теми же учетными данными в вашем приложении, что и на вашем сайте.

Вот как вы проверяете состояние учетной записи пользователя: сохраняйте как минимум одну квитанцию ​​на пользователя на вашем сервере. Если вы хотите проверить статус, следуйте процедуре Apple для Проверка квитанций App Store . Отправьте им эту квитанцию, и они ответят последней квитанцией и датой истечения срока действия. Теперь вы в любой момент будете знать, является ли учетная запись пользователя текущей или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...