Я осуществляю расходную покупку, например Пользователь может купить 200 монет за 1,99 доллара в любое время. Я реализовал поток покупки, но Xcode дает мне предупреждение: < /p>
совершаю покупку без прислушивания к обновлениям транзакций
отсутствующие успешные покупки. Создайте задачу для итерации
transaction.updates при запуске. < /P>
< /blockquote>
extension AppDelegate {
func observeTransactionUpdates() {
Task {
for await result in Transaction.updates {
switch result {
case .verified(let transaction):
if transaction.productID == ProductID.coins_200_price_1_95.rawValue {
print("Grant 200 coins")
print("Transaction id: \(transaction.id)")
await transaction.finish()
}
case .unverified(_, let error):
print("Unverified transaction: \(error.localizedDescription)")
}
}
}
}
}
< /code>
Теперь мой вопрос: в случае покупки расходных материалов, какова цель этих наблюдений? Пользователь не собирается что -то разблокировать до конкретной даты, а покупать монеты в любой момент времени.func purchase(_ product: Product) async {
do {
let result = try await product.purchase()
switch result
{
case let .success(.verified(transaction)):
print("Grant 200 coins")
print("Transaction id: \(transaction.id)")
await transaction.finish()
case let .success(.unverified(_, error)):
print("Purchase was successful but transaction/receipt can't be verified. This phone could be a jailbroken.")
print("Error: \(error.localizedDescription)")
break
case .pending:
print("Transaction is waiting on SCA (Strong Customer Authentication) or approval from Ask to Buy")
break
case .userCancelled:
print("Purchase was cancelled!")
break
@unknown default:
print("Purchase was failed!")
break
}
}
catch {
print("Purchase was failed!")
}
}
< /code>
Вы можете увидеть грант 200 монет < /code> выполняется в двух местах: < /p>
[*] Когда пользователь нажимает на покупку Кнопка
Когда наблюдается, ? Где мне предоставить пользователя 200 токенов?
Подробнее здесь: https://stackoverflow.com/questions/793 ... n-storekit