Что означает" восстановить покупки " в покупках в приложении?

Я действительно не понимаю эту идею. Должен ли я предоставить кнопку восстановления для пользователя? Какой метод должен вызывать этот метод? Что будет делать restore?

3 ответов


обычно вы восстанавливаете покупки с помощью этого кода:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

это будет reinvoke -paymentQueue:updatedTransactions на наблюдателе(наблюдателях) для приобретенных товаров. Это полезно для пользователей, которые переустановить приложение после удаления или установить его на другом устройстве.

не все типы покупок в приложении могут быть восстановлены.


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

для другого типа продуктов он автоматически восстановит его.

пожалуйста, прочитайте следующий текст, который очистит вашу концепцию об этом:

после того как транзакция была обработана и удаляется из очереди, ваш приложение обычно никогда не видит его снова. Однако, если ваше приложение поддерживает типы продуктов, которые должны быть восстановимыми, необходимо включить интерфейс, позволяющий пользователям восстанавливать эти покупки. Этот интерфейс позволяет пользователю добавлять продукт на другие устройства или, если оригинал устройство было стерто, чтобы восстановить транзакцию на исходном устройстве.

магазин комплект обеспечивает встроенный функциональность для восстановления проводки для non-потребляемые продукты, автоматическ-возобновляемые подписки и свободно подписки. Для восстановления транзакций приложение вызывает метод restoreCompletedTransactions очереди платежей. Очереди оплаты отправляет запрос в App Store для восстановления транзакций. В return, App Store генерирует новую транзакцию восстановления для каждого транзакция, которая была ранее завершена. Операции восстановления свойство originalTransaction объекта содержит копию оригинала торговая операция. Приложение обрабатывает транзакцию восстановления с помощью получение исходной транзакции и ее использование для разблокировки приобретенный контент. После Store Kit восстанавливает все предыдущие транзакции, он уведомляет наблюдателей очереди платежей, вызывая их paymentQueueRestoreCompletedTransactionsfinished: метод.

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


Это как дополнительная функция.

Если вы не предоставите его, когда пользователь попытается приобрести непотребляемый продукт, AppStore восстановит старую транзакцию. Но ваше приложение будет думать, что это новая сделка.

Если вы предоставите механизм восстановления, ваш менеджер покупок увидит восстановленную транзакцию.

Если приложение должно различать эти параметры, вы должны предоставить функциональность для восстановления ранее приобретенных продуктов.