IAP для iOS: как проверить, действительно ли с этого пользователя взимается плата за транзакцию
Я использую
paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
и внутри я, конечно, обращаюсь transactionState
, Все работает нормально, но теперь я хочу добавить правильное отслеживание.
Существует особый случай, когда пользователь купил SKPRoduct
уже раньше, но снова совершает покупку (т. е. после новой установки). Тогда с него снова не будет взиматься плата, но состояние транзакции будет .purchased
хотя это было восстановление.
Это происходит только в среде песочницы? Я еще не публиковал его, поэтому у меня нет живого опыта по этому поводу, но мне интересно, есть ли правильный способ узнать, была ли транзакция покупкой или фактически восстановлением?
1 ответ
Прежде всего, когда пользователь устанавливает приложение и нажимает кнопку "Купить", затемните дисплей и подождите, пока методы делегата не сообщат вам, что платеж прошел успешно, тогда вы сохраните логическое значение по умолчанию для пользователя, который купил IAP, всякий раз, когда вы открываете ВК с кнопкой покупки, проверьте логическое и скрыть / показать его соответственно
Примечание: перезарядка не произойдет снова, если пользователь удалит приложение после покупки, установит его снова и нажмет на покупку