Modelos de Integração: Deeplink vs. Provider

Para se integrar ao ecossistema Stone, você pode optar por duas abordagens distintas, dependendo do cenário do seu negócio.

⭐ Deeplink (Recomendado)

O Deeplink utiliza o mecanismo de Intents do Android para realizar a comunicação entre o seu aplicativo e o aplicativo de pagamento da Stone instalado no mesmo dispositivo.

  • Por que usar? Você não precisa lidar com a complexidade de telas de pagamento, lógica de leitura de cartão ou fluxos de impressão. Basta enviar os dados básicos da transação e o app da Stone cuida de todo o resto, devolvendo o resultado para o seu app.
  • Ideal para: Integrações rápidas, seguras e que queiram utilizar a interface padrão da Stone.
🚧

Atenção

A funcionalidade de Deeplink está disponível apenas para os terminais POS Android disponibilizados pela Stone.

Provider

O modelo de Provider baseia-se em um padrão de projeto que define um contrato direto entre a API do SDK e a camada de dados/lógica da sua aplicação.

  • Como funciona? Todos os providers estendem uma classe modelo que herda da AsyncTask do Android. Isso significa que a comunicação com o terminal e as chamadas de rede ocorrem em background (segundo plano).
  • Retorno (Callbacks): Ao final da execução, o provider aciona um Callback na sua aplicação informando o status (Sucesso, Erro ou Próximo Passo).
  • Feedback Visual: Como a execução ocorre em background, é obrigatório exibir um indicador de progresso (como um dialog ou spinner) para o usuário.

🎯 Recomendação de Arquitetura: Aplicação Híbrida

Para garantir a melhor experiência de desenvolvimento e manutenção, nossa recomendação oficial é a Abordagem Híbrida:

  1. Use o Deeplink como base: Utilize o Deeplink para todas as operações padrão (Pagamento, Cancelamento, Impressão). Isso reduz drasticamente o seu tempo de desenvolvimento e o risco de bugs.
  2. Use o Provider como exceção: Caso o seu negócio exija alguma funcionalidade específica que esteja disponível apenas via Provider, implemente o Provider isoladamente para essa função.

Dessa forma, você cria uma aplicação robusta, aproveitando a simplicidade do Deeplink onde for possível e o poder do Provider onde for estritamente necessário.