Este es el SDK oficial de checkout para Android (
com.dodopayments.api:checkout-android),
para abrir el checkout alojado de Dodo. Es distinto del
SDK de Kotlin para backend, que llama a la API de
Dodo Payments desde tu servidor.Checkout Sessions API
Crea el
checkout_url que abre este SDKMobile Integration Guide
Mejores prácticas para flujos de checkout móvil
androidx.browser.customtabs. No contiene código de red ni almacena ninguna API key. Pasas un checkoutUrl de la sesión de checkout de tu backend, y el SDK devuelve un CheckoutResult con tipos cuando el usuario completa o abandona el flujo.
Requisitos: minSdk 23, Kotlin, Java 17.
Instalación
1
Add the Dependency
build.gradle.kts
2
Register a Callback URL Scheme
Configura tu esquema de callback como un placeholder del manifiesto de Gradle. El manifiesto propio de la biblioteca ya declara el intent filter de la actividad de redirección mediante el token El valor debe coincidir con el esquema de
${dodoCallbackScheme}, por lo que esta propiedad es todo lo necesario para la configuración: no tienes que añadir XML de manifiesto:build.gradle.kts
CheckoutParams.returnUrl (por ejemplo,
myapp://checkout/return).Si omites por completo el placeholder, la compilación falla inmediatamente con un error de placeholder no resuelto, en lugar de fallar silenciosamente durante el checkout. Si lo configuras, pero no coincide con el esquema de
returnUrl, DodoCheckout.start lanza PLATFORM_ERROR antes de mostrar nada.Uso
El SDK admite dos estilos de invocación.- Launcher (Recommended)
- Suspend Function
Registra el contrato con
registerForActivityResult y, después, ejecútalo:Qué significa el resultado
CheckoutStatus
requerido
Uno de
SUCCEEDED, FAILED, CANCELLED, PENDING, EXPIRED.String?
Se establece cuando la URL de retorno incluía uno. Muéstralo en la UI; no lo uses para conceder acceso. Consulta Verificar el pago a continuación.
String?
Se establece para los checkouts de suscripción.
List<String>?
Se establece cuando el checkout incluye productos con claves de licencia.
String?
Se establece cuando el checkout captura un email.
Map<String, String>
Cada parámetro de consulta de la URL de retorno, literalmente.
Verificar el pago
Webhooks
Escucha eventos de pago en tiempo real
Get Payment Detail
Consulta el estado del pago cuando lo necesites
CheckoutResult.status.
Errores
DodoCheckout.start lanza CheckoutError únicamente por un uso incorrecto o un fallo de la plataforma. Lee el código de CheckoutError.code:
INVALID_CHECKOUT_URL: no es una URL de sesióncheckout.dodopayments.com.INVALID_RETURN_URL: no es una URL absoluta válida.ALREADY_IN_PROGRESS: ya hay un checkout en ejecución.PLATFORM_ERROR: fallo inesperado de la plataforma, incluido unreturnUrlcuyo esquema no coincide con tu placeholderdodoCallbackScheme.
CANCELLED o
FAILED), nunca un error lanzado. Con el estilo launcher, los errores de validación
se lanzan fuera de launcher.launch(...).
Sesiones abandonadas
Si la app se cierra o el usuario la detiene forzosamente durante el checkout, el SDK almacena la sesión localmente. En el siguiente lanzamiento de la app, busca una sesión abandonada y concíliala con tu backend:abandoned.createdAt es una marca de tiempo epoch en milisegundos.
Relacionado
Mobile Integration Guide
Mejores prácticas para flujos de checkout móvil
Kotlin SDK
SDK de backend para operaciones del lado del servidor