Продукт в приложении отображается в ожидании даже после вычета денег

У нас есть приложение, которое предоставляет расходные материалы для покупки электронных книг. Мы следим за двумя проблемами, как показано ниже:

Проблема 1: Мы установили наше последнее приложение из магазина приложений и пытаемся купить электронную книгу, но ранее не добавили кредитную/дебетовую карту в iPhone. При покупке мы ввели эти данные. Он перенаправляет в Appstore/Settings, но не возвращается обратно в наше приложение. И Деньги были вычтены, но In-App не уведомлен в App.

Проблема 2: в следующий раз, используя тот же iphone и тот же идентификатор Apple, мы получаем «Продукт уже куплен». даже думал, что это расходуемый In-App.

В то время как в настройках мы можем видеть нашу покупку в статусе «Ожидание».

Мы пытались отладить проблему, но в среде песочницы все работает отлично. Сообщите нам, есть ли какие-либо проблемы с Apple End или мы сделали что-то не так. Наше приложение уже давно находится в магазине приложений, но мы сталкиваемся с этой проблемой только через 4-5 дней. Пожалуйста помоги.

Заранее спасибо.


person Dimple Shah    schedule 21.11.2017    source источник
comment
Ваше приложение всегда должно проверять наличие ожидающих транзакций при запуске. Кажется, у вас есть ошибка, что вы не делаете этого и не завершаете какие-либо ожидающие транзакции.   -  person Paulw11    schedule 21.11.2017
comment
comment
@iPatel Я думаю, что для расходных материалов я не должен приобретать уже купленный .. ошибка.   -  person Dimple Shah    schedule 21.11.2017
comment
@Paulw11Paulw11 каковы шаги для этого? не могли бы вы рассказать мне?   -  person Dimple Shah    schedule 21.11.2017
comment
Вы получите сообщение «уже куплено», если вы не завершили ожидающую транзакцию для этого кода продукта. Первое, что должно сделать ваше приложение при запуске, — это зарегистрировать наблюдателя SKPaymentTransaction, чтобы вы могли обрабатывать любые ожидающие транзакции. Недостаточно создать наблюдателя платежей, когда пользователь инициирует покупку.   -  person Paulw11    schedule 21.11.2017
comment
@DimpleShah forums.developer.apple.com/thread/64939 и stackoverflow.com/questions/26937195/   -  person iPatel    schedule 21.11.2017
comment
@ Paulw11, тогда мне нужно показать пользовательский интерфейс для процесса покупки, если я получаю ожидающую транзакцию при запуске ?? или он напрямую завершит транзакцию? но как мое приложение может получить идентификатор транзакции?   -  person Dimple Shah    schedule 21.11.2017
comment
Нет, вам не нужно показывать пользовательский интерфейс. Любые незавершенные транзакции будут представлены вашему наблюдателю; затем вы обрабатываете транзакцию на основе ее состояния.   -  person Paulw11    schedule 21.11.2017
comment
@Paulw11Paulw11 Есть ли принуждение к тому, чтобы с той же кредитной / дебетовой картой не было ожидающих покупок ни на одном устройстве?   -  person Dimple Shah    schedule 22.11.2017
comment
Я не понимаю, что вы спрашиваете. Вам не нужно беспокоиться о способах оплаты. Все, что вам нужно сделать, это убедиться, что все ожидающие транзакции завершены должным образом.   -  person Paulw11    schedule 22.11.2017
comment
теперь транзакция не находится в состоянии ожидания, но я получаю то же предупреждение: «Уже куплено». У меня есть транзакция в состоянии ожидания на другом устройстве с другим идентификатором Apple, но с той же кредитной картой.   -  person Dimple Shah    schedule 22.11.2017
comment
@iPatel Я добавил наблюдателя в AppDelegate и с удивлением получаю 10 незавершенных транзакций из метода updatedTransactions:. Что теперь делать? Я получаю то же самое даже после удаления приложения и повторного запуска.   -  person Dimple Shah    schedule 22.11.2017