Когда использовать restoreCompletedTransactions для покупок в приложении?
Для базового приложения с непотребляемыми покупками в приложении кто-нибудь нашел лучшие практики использования SKPaymentQueuerestoreCompletedTransactions
?
Я знаю, что рекомендуется всегда регистрировать наблюдателя транзакций для получения ожидающих транзакций, которые возвращаются в приложение, но это другой вопрос. Это выглядит какrestoreCompletedTransactions
это то, что приложение должно активно решать, когда звонить на опрос для всех покупок, которые уже сделал клиент.
Из того, что я могу сказать, метод предназначен для получения покупок, которые могли быть потеряны. Например, клиент может установить или переместить приложение на новое устройство таким образом, чтобы локальные записи приложения о предыдущих платежах были потеряны или сброшены.
ОбеспокоенностьЧто мне не ясно, так это то, как автоматически определять это состояние (то есть, как решить, когда проводить опрос о пропущенных покупках) надежным способом. Я не хочу облажаться и рискнуть лишить клиента доступа к функциональности, за которую он уже заплатил.
В то же время я не хочу звонитьrestoreCompletedTransactions
каждый раз, когда приложение запускается просто для обеспечения безопасности и возврата транзакций, я знаю об этом уже в 99,9% случаев. (За исключением покупки в приложении, мое приложение не требует подключения к сети.)
В документации Apple разъясняется, что с клиентов не взимается плата за любые непотребляемые покупки, которые они уже сделали. Если они пытаются повторно купить, платежная транзакция все еще предположительно отправляется в приложение.
В худшем случае, клиент может восстановить покупки таким способом, но я все же хотел бы не идти по пути, который напоминает повторную покупку того, за что он уже заплатил.