Responder a los resultados de una compra
Cuando finaliza una compra, el SDK de Adapty notifica a tu app con el resultado. Nada cambia en pantalla hasta que tu app reaccione. 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 Adapty SDK v4.0 o posterior.
- Crea una pantalla de 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 post-compra a su propio placement
Para obtener el flow post-compra desde tu app, asígnalo a su propio placement. El placement de tu flow no puede servir también el flow post-compra: un placement sirve un solo flow por audiencia.
- Publica el flow.
- Crea un placement de flow. Anota el Placement ID: tu app lo usa para obtener el flow.
- Asigna el flow 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 demoras, recupéralo junto con el paywall, no dentro del handler. Solicita también su configuración de UI — esa llamada es la que inicia el almacenamiento en caché de las imágenes del flow en segundo plano.
En iOS y Android, preloadFlows (SDK 4.1+) precarga varios placements en una sola llamada. Solo almacena en caché el JSON del placement, así que combínalo con la política de fetch ReturnCacheDataElseLoad y solicita igualmente la configuración de UI con antelación.
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