SKPaymentQueue restoreCompletedTransactions: не восстановлена ​​транзакция

Я не могу получать какие-либо транзакции в моем paymentQueue:updatedTransactions: delegate Method. Только метод делегата paymentQueueRestoreCompletedTransactionsFinished: попадает в отладчик. Когда я пытаюсь восстановить массив транзакций, я получаю пустой массив.

Прежде всего, я покупаю продукт без обновления. После успешной покупки и проверки его с сервера он будет удален из очереди платежей. Затем при запуске я вызываю метод recoveretsues restoreCompletedTransactions . Как и ожидалось, Storekit спрашивает у меня пароль (от пользователя sandbox-user), который я вводил. Но метод обновления не будет рассматриваться. Только метод финиша поймается и, как описано, транзакции пустые.

Что я делаю не так? Является ли это моей виной, или это яблоки restoreCompletedTransactions сломан? ?

Спасибо и BR Nic

Извините, что вы так долго ждали!

Проблема в том, что в Руководстве по программированию приложений для приложений Apple в Apple ясно сказано, что я не могу восстановить не возобновляемые подписки. Мне придется самостоятельно хранить покупки и реализовывать собственные функции восстановления.

Что я сделал, это в том числе некоторые идентификаторы в названии продукта, которые говорят мне, какой продукт он есть. (Его единственный способ хранения информации о продукте без использования моего собственного сервера). Так что имя моей продукции, например, com.mycompany.iphone.non_renewing_30d (этот продукт действительно настроен как не обновляющийся продукт)

Поэтому, когда пользователь совершает покупку, я храню эту информацию в базе данных CoreData iDevice. Я также включаю мою функцию истечения срока действия, потому что у меня есть дата покупки и дата истечения срока действия продуктов (30d).

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

Я действительно предлагаю хранить информацию о покупке на устройстве iOS, потому что вам не нужно создавать свои собственные функции распознавания пользователя (например, адрес пользователя или адрес электронной почты), поскольку Apple отключила уникальность UDID.

Давайте будем гением компьютера.