Skip to main content
Este é o SDK oficial de checkout do Dodo Payments para React Native, @dodopayments/react-native-checkout. Ele abre o checkout hospedado do Dodo em uma visualização de navegador nativa e retorna um resultado tipado. Observação: existe um pacote mais antigo e não relacionado chamado dodopayments-react-native-sdk (sem escopo), com uma API completamente diferente. Esta página documenta apenas o pacote oficial com escopo atual.

Checkout Sessions API

Crie o checkout_url que este SDK abre a partir do seu backend.

Mobile Integration Guide

Veja como isso se encaixa no fluxo completo de pagamento móvel.
O SDK do React Native é um wrapper fino de Turbo Module sobre os mesmos núcleos nativos em Swift e Kotlin. Ele abre SFSafariViewController no iOS e uma Chrome Custom Tab no Android, não armazena nenhuma chave de API e nunca chama a API do Dodo diretamente. Toda a lógica do checkout é executada no navegador; o SDK simplesmente gerencia o ciclo de vida da visualização e captura a URL de retorno.
Este SDK requer apenas a New Architecture, React Native 0.76+, iOS 16+ e Android minSdk 24.

Instalação

1

Install the Package

O pacote é vinculado automaticamente e obtém com.dodopayments.api:checkout-android do Maven.
Não é necessária nenhuma configuração adicional; a dependência nativa é resolvida automaticamente.
2

Register a Callback URL Scheme

Seu app deve registrar um esquema de URL para receber a URL de retorno do checkout.
Em android/app/build.gradle:
android/app/build.gradle
Substitua "myapp" pelo esquema do seu app.

Uso

Encaminhamento da URL de retorno

O listener Linking é necessário para o tratamento da URL de retorno no iOS. No Android, handleOpenURL é uma operação no-op que resolve false porque o núcleo do Android gerencia o redirecionamento nativamente. É seguro registrar o listener incondicionalmente em ambas as plataformas.

O significado do resultado

result.status é uma indicação da UI, não uma prova de pagamento. Confirme cada pagamento a partir do seu backend, por meio do webhook payment.succeeded / subscription.active.
CheckoutStatus
obrigatório
Um de succeeded, failed, cancelled, pending, expired.
string
Definido quando a URL de retorno incluía um. Exiba-o na UI, mas não o use para conceder acesso. Consulte Verificar o pagamento abaixo.
string
Definido para checkouts de assinatura.
string[]
Definido quando o checkout inclui produtos com chave de licença.
string
Definido quando o checkout captura um e-mail.
Record<string, string>
Todos os parâmetros de consulta da URL de retorno, literalmente.

Verificar o pagamento

Webhooks

O Dodo Payments chama o seu backend quando um pagamento é bem-sucedido ou uma assinatura é ativada.

Get Payment Detail

Consulte paymentId usando a sua chave secreta para verificar o status diretamente.
Conceda acesso depois que um desses confirmar o pagamento, nunca com base apenas em result.status.

Erros

start rejeita com um CheckoutError apenas em caso de uso incorreto ou falha da plataforma. Um pagamento cancelado ou recusado sempre é um resultado, nunca uma exceção.
  • INVALID_CHECKOUT_URL: não é uma URL de sessão checkout.dodopayments.com.
  • INVALID_RETURN_URL: não é uma URL absoluta válida.
  • ALREADY_IN_PROGRESS: já existe um checkout em execução.
  • PLATFORM_ERROR: falha inesperada da plataforma.

Sessões abandonadas

Se o app ou o bundle JS for encerrado durante o checkout, a promise será perdida, mas a camada nativa manterá a sessão. Recupere-a na próxima montagem e faça a reconciliação com o seu backend.

Relacionado

Mobile Integration Guide

O mesmo contrato para Android, iOS e Flutter.

Expo Boilerplate

Um exemplo completo do Expo com integração de checkout.
Última modificação em 31 de julho de 2026