Я заканчиваю работу над приложением для iOS, которое позволяет пользователям просматривать, покупать и загружать элементы из большой мультимедийной библиотеки, размещенной в Интернете в приложении rails. Сейчас в библиотеке есть сотни предметов, которые можно купить, и, скорее всего, в будущем она значительно расширится.
Сначала я намеревался создать отдельный элемент для покупки в приложении (в iTunes Connect) для каждого элемента в библиотеке. Однако я решил, что будет сложно создавать все эти сотни предметов для покупок в приложении. Более того, я хочу иметь возможность вносить дополнения и изменения в приобретаемые объекты через мою CMS, не внося также изменений в iTunesConnect.
Вместо этого теперь я предлагаю пользователю приложения создать учетную запись в приложении rails. Когда они идут за предметом, они сначала покупают общий предмет покупки в приложении. После завершения этой транзакции приложение подключается к моему приложению rails, записывает покупку и загружает купленный контент.
Одна вещь, которая заставляет меня нервничать в этом подходе, заключается в том, что пользователь может успешно совершить покупку в приложении с помощью Apple, но затем каким-то образом не сможет успешно подключиться к приложению rails. В этом случае покупка не будет записана, и контент не будет загружен, даже если пользователь совершил платеж. Кроме того, встроенные методы восстановления покупок Apple не работают, потому что покупаемый товар является универсальным. Только мое приложение rails запомнит, какие товары купил пользователь.
Итак, я собираюсь добавить к этому процессу много проверок ошибок и восстановления состояния. Чтобы убедиться, что он сможет восстановиться в случае возникновения проблем.
Я просто хотел рассказать об этом на случай, если у кого-то есть мнение или совет.
Спасибо!
Чарли
ОБНОВЛЕНИЕ
Прошло много времени, но в итоге я НЕ использовал обычную покупку в приложении. Это просто казалось слишком большим риском. В конце концов, с отдельными покупками в приложении Apple отслеживает покупки и предоставляет способ их восстановления. Так что имело смысл воспользоваться этим, вместо того, чтобы заставлять себя вести собственную базу данных пользователей и их покупок.
Было настоящей головной болью добавлять в iTC все, что есть в приложениях для покупок. интерфейс iTC ужасен. У меня было много проблем. Но в конце концов все они туда попали, и теперь все работает более-менее гладко.
В конце концов, я бы сказал, что, хотя создавать все эти покупки сложно, оно того стоит. Вернее, оно того стоит. Если создание этой записи о покупках в iTC не стоит усилий из-за того, что вы ожидаете получить от ее продажи, то у вас, вероятно, есть более серьезные проблемы с вашей бизнес-моделью!