Как проверить приложение Приобрести подписку с автоматическим продлением действительна

Шаблон MVC действительно только касается UI и ничего иного. Вы не должны помещать сложную бизнес-логику в контроллер, поскольку это управляет представлением, но не логикой. Контроллер должен интересоваться выбором надлежащего представления и делегировать более сложный материал к модели предметной области (Модель) или бизнес-слой.

Доменный Управляемый Дизайн имеет понятие Сервисов, которое является местом, Вы засовываете логику, которая должна организовать много различных типов объектов, который обычно означает логику, которая естественно не принадлежит на Образцовом классе.

я обычно думаю об Уровне служб как о API моих приложений. Уровни My Services обычно отображаются достаточно близко на требования приложения, я создаю таким образом действия Уровня служб как упрощение более сложных взаимодействий, найденных на более низких уровнях моего приложения, т.е. Вы могли выполнить ту же цель, обходящую Уровни служб, но необходимо будет вытянуть намного больше рычагов, чтобы заставить его работать.

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

29
задан Adam Swinden 25 February 2011 в 16:58
поделиться

1 ответ

Я начинаю кампанию вокруг этой проблемы. Вот мое наблюдение и кампания:

После автоматического обновления App Store вызывает paymentQueue и проводит транзакцию. Сделка проведена с transaction.transactionState==SKPaymentTransactionStateRestored.

Проблема в том, что, к сожалению, это публикуется только на одном устройстве. Второе устройство не получает сообщения. Поэтому, чтобы обнаружить автообновление или, точнее, обнаружить отсутствие автообновления и запретить устройству постоянную подписку, необходимо выполнить restoreCompletedTransaction или «http опубликовать 64-битный кодированный JSON, содержащий последнюю транзакцию». Если первое, пользователь должен дать свой пароль; это навязчиво - как вы указали выше. Если последнее, много дополнительного кодирования не требуется. Итак, мой вопрос ... почему StoreKit не имеет команды:

(не существует) - [[SKPaymentQueue defaultQueue] restoreAttachedTransactions:(NSArray *)transactions];

Эта команда будет выполняться точно так же, как restoreCompletedTransactions, но он только восстановит подключенные транзакции и, что более важно, не потребует входа пользователя в систему. Он имеет ту же защиту безопасности, что и «HTTP post 64-битного закодированного JSON, содержащего последнюю транзакцию», и позволяет выполнять весь процесс покупки в приложении в StoreKit, а не требовать кода публикации в Интернете.

Если это имеет смысл для вас, пожалуйста, предложите, как передать это Apple ... спасибо.

3
ответ дан 28 November 2019 в 01:58
поделиться