Quick Start
Coloque sua integração de pagamento móvel em funcionamento em 4 etapas simples
Platform Examples
Exemplos de código completos para Android, iOS, React Native e Flutter
O Dodo Payments oferece um SDK oficial de checkout para Android, iOS, React Native,
e Flutter. Cada um encapsula o padrão documentado abaixo (abrir a URL de checkout,
capturar o retorno e analisar o resultado) por trás de uma única chamada
start(...) tipada, com recuperação de sessões abandonadas integrada. Use uma WebView manual somente
se nenhuma dessas opções for compatível com sua stack.Pré-requisitos
Antes de integrar o Dodo Payments ao seu aplicativo mobile, certifique-se de ter:- Conta do Dodo Payments: Conta de comerciante ativa com acesso à API
- Credenciais da API: Chave de API e chave secreta de webhook do seu dashboard
- Projeto de aplicativo mobile: Aplicativo Android, iOS, React Native ou Flutter
- Servidor de backend: Para lidar com a criação de sessões de checkout com segurança
Fluxo de integração
A integração mobile segue um processo seguro de 4 etapas, no qual seu backend gerencia as chamadas de API e seu aplicativo mobile gerencia a experiência do usuário.1
Backend: Create Checkout Session
Checkout Session API Docs
Saiba como criar uma sessão de checkout no seu backend usando Node.js, Python e outras linguagens. Consulte exemplos completos e referências de parâmetros na documentação dedicada da Checkout Sessions API.
Segurança: as sessões de checkout devem ser criadas no seu servidor de backend, nunca no aplicativo mobile. Isso protege suas chaves de API e garante a validação adequada.
2
Mobile: Get Checkout URL
Seu aplicativo mobile chama seu backend para obter a URL de checkout. Autentique
esta solicitação com o próprio token de sessão do usuário conectado.
- iOS (Swift)
- Android (Kotlin)
- React Native (JavaScript)
- Flutter (Dart)
Segurança: os aplicativos mobile se comunicam apenas com seu backend, nunca diretamente com a Dodo Payments API.
3
Mobile: Open Checkout in Browser
Abra a URL de checkout em um navegador seguro dentro do aplicativo para processar o pagamento.
Ou ignore completamente a configuração manual usando o SDK oficial de checkout para sua
plataforma.
Pick your mobile SDK
Etapas de instalação e instruções de configuração para Android, iOS, React Native e Flutter.
4
Backend: Handle Payment Completion
Processe a conclusão do pagamento por meio de webhooks e URLs de redirecionamento para confirmar o status do pagamento.
Escolha seu SDK
Cada SDK mobile expõe o mesmo contrato: uma única chamadastart(...) abre o checkout hospedado do Dodo na superfície de navegador nativa da plataforma e retorna um CheckoutResult tipado cujo status é succeeded, failed, cancelled,
pending ou expired. Nenhum deles armazena uma chave de API ou chama a Dodo
Payments API, e os quatro oferecem suporte à recuperação de sessões abandonadas.
Android
com.dodopayments.api:checkout-android abre uma Chrome Custom Tab. Requer minSdk 23.iOS
dodopayments-mobile-sdk-ios abre SFSafariViewController. Requer iOS 16+.React Native
@dodopayments/react-native-checkout, um Turbo Module sobre ambos os cores nativos. Requer React Native 0.76+.Flutter
dodopayments_checkout, um canal Pigeon sobre ambos os cores nativos. Requer Flutter 3.44+.Registrando um esquema de URL de callback
Os quatro SDKs devolvem o controle ao seu aplicativo por meio de um esquema de URL personalizado que você escolhe, por exemplo,myapp://checkout/return. Registre-o uma vez por
plataforma:
- Android
- iOS
- Expo
android/app/build.gradle
Prefere criar tudo por conta própria? Abra o
checkout_url em uma WebView e intercepte
a navegação para seu return_url; em seguida, leia os parâmetros de consulta
status e payment_id. Os SDKs acima fazem isso por você na superfície
real de navegador da plataforma, e é por isso que Apple Pay e Google Pay continuam funcionando.Práticas recomendadas
- Segurança: nunca inclua uma chave de API no seu aplicativo. Crie sessões de checkout no seu backend e passe ao cliente apenas o
checkout_urlresultante. - Autoridade: trate
CheckoutResult.statuscomo uma indicação de UI. Conceda acesso somente depois que seu backend confirmar o pagamento. - Experiência do usuário: exiba um estado de carregamento enquanto seu backend cria a sessão e trate
cancelledcomo um resultado normal, não como um erro. - Testes: use o modo de teste e cartões de teste, e verifique o ciclo completo da URL de retorno em um dispositivo real e também em um simulador.
Solução de problemas
Problemas comuns
- O callback nunca chega: o esquema em
returnUrldeve corresponder ao que você registrou. No Android, esse é o placeholder de manifestododoCallbackScheme; no iOS e no React Native, é o tipo de URLInfo.plist. - O checkout retorna ao navegador em vez de retornar ao seu aplicativo (iOS): você não encaminhou a URL recebida. Chame
DodoCheckout.handleOpenURL(url)de.onOpenURL,scene(_:openURLContexts:)ou de um listenerLinkingdo React Native. PLATFORM_ERRORno Android: na maioria das vezes, isso indica uma incompatibilidade de esquemas. Também pode ocorrer se seuMainActivitydefinirandroid:taskAffinity=""(o padrãoflutter create), o que pode fazer com que alguns builds de OEM percam o checkout em andamento.ALREADY_IN_PROGRESS: ainda há um checkout aberto. Aguarde ou descarte o anterior antes de iniciar outro.- O build falha com um placeholder não resolvido: você adicionou o Android SDK, mas nunca definiu
manifestPlaceholders["dodoCallbackScheme"]. - O pagamento foi bem-sucedido, mas o acesso não foi concedido: isso é esperado se você estiver usando o resultado mobile como referência. Conceda o acesso a partir do webhook
payment.succeeded/subscription.active.
Recursos adicionais
- Guia de integração de pagamentos
- Documentação de webhook
- Processo de testes
- Perguntas frequentes técnicas
Para dúvidas ou suporte, entre em contato pelo e-mail support@dodopayments.com.