Ir para conteúdo
  • Cadastre-se

  • Este tópico foi criado há 151 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...