In-App Purchase con RevenueCat + Swift (Parte 4 de 6)
1In-App Purchase con RevenueCat en Swift - ¿Cómo instalarlo?
2In-App Purchase con RevenueCat en Swift - ¿Cómo configurar los productos?
3In-App Purchase con RevenueCat en Swift - ¿Cómo mostrar los productos?
4In-App Purchase con RevenueCat en Swift - ¿Cómo comprar productos?
5In-App Purchase con RevenueCat en Swift - ¿Cómo comprobar el estado de una suscripción?
6In-App Purchase con RevenueCat en Swift - ¿Cómo restaurar compras?
In-App Purchase con RevenueCat en Swift - ¿Cómo comprar productos?
Marcelo Laprea
25 julio, 20232min de lectura
Después de configurar y mostrar los productos en nuestra aplicación, es hora de ver cómo realizar una compra con RevenueCat.
Comprar un producto con RevenueCat
Para efectuar una compra, se necesita disponer de un package que contenga toda la información pertinente al producto que el usuario desea adquirir. Si no se tiene claro cómo obtener estos packages, se puede consultar el artículo sobre cómo mostrar los productos.
El SDK de RevenueCat proporciona un método para llevar a cabo la compra, donde simplemente se debe enviar el package de la siguiente manera:
Purchases.shared.purchase(package: package) {(transaction, customerInfo, error, userCancelled) in}
El completion block contiene varios atributos que resultan útiles para manejar la transacción:
-
transaction
: Contiene información sobre la transacción, incluyendo el identificador del producto, la fecha de compra, el identificador de la transacción y la cantidad. -
customerInfo: Si la compra se ha realizado con éxito, este objeto contendrá información relevante; de lo contrario, será nulo. Proporciona detalles sobre todas las compras y suscripciones que el usuario ha realizado en la aplicación, lo que incluye la posibilidad de determinar si el usuario está suscrito a alguno de los productos ofrecidos.
-
error: Este objeto solo estará presente si la compra experimentó un fallo; de lo contrario, será nulo.
-
userCancelled: Uno de los tipos de error que se puede recibir es aquel que indica que el usuario canceló la compra. Sin embargo, para evitar la necesidad de manejar diversos errores, el SDK nos proporciona este booleano para identificar específicamente si el usuario canceló la transacción.
Para verificar si la compra se realizó correctamente, se puede inspeccionar el objeto customerInfo
y comprobar si el entitlement
está activo o no. Para más detalles sobre los entitlements, se puede consultar este artículo.
Purchases.shared.purchase(package: package) { (transaction, customerInfo, error, userCancelled) inif customerInfo.entitlements["entitlement_id_que_quieres_comprobar"]?.isActive == true {// Desbloquear el contenido que el usuario haya comprado}}
Notas
- Es fundamental manejar los errores adecuadamente para proporcionar al usuario información clara sobre cualquier problema durante el proceso de compra.
- Se debe ofrecer una opción para que el usuario pueda restaurar sus compras en caso de que lo necesite, ya que Apple requiere esta funcionalidad durante el proceso de revisión de la aplicación.
- El método
Purchases.shared.getCustomerInfo
proporcionado por el SDK permite verificar si el usuario está suscrito o no en la aplicación.
In-App Purchase con RevenueCat + Swift (Parte 4 de 6)
1In-App Purchase con RevenueCat en Swift - ¿Cómo instalarlo?
2In-App Purchase con RevenueCat en Swift - ¿Cómo configurar los productos?
3In-App Purchase con RevenueCat en Swift - ¿Cómo mostrar los productos?
4In-App Purchase con RevenueCat en Swift - ¿Cómo comprar productos?
5In-App Purchase con RevenueCat en Swift - ¿Cómo comprobar el estado de una suscripción?
6In-App Purchase con RevenueCat en Swift - ¿Cómo restaurar compras?