Я создаю приложение для iOS, которое предоставляет услугу, которую уже предоставляет наш веб-сайт. Это услуга на основе подписки, в которой все функции доступны после подписки. Чтобы люди подписывались на регулярные платежи в приложении, похоже, мне придется пройти через API Apple для покупки приложений с автоматическим продлением подписки. Это нормально, но проблема в том, что услуги, которые пользователи будут приобретать через приложение, также должны быть доступны на сайте. Но, читая пошаговые руководства и руководство для разработчиков, похоже, что единственный способ обработки транзакций — через само приложение, которое затем можно настроить для передачи информации на сервер. Но потом я представляю себе такой сценарий:
Пользователь покупает подписку в приложении для iOS, переключается между использованием сайта и приложения для iOS. В день, когда с пользователя взимается плата, а в последующие дни он использует только веб-сайт по какой-либо причине. Однако сервер не знает, что им был выставлен счет, поэтому функции отключены. Чтобы сервер узнал, что Apple выставила счет пользователю, пользователь должен открыть приложение на своем iphone или ipad и синхронизировать его как с Apple, так и с моим сервером.
Есть ли способ, которым мой сервер может напрямую пинговать Apple и получать информацию о покупках, сделанных для моего приложения для данного пользователя? я ничего не нашел; два предложенных макета, с сервером или без него, используют приложение iOS в качестве единственного коммуникатора с Apple, за исключением того, что сервер проверяет достоверность информации. Если сервер не может получить эту информацию из первых рук, какое другое возможное решение может быть?
- Старайтесь не использовать встроенную платежную систему Apple и рискуете получить отказ (с приложением, дублирующим услугу, которая была доступна в течение многих лет в Интернете, нам все равно больше не нужно использовать их систему покупки приложений?)
- Если пользователь платит через Apple, попросите сервер предоставить ему щедрый буфер между ожидаемыми датами оплаты и отключенными функциями (уменьшает вероятность возникновения проблемы, но не решает ее).
- Когда серверу кажется, что срок действия его учетной записи истек, но он этого не ожидает, отправьте пользователю электронное письмо с сообщением о том, что он должен открыть приложение, иначе его учетная запись не будет зачислена за купленное время (кажется странной и не очень хорошей вещью для должны попросить пользователя сделать, чтобы использовать услугу)
Это все, что я пока смог придумать. Кто-нибудь может посоветовать эти решения, или знает других, или знает, с кем я мог бы поговорить, чтобы попытаться понять это?