Visão Geral do Get Smart SDK
Esta página fornece uma visão geral de alto nível da biblioteca redsys-tpv-business-lib, explicando seu propósito, design arquitetural e a transição técnica de sistemas legados para uma abordagem moderna focada em Kotlin.
A redsys-tpv-business-lib é um Android SDK projetado para atuar como uma camada de abstração segura entre sua aplicação e o Get Smart SDK Payment Service. Ele permite integrar funcionalidades de pagamento de forma fácil, rápida e segura, sem a necessidade de gerenciar a complexa lógica de negócios subjacente ou os protocolos de comunicação.
Esta biblioteca substitui a legada redsysTpvAndroidLib (paysyslib.jar). Ela fornece acesso a todas as funcionalidades principais da Getnet, incluindo:
- Processamento de Pagamentos: Gerenciamento de pagamentos padrão.
- Pré-autorizações: Manipulação de criação, confirmação e cancelamento de pré-autorizações.
- Gerenciamento de Operações: Acesso ao histórico de transações, gerenciamento de sessões e totais.
- Devoluções: Processamento de reembolsos e estornos.
- Configuração: Gerenciamento de ajustes e chaves.
Arquitetura
A arquitetura da solução consiste em quatro atores primários que interagem para processar pagamentos e gerenciar o TPV:
- App: Sua aplicação Android desenvolvida pelo integrador.
- redsys-tpv-business-lib: O SDK fornecido pela Getnet. Ele se conecta de forma segura com o Get Smart SDK Payment Service instalado no dispositivo.
- Get Smart SDK Payment Service: Um serviço Android de segundo plano executado no dispositivo. Ele implementa a lógica de negócios, gerencia protocolos de comunicação com o host e lida com as operações de baixo nível.
- Host: O back-office em nuvem da Getnet que processa pagamentos, configurações, logs e outras lógicas de TPV.
Fluxo de Dados
A arquitetura garante uma clara separação de responsabilidades. Seu app interage com o SDK, que por sua vez se comunica com o Payment Service local. O Payment Service lida com a execução real e a comunicação com o Host remoto.
Filosofia de Design
A redsys-tpv-business-lib adota padrões modernos de desenvolvimento Android para facilitar a integração em arquiteturas de aplicações atuais (como MVVM ou Clean Architecture).
Kotlin-First e Coroutines
A biblioteca é desenvolvida 100% em Kotlin. Ela utiliza Kotlin Coroutines para gerenciar tarefas assíncronas de forma eficiente.
- Suspend Functions: Todas as funções de interface da biblioteca são definidas como
suspend. Isso garante que as operações, que envolvem comunicação de rede com o host, não bloqueiem a thread principal. - Context Management: Todas as execuções alternam automaticamente para
Dispatchers.IOpara garantir o contexto de thread apropriado para operações de rede e disco.
Repository Pattern e Clean Architecture
A biblioteca segue o Repository Pattern e os princípios SOLID, organizando a funcionalidade em interfaces distintas (Repositórios) com base em seu domínio específico (ex: PaymentRepository, InitializationRepository).
Este design oferece vários benefícios fundamentais:
- Desacoplamento: Abstrai sua aplicação da camada de dados e de detalhes específicos de implementação.
- Injeção de Dependência: A biblioteca foi projetada para funcionar perfeitamente com frameworks de injeção de dependência como Dagger Hilt. Você pode configurar repositórios facilmente como singletons.
- Testabilidade: O design baseado em interfaces permite substituir implementações reais por repositórios simulados (mocks) durante os testes. Isso permite testar a lógica da sua aplicação independentemente do hardware ou serviço da Getnet.
Comparação com a Biblioteca Legada
Diferente da legada paysyslib.jar, que exigia mais gerenciamento manual de lógica e callbacks, a nova biblioteca oferece uma abordagem estruturada, type-safe e reativa para a integração.
| Recurso | Legado (paysyslib.jar) | Novo (redsys-tpv-business-lib) |
|---|---|---|
| Linguagem | Java | Kotlin |
| Concorrência | Callbacks/Threads | Coroutines (funções suspend) |
| Arquitetura | Monolítica | Repository Pattern / Clean Architecture |
| Integração | Instanciação manual | Pronto para Injeção de Dependência (Hilt) |