La alerta "Ya está todo listo" no se muestra cuando se realiza una compra por segunda vez
Estoy agregando compras dentro de la aplicación en mi aplicación usando el nuevo ProductView. La primera vez que intenté comprar mi producto, recibí una alerta que decía "Ya está todo listo". Pero cuando compré mi producto por segunda vez, la alerta no apareció. El producto es un consumible. ¿Por qué no aparece esa alerta? ¿Qué me estoy perdiendo?
ProductView(id: productId)
.productViewStyle(.compact)
.onInAppPurchaseStart { product in
logger.log("User has started buying \(product.id)")
}
.onInAppPurchaseCompletion { product, result in
if case .success(.success(let transaction)) = result {
logger.log("Success")
} else {
logger.log("Failure")
}
}
Aceptado
El siguiente código "funciona" de manera que cada vez que compro el mismo producto, la transacción se completa y aparece el esperado mensaje de alerta de confirmación "Ya está todo listo":
ProductView(id: productId)
.productViewStyle(.compact)
.onInAppPurchaseStart { product in
logger.log("User has started buying \(product.id)")
}
.onInAppPurchaseCompletion { product, result in
switch result {
case .success(let purchaseResult):
switch purchaseResult {
case .success(let verificationResult):
switch verificationResult {
case .verified(let transaction):
// Do something
await transaction.finish()
case .unverified(let transaction, let verificationError):
// Do something
}
case .pending:
// Do something
case .userCancelled:
// Do something
@unknown default:
// Do something
break
}
case .failure(let error):
// Do something
}
}
Los diferentes marcadores de posición deben reemplazarse con código real.