Este es el SDK oficial de checkout de Dodo Payments para React Native,
@dodopayments/react-native-checkout. Abre el checkout alojado de Dodo en una vista de navegador nativa y devuelve un resultado tipado. Nota: existe un paquete anterior no relacionado llamado dodopayments-react-native-sdk (sin ámbito) con una API completamente diferente. Esta página documenta únicamente el paquete oficial actual con ámbito.Checkout Sessions API
Crea checkout_url, que este SDK abre, desde tu backend.
Mobile Integration Guide
Consulta cómo encaja esto en el flujo de pago móvil completo.
SFSafariViewController en iOS y una pestaña personalizada de Chrome en Android, no contiene ninguna clave de API y nunca llama directamente a la API de Dodo. Toda la lógica del checkout se ejecuta en el navegador; el SDK simplemente administra el ciclo de vida de la vista y captura la URL de retorno.
Instalación
1
Install the Package
- Android
- iOS
- Expo
El paquete se enlaza automáticamente y obtiene No se necesita configuración adicional; la dependencia nativa se resuelve automáticamente.
com.dodopayments.api:checkout-android desde Maven.2
Register a Callback URL Scheme
Tu aplicación debe registrar un esquema de URL para recibir la URL de retorno del checkout.
- Android (Gradle)
- iOS (Info.plist)
- Expo (both platforms)
En Sustituye
android/app/build.gradle:android/app/build.gradle
"myapp" por el esquema de tu aplicación.Uso
Reenvío de la URL de retorno
El listenerLinking es necesario para gestionar la URL de retorno en iOS. En Android, handleOpenURL es un no-op que resuelve false porque el core de Android gestiona su redirección de forma nativa. Es seguro registrar el listener incondicionalmente en ambas plataformas.
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 más abajo.
string
Se establece para los checkouts de suscripciones.
string[]
Se establece cuando el checkout incluye productos con claves de licencia.
string
Se establece cuando el checkout captura un correo electrónico.
Record<string, string>
Cada parámetro de consulta de la URL de retorno, literalmente.
Verificar el pago
Webhooks
Dodo Payments llama a tu backend cuando un pago se realiza correctamente o se activa una suscripción.
Get Payment Detail
Busca
paymentId con tu secret key para comprobar su estado directamente.result.status.
Personalización de la apariencia
Personaliza la barra de herramientas, los botones y la combinación de colores del navegador de checkout mediantecustomization en start(...). Las opciones están agrupadas por plataforma porque
Custom Tab de Android y SFSafariViewController de iOS exponen diferentes
controles nativos. Todos los campos son opcionales; omitir customization utiliza la apariencia
predeterminada de cada plataforma.
Android — Custom Tab
Android — Custom Tab
Color
Color de fondo de la barra de herramientas.
Color de la barra de navegación.
Color del separador sobre la barra de navegación.
'default' | 'back'
default muestra el icono de sistema «X»; back dibuja una flecha de retroceso en su lugar.'start' | 'end'
Indica en qué lado de la barra de herramientas aparece el botón de cierre.
Muestra el icono de compartir de la barra de herramientas.
boolean
Muestra el título de la página debajo de la URL en la barra de herramientas.
boolean
Permite que la barra de herramientas se oculte automáticamente mientras se desplaza la página.
boolean
Muestra «Añadir esta página a marcadores» en el menú de opciones.
boolean
Muestra «Descargar página» en el menú de opciones.
'system' | 'light' | 'dark'
Fuerza la apariencia clara u oscura independientemente de la configuración del sistema del dispositivo.
iOS — SFSafariViewController
iOS — SFSafariViewController
'done' | 'close' | 'cancel'
Etiqueta o icono del botón para descartar.
'pageSheet' | 'fullScreen'
pageSheet se muestra como una tarjeta que se puede descartar deslizando; fullScreen cubre toda la pantalla.boolean
Permite que la barra de herramientas se contraiga al desplazarse. Solo es visible cuando
presentationStyle es fullScreen; pageSheet mantiene las barras fijas independientemente de esta configuración.'system' | 'light' | 'dark'
Fuerza la apariencia clara u oscura independientemente de la configuración del sistema del dispositivo.
Errores
start rechaza con un CheckoutError solo en caso de uso incorrecto o de un fallo de la plataforma. Un pago cancelado o rechazado siempre es un resultado, nunca una excepción.
INVALID_CHECKOUT_URL: no es una URL de sesión decheckout.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.
Sesiones abandonadas
Si la app o el paquete JS se cierra durante el checkout, la promise se pierde, pero la capa nativa conserva la sesión. Recupérala en el siguiente mount y reconcilia su estado con tu backend.Relacionado
Mobile Integration Guide
El mismo contrato para Android, iOS y Flutter.
Expo Boilerplate
Un ejemplo completo de Expo con integración de checkout.