2010-07-17 5 views
4

Моя компания намерена внедрить крупномасштабную модель покупки In-App для iPhone-приложения. Наша самая большая проблема заключается в том, что мы не хотим идти с такой услугой, как Urban Airship, потому что она не очень хорошо интегрируется с нашей бизнес-моделью и природой самого приложения.Сервер для покупок в приложении для iPhone App

Итак, теперь мы собираемся создать собственный сервер для обработки связи с покупками In-App, а также для обслуживания загруженного контента. Мы не разблокируем контент, который уже существует в приложении, и будет загружать относительно большой дополнительный контент.

Есть ли хорошие ресурсы для получения дополнительной информации об этом компоненте на стороне сервера. Я очень хорошо знаком с тем, как работает StoreKit, но общение на стороне сервера - загадка для меня.

Любая помощь будет очень признательна!

+0

Меня тоже интересует! Одна вещь, которую я могу сказать, заключается в том, что мы используем Amazon AWS CloudFront для доставки (больших) файлов контента на устройства нашего приложения в прямом эфире - может быть, одна часть головоломки? – makdad

ответ

4

Я реализовал это, выполнив простую загрузку файла plist + zip для приобретаемого контента. Plist имеет список доступных в нем продуктов. Для каждой версии приложения есть файл plist, так как в моем случае иногда существуют различия в содержании на основе версии, которую пользователь имеет.

Эта схема также поддерживает управление версиями отдельных элементов контента, поскольку иногда вы хотите изменить один из элементов в своем магазине.

Я НЕ соблюдаю руководство Apple по покупке-затем-загрузке. Я загружаю-покупаю-разблокирую. Я слишком нервничаю из-за того, что кто-то покупает контент, а затем должен ждать его загрузки. (Мои файлы содержимого довольно большие).

Вот как это работает:

  1. загрузок App .plist для себя. (MyApp_2.1.plist)
  2. Открывает .plist, проверяет, какая версия каждого элемента контента у него есть. Предположим, что приложение в настоящее время имеет версию 1 контента A и версию 5 содержимого B. Файл plist выше сообщает ему, что текущий магазин должен иметь версию 1 из A, версию 6 из B и версию 7 C. Так что приложение загружает контент для B и C.
  3. Содержимое хранится в zip-файле. В моем случае это игровые уровни с файлами XML, аудио и графическим контентом. Существует также .plist с метаданными для этого уровня игры, который включает номер версии и идентификатор AppStore для этого элемента. Приложение распаковывает содержимое, а затем представляет его в витрине как заблокированный элемент. Если пользователь уже приобрел его, он автоматически получает обновленный контент. Если они его купят, я разблокирую контент в то время.

Это простое, может быть сделано с любой CMS (даже простым файловым веб-сервером) и поддерживает несколько версий контента в нескольких версиях вашего приложения.

Если вы хотите увидеть пользовательский интерфейс, приложение, для которого я это сделал, это игра под названием Lexitect, вы можете увидеть, как все это объединено с точки зрения пользовательского интерфейса. (Это бесплатно)

+0

Спасибо Крису, это действительно полезная информация. Мы скоро начнем работу над этим, и, вероятно, в ближайшее время будет много других вопросов. – Jeff

+0

Отлично, рад, что это было полезно. Не стесняйтесь обращаться ко мне напрямую. z at zworkbench dot com. –

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