У меня есть тестовая учетная запись, в истории транзакций которой ровно две покупки. Оба продукта не являются расходными.
Я вошел в систему на iPad 1 и купил продукт A.
Затем я вышел из iPad 1, вошел в систему на iPad 2 и купил продукт B.
Затем я попытался восстановить предыдущие транзакции, используя [ [SKPaymentQueue defaultQueue] restoreCompletedTransactions];
для разблокировки продукта A на iPad 2.
Когда звонок возвращается, в списке восстанавливаемых транзакций находится только продукт B.
Кроме того, когда я снова пытаюсь купить продукт А на iPad 2 с помощью
SKPayment *payment = [SKPayment paymentWithProduct:productA];
[[SKPaymentQueue defaultQueue] addPayment:payment];
, я получаю всплывающее окно с сообщением «Вы уже приобрели это. Нажмите «ОК», чтобы загрузить его снова бесплатно».
Если я уже приобрел продукт А, почему его нет в списке продуктов, когда я пытаюсь восстановить предыдущие покупки? Почему мне нужно, чтобы пользователь пытался купить его снова?
РЕДАКТИРОВАТЬ:
Я обнаружил, что не имеет значения, какой iPad я использую (iPad 1 или iPad 2), только продукт B отображается в списке восстанавливаемых транзакций, а продукт A необходимо выкупить.
РЕДАКТИРОВАТЬ:
Я экстраполировал запрос продукта, восстановление и покупку в отдельный проект с тем же идентификатором пакета и идентификатором продукта, что и у оригинала.
Теперь ничегоне появляется в списке восстанавливаемых транзакций, но одно и то же всплывающее окно появляется, когда я пытаюсь купить любой продукт.
Еще одно путешествие в кроличью нору со сломанными инструментами Apple.
РЕДАКТИРОВАТЬ:
Вдохновением для этого расследования послужила череда жалоб пользователей на отсутствие прав. В основном это стало проблемой, когда пользователи переходили со своих iPad 2 на новые iPad 3. Это не согласуется со всеми моими пользователями, но многие из них подняли шум по этому поводу, чтобы сделать это приоритетом, и служба поддержки Apple направила их обратно ко мне, но я не уверен, что это проблема, которую я могу исправить. , тем более что Apple настаивает на том, чтобы быть кассовым аппаратом для покупок в приложении.