Может ли SKProductsRequestDelegate получить ответ для случайной транзакции?

#ios #swift #storekit

#iOS #swift #storekit

Вопрос:

Если я помещу платеж в очередь…

 public func buyProduct(_ product: SKProduct) {

    let payment = SKPayment(product: product)

    SKPaymentQueue.default().add(payment)
}
 

… обычно SKPaymentTransactionObserver будет получен обратный звонок относительно этого платежа. Может ли он также получать обратный вызов для транзакции, скажем, при предыдущем использовании приложения?

Другими словами, SKPaymentTransactionObserver нужно ли мне иметь возможность обрабатывать транзакцию, которую я ожидаю, и любые другие транзакции, которые все еще могут потребоваться для завершения, даже если пользователь может не иметь к ним прямого отношения в этот момент?

Комментарии:

1. Два слова: «восстановить покупки».

2. Я использую только расходные материалы.

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

4. Прохладный. Это то, что я понял, потому что, по-моему, я читал, что люди говорят, что обратные вызовы происходят сразу после запуска приложения.