SKPaymentQueue restoreCompletedTransactions: транзакция не восстановлена - PullRequest
5 голосов
/ 29 ноября 2011

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

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

Что я делаю не так?Это моя вина, или это яблоки restoreCompletedTransaction сломаны? ?

Спасибо и BR Nic

1 Ответ

3 голосов
/ 17 апреля 2012

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

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...