Ir para conteúdo
  • Cadastre-se

Recommended Posts

Postado

image.png Entendendo o projeto Android - Flutter

Criamos um programa exemplo que se integra com o m-SiTef que você pode utilizar como base para o seu sistema Android (Flutter).

 

m-SiTef


O m-SiTef é um aplicativo desenvolvido pela Fiserv para a plataforma Android e funciona através da comunicação por Intents, ou seja, os dados são passados de uma aplicação (Programa exemplo) para outra (m-SiTef) pela própria Intent, sem a necessidade de um SDK ou outra solução para essa comunicação.

Para entender melhor como funciona a comunicação entre aplicativos android por intents:
https://medium.com/@ashfaque-khokhar/intent-in-android-00f7be3197c0.
 

Exemplo de dados sendo transmitidos de Intent para outra intent.

Intent  intent  =  new  Intent (getApplicationContext(), SecondActivity.class); 
intent.putExtra( "NAME" , "Ashu" ); 
intent.putExtra( "ID" , 21 ); 
startActivity(intent);

Para se integrar ao m-SiTef devemos passar os dados da forma como estão descritos no guia de integração, que você pode encontrar completo aqui:

 

🚀 Projeto

O nosso projeto de integração está no nosso GitHub:
https://github.com/Projeto-ACBr-Oficial/acbr-sitef-flutter
 

Antes de clonar o projeto e rodar, não se esqueça de iniciar o SitDemo e estar com o APK do m-SiTef instalado no terminal Android que fará os testes.

Saiba mais sobre estes processos: 

 

 

Para conseguir rodar corretamente o nosso programa exemplo você precisa configurar alguns campos passados ao aplicativo do m-SiTef:

  • Endereço IP do SitDemo
  • CNPJ ou CPF
  • CNPJ da Automação

Utilize a tela de configuração da aplicação:

image.png

 

🔎  Entendendo o projeto

O Flutter não possui nativamente no lado Dart uma API interna que replique diretamente o comportamento de "mão dupla" das Intents do Android, como o startActivityForResult seguido pelo onActivityResult. Como o Flutter é projetado para ser multiplataforma, ele não expõe nativamente essas entranhas específicas do sistema operacional; por isso, para capturar o retorno de dados de outro aplicativo, você precisa obrigatoriamente recorrer ao MethodChannel. Ele funciona como uma ponte de comunicação essencial, permitindo que você saia do ambiente Dart para executar o comando de busca de dados no Kotlin ou Java e, assim que o sistema Android processar a resposta, essa informação seja transmitida de volta para a sua interface de forma assíncrona.

Para entender melhor como funciona o MethodChannel:
https://medium.com/kobe-tech/methodchannel-como-executar-código-nativo-no-flutter-8d02f6bb79a3

Por isso, você deverá necessariamente fazer a ponte entre sua aplicação dart e o código nativo (Java ou Kotlin) para a comunicação com a aplicação do m-SiTef.

 

Do lado Dart a classe importante, que chama o lado Kotlin é:
lib/data/msitef/msitef_payment_processor.dart
Nela chamamos uma função específica do lado kotlin e aguardamos de forma assíncrona a resposta.

Do lado Kotlin é onde ocorre a chamada, que no nosso projeto é feito na MainActivity (Tela principal) onde o motor da UI do Flutter atua.
android/app/src/main/kotlin/com/mjtech/fintesthub/flutter/fintesthub_flutter/MainActivity.kt

É nela que mapeamos os parâmetros passados ao aplicativo do m-SiTef.
Fora esta classe, temos:

  • android/app/src/main/kotlin/com/mjtech/fintesthub/flutter/fintesthub_flutter/payment/MSitefPaymentUtils.kt

Classe utilizada para as funções auxiliares referentes ao mapeamento de parâmetros.

  • android/app/src/main/kotlin/com/mjtech/fintesthub/flutter/fintesthub_flutter/payment/MSitefPayment.kt

Classe de dados criada a partir do mapping vindo do Dart.

  • android/app/src/main/kotlin/com/mjtech/fintesthub/flutter/fintesthub_flutter/payment/MSitefResponse.kt

Classe de dados criada a partir da resposta do aplicativo m-SiTef.

 

Menu administrativo

O menu administrativo está na tela de configurações e é uma importante funcionalidade que deve ter na sua aplicação para acessar as principais funções como cancelamento, reimpressão, teste de comunicação, etc. 

O mapeamento dos campos passados para a chamada do menu administrativo fica na tela principal do lado Kotlin:

  • android/app/src/main/kotlin/com/mjtech/fintesthub/flutter/fintesthub_flutter/MainActivity.kt


Já a chamada do lado dart e a captura do retorno vindo do lado kotlin é feita na classe:

  • lib/data/msitef/admin/msitef_admin_action.dart


image.png   Roteiro de pré-homologação

 

Uma etapa importante do processo de desenvolvimento e homologação é o roteiro de pré-homologação.

Algumas etapas do roteiro de testes exigem valores exatos como R$25.000 ou R$15,00 e a troca de alguns campos de configurações, foi pensando nestes testes que fizemos este programa exemplo, onde você consegue informar o valor exato na tela de pagamento e modificar os campos de configuração em tempo de execução.

Fluxo de pagamento:

image.png  image.png  image.png   image.png  image.png

 

Esta aplicação passou pelo roteiro de teste de pré-homologação e você pode utilizar como base para o seu projeto.

✅ Em nosso curso -> T.E.F e Meios de Pagamentos, já estão disponíveis as aulas sobre o Pré-Roteiro de Homologação - MSiTef

_________________________________________________________________

📄 Referências

- Toda a integração foi guiada pela documentação oficial disponibilizada pela própria Fiserv no link: https://dev.softwareexpress.com.br/docs/m-sitef/m-SiTef/

 

Estamos disponíveis para qualquer dúvida ou sugestão. 

image.png.809714664fbffaa978e2c289e1cd36b0.webp

  • Curtir 2
  • matheusferreira changed the title to m-SiTef: Programa Exemplo - Android (Flutter)
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.