Responder a los resultados de compra
Cuando una compra finaliza, el SDK de Adapty llama a tu app con el resultado. Nada cambia en pantalla hasta que tu app reacciona. Tu app puede cerrar el paywall, dejarlo abierto para un nuevo intento o abrir un segundo flow que confirme la compra.
El builder no puede ramificar en función del resultado de una compra: ningún trigger se dispara cuando finaliza una compra, y ninguna variable contiene su resultado. Por eso, la transición debe gestionarse en tu código, donde llega el resultado.
El trabajo se divide en tres partes:
- Crear el flow posterior a la compra y asignarlo a su propio placement.
- En el código de tu app, ramificar según el resultado de la compra.
- En caso de éxito, cerrar el paywall y mostrar el flow posterior a la compra.
Antes de empezar
- Los flows requieren el SDK de Adapty v4.0 o posterior.
- Crea un paywall — por ejemplo, sigue la receta Crear una pantalla de paywall básica.
1. Construye el flow posterior a la compra
Crea el flow. Se ejecuta después de la compra, por lo que no necesita productos. Para devolver al usuario a la interfaz propia de tu app, añade un botón con la acción Close Flow en la pantalla final.
Usa una Acción personalizada cuando el flow tenga más de una salida. Crea varios botones, cada uno con su propio ID de acción, para que tu app pueda distinguir Set up now de Set up later.
2. Añade el flow de post-compra a su propio placement
Para obtener el flow de post-compra desde tu app, asígnalo a su propio placement. El placement de tu paywall no puede utilizarlo también — un placement sirve un único flow por audiencia.
- Publica el flow.
- Crea un placement para el flow. Anota el Placement ID — tu app lo usa para obtener el flow.
- Asigna el flow de post-compra al nuevo placement.
3. Ramifica según el resultado de la compra
Tu app recibe el resultado de la compra a través de dos callbacks:
- Completion: La compra llegó a una conclusión: tuvo éxito, el usuario la canceló, o el pago está pendiente de aprobación (la confirmación de un padre, por ejemplo). Lee el tipo del resultado para distinguir los tres casos. En caso de éxito, el resultado incluye el
AdaptyProfileactualizado. - Failure: Un error detuvo la compra, y el callback incluye un
AdaptyError: restricciones de pago, productos inválidos, fallos de red o errores de verificación de transacciones.
Nombres y firmas de los callbacks: iOS | Android | React Native | Flutter | Unity | Kotlin Multiplatform | Capacitor
Actúa según el resultado:
- Si tiene éxito, cierra el paywall y muestra el flow posterior a la compra.
- Si hay una cancelación, un pago pendiente o un error, deja el paywall abierto.
Las restauraciones se reportan a través de su propio callback, que cubre a los usuarios que reinstalan la app o cambian de dispositivo. Confirma que el perfil devuelto tiene tu nivel de acceso activo, luego cierra y presenta un flow de la misma manera. Apunta ese callback a un flow distinto: una pantalla que agradece al usuario por una compra no encaja en una restauración.
4. Cargar y presentar el flow post-compra
Para abrir el flow post-compra sin espera, obtenlo junto con el paywall en lugar de hacerlo dentro del handler. El SDK descarga y almacena en caché las imágenes de antemano.
Para precalentar la caché de varios placements en una sola llamada, usa preloadFlows (SDK 4.1+).
Obtener flows y paywalls: iOS | Android | React Native | Flutter | Unity | Kotlin Multiplatform | Capacitor
Mostrar flows y paywalls: iOS | Android | React Native | Flutter | Unity | Kotlin Multiplatform | Capacitor