Skip to main content
Este é o pacote oficial do Dodo Payments para Flutter (dodopayments_checkout no pub.dev). Também existe um pacote separado desenvolvido pela comunidade; consulte Projetos da comunidade.

Checkout Sessions API

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

Mobile Integration Guide

Veja como isso se encaixa no fluxo completo de pagamentos mobile.
dodopayments_checkout abre o checkout hospedado do Dodo em SFSafariViewController no iOS e em uma Chrome Custom Tab no Android — os mesmos núcleos nativos usados pelos SDKs independentes de iOS e Android. Toda a lógica do checkout reside nesses núcleos nativos; a camada Dart encaminha a chamada por meio de um canal Pigeon tipado. Ela não armazena nenhuma chave de API e nunca chama a API do Dodo Payments. Requer Flutter 3.44+ / Dart 3.12+, iOS 16+ e Android minSdk 23.

Instalação

1

Add the Dependency

pubspec.yaml
2

Register a Callback URL Scheme

Adicione um tipo de URL para seu esquema em ios/Runner/Info.plist:
ios/Runner/Info.plist
Em seguida, encaminhe as URLs recebidas (por exemplo, usando app_links) para o SDK, pois SFSafariViewController não consegue capturar sua própria URL de retorno:
É seguro encaminhar todas as URLs aqui. handleOpenURL só atua em URLs que correspondem ao seu returnUrl registrado e resolve false para qualquer outra URL.

Uso

O que o resultado significa

result.status é uma indicação da interface, não uma prova de pagamento. Confirme cada pagamento no seu backend por meio do webhook payment.succeeded / subscription.active.
CheckoutStatus
obrigatório
Um entre succeeded, failed, cancelled, pending, expired.
String?
Definido quando a URL de retorno incluiu um. Exiba-o na interface; não o use para conceder acesso. Consulte Verificar o pagamento abaixo.
String?
Definido para checkouts de assinatura.
List<String>?
Definido quando o checkout inclui produtos com chaves de licença.
String?
Definido quando o checkout captura um e-mail.
Map<String, String>
Todos os parâmetros de consulta da URL de retorno, sem alterações.

Verificar o pagamento

Webhooks

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

Get Payment Detail

Consulte paymentId com sua chave secreta para verificar diretamente o status.
Conceda acesso depois que uma dessas opções confirmar o pagamento, nunca apenas com base em result.status.

Erros

start lança CheckoutException apenas em caso de uso incorreto ou falha da plataforma. Um pagamento cancelado ou recusado sempre é um resultado, nunca uma exceção.
  • invalidCheckoutUrl (INVALID_CHECKOUT_URL): não é uma URL de sessão checkout.dodopayments.com.
  • invalidReturnUrl (INVALID_RETURN_URL): não é uma URL absoluta válida.
  • alreadyInProgress (ALREADY_IN_PROGRESS): já existe um checkout em andamento.
  • platformError (PLATFORM_ERROR): falha inesperada da plataforma.

Sessões abandonadas

Se o aplicativo for encerrado durante o checkout, recupere a sessão na próxima inicialização e reconcilie-a com seu backend.

Relacionados

Mobile Integration Guide

O mesmo contrato para Android, iOS e React Native.

Community Projects

Também existe um pacote Flutter separado desenvolvido pela comunidade.
Última modificação em 31 de julho de 2026