Ir para conteúdo
  • Cadastre-se

dev botao

Componente ElginTef e MSitef Android


Ver Solução Respondido por Daniel Simoes,
  • Este tópico foi criado há 134 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Fundadores
Postado
13 minutos atrás, Dércio Luis Zanatta disse:

Mesmo configurando ConfirmarTransacaoAutomaticamente := False  as transações estão sendo confirmadas automaticamente...

Anexe o Log, para sabermos por onde ele passou do Componente...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado (editado)
37 minutos atrás, Dércio Luis Zanatta disse:

Boa tarde

OBS: Infelizmente o Sitef é um mal necessário... Atualmente não existe uma solução TEF mais completa no mercado..  mas vamos lá

Notei outro problema aqui em meus testes..

Mesmo configurando ConfirmarTransacaoAutomaticamente := False  as transações estão sendo confirmadas automaticamente...

 

@Dércio Luis ZanattaSegundo suporte o MSitef ainda não trabalha com transação pendente ou seja o "ConfirmarTransacaoAutomaticamente" é indiferente nesse caso. Mas gostaria que pudesse validar isso com o Suporte da Software Express para termos uma segunda visão das informações passadas por eles.

Editado por Warquia

Warquia Pereira
Analista de Sistemas e Desenvolvedor

  • Membros Pro
Postado
5 minutos atrás, Warquia disse:

@Dércio Luis ZanattaSegundo suporte o MSitef ainda não trabalha com transação pendente ou seja o "ConfirmarTransacaoAutomaticamente" é indiferente nesse caso. Mas gostaria que pudesse validar isso com o Suporte da Software Express para termos uma segunda visão das informações passadas por eles.

Certo.. Vou tentar conversar com eles a respeito.. Esse recurso de deixar a transação pendente até a finalização da NFCe se torna necessário nas transações com múltiplas formas de pagamento..

Exemplo: O usuário faz uma NFCe de 10,00.. Efetua um pagamento de 6,00 com TEF.. A NFCe vai ficar aberta aguardando o pagamento do saldo restante.. Se o usuário cancelar a NFCe nesse momento, a transação TEF pode ser desfeita, caso ainda não esteja confirmada, porém se estiver confirmada, terá que ser cancelada e o Cancelamento de uma transação no M-Sitef vai exigir que digite um monte de informações, com nsu, valor, etc...  Isso o usuário não vai ter acesso, pois nem comprovante a transação tem ainda...

 

  • Curtir 1
  • Fundadores
Postado

Humm.. eu acho arriscado deixar transações pendentes por muito tempo...

Elas sempre geram confusão e suporte, quando algo não é pago, ou concluído de forma apropriada... Fiz um vídeo sobre isso:

 

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado
Agora, Daniel Simoes disse:

Humm.. eu acho arriscado deixar transações pendentes por muito tempo...

Elas sempre geram confusão e suporte, quando algo não é pago, ou concluído de forma apropriada... Fiz um vídeo sobre isso:

 

Arriscado é.. mas me parece necessário confirmar somente no encerramento da NFCe.. e caso seja cancelada deve ser enviado desfazimento... Existem vários outros controles que devem ser feitos para evitar que as transações fiquem pendentes, mas acredito que vai dar menos dor de cabeça do que ter que ficar cancelando depois.. ainda mais com pdvs móveis..

 

  • Curtir 1
  • Fundadores
Postado

Eu realmente não acho necessário, e não recomendo deixar transações pendentes...

NFCe tem contingência OffLine, e o comprovante do TEF pode ser reeimpresso a qualquer momento...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Fundadores
Postado
Em 29/05/2023 at 14:53, Warquia disse:

Segue em anexo correções feitas para retornar RespostaTEF.CodigoBandeiraPadrao MSitef e ElginIDH

Sobre as Parcelas com retorno do vencimento "RespostaTEF.Parcelas[0].Vencimento" segundo o suporte ainda não retornam essa informação, somente a quantidade de parcelas "RespostaTEF.QtdParcelas" (aconselho abrir um suporte com a Software Express para mais informação sobre o retorno do campo)

Ps: Encontrei mais uma inconsistência dentro do MSitef já abrir um novo chamado referente a loop de mensagem (segue video que enviei a eles para entender https://www.youtube.com/watch?v=x70pg58dx_c 

Att.

Correcoes.zip 27.07 kB · 1 download

Obrigado por mais essa contribuição @Warquia... no svn.. Commit [r29593]

Fico te devendo uma cerveja, no Dia do ACBr

  • Curtir 1
  • Haha 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado

Boa tarde @warquia

No fluxo de transações não aparece a opção "Digitado"  quando selecionado "Crédito". O roteiro de pré homologação da Softwarexpress existe que se faça uma transação de Crédito "digitada"..  Existe alguma configuração no componente para habilitar isso ?

  • Membros Pro
Postado
Em 29/05/2023 at 16:51, Warquia disse:

@Dércio Luis ZanattaSegundo suporte o MSitef ainda não trabalha com transação pendente ou seja o "ConfirmarTransacaoAutomaticamente" é indiferente nesse caso. Mas gostaria que pudesse validar isso com o Suporte da Software Express para termos uma segunda visão das informações passadas por eles.

Boa tarde

Só para constar, entre em contato com o suporte da Softwareexpress, eles solicitaram os .dmp das transações testes que fiz e afirmam que a automação está enviando o comando de confirmação da transação e que se esse comando não for enviado, a transação fica pendente, o comportamento é o mesmo da Clisitef, segundo eles...

 

Postado
3 horas atrás, Dércio Luis Zanatta disse:

Boa tarde @warquia

No fluxo de transações não aparece a opção "Digitado"  quando selecionado "Crédito". O roteiro de pré homologação da Softwarexpress existe que se faça uma transação de Crédito "digitada"..  Existe alguma configuração no componente para habilitar isso ?

Boa tarde, sim ele é configurado no servidor do sitef e não no Componente

Warquia Pereira
Analista de Sistemas e Desenvolvedor

Postado
1 hora atrás, Dércio Luis Zanatta disse:

Boa tarde

Só para constar, entre em contato com o suporte da Softwareexpress, eles solicitaram os .dmp das transações testes que fiz e afirmam que a automação está enviando o comando de confirmação da transação e que se esse comando não for enviado, a transação fica pendente, o comportamento é o mesmo da Clisitef, segundo eles...

 

Hum, desconheço isso. eles não informaram tal informação no manual enviado, mas nós deixe informado por gentileza caso tenha informação do tala comando informado. 
outra informação e que eles enviam um app construído no android studio para validar o fluxo talvez ele sirva de apoio.

TMJ

Warquia Pereira
Analista de Sistemas e Desenvolvedor

  • Membros Pro
Postado
16 horas atrás, Warquia disse:

Boa tarde, sim ele é configurado no servidor do sitef e não no Componente

Bom dia

Segundo o pessoal da Softwareexpress, para habilitar a transação com cartão de crédito digitado, teria que habilitar isso na chamada da função de pagamento, incluindo o parâmetro ("restricoes", "TransacoesHabilitadas=29")

Não sei como isso foi feito no componente, mas pelo que vi, isso deveria ser passada em ACBrTEFAndroid1.EfetuarPagamento.. Ou foi criado de alguma outra forma ?

  • Membros Pro
Postado
33 minutos atrás, Dércio Luis Zanatta disse:

Bom dia

Segundo o pessoal da Softwareexpress, para habilitar a transação com cartão de crédito digitado, teria que habilitar isso na chamada da função de pagamento, incluindo o parâmetro ("restricoes", "TransacoesHabilitadas=29")

Não sei como isso foi feito no componente, mas pelo que vi, isso deveria ser passada em ACBrTEFAndroid1.EfetuarPagamento.. Ou foi criado de alguma outra forma ?

Sou meio inexperiente quando se trata de debugar os fontes do ACBR, mas andei dando uma "fuçada" aqui e encontrei isso..  Pelo que pude entender, as transações habilitadas estão sendo passadas sempre em branco.. Talvez teria que criar uma Propriedade na inicialização para passas esses códigos ?

image.thumb.png.9b839d3920f821b077bfd976432ed8b8.png

  • Fundadores
Postado

Estude o Demo do ACBr....

Veja o método: procedure TFrTEFDemoAndroid.AplicarConfiguracaoTransacao;

  if ACBrTEFAndroid1.TEF is TACBrTEFAndroidMSitefClass then
  begin
    with TACBrTEFAndroidMSitefClass( ACBrTEFAndroid1.TEF ) do
    begin
      ComExterna     := '0';//opcional: 0 – Sem (apenas para SiTef dedicado); 1 – TLS Software Express; 2 – TLS WNB Comnect; 3 – TLS Gsurf
      Restricoes     := '';  // <------------------------------ AQUI ------------------------
      TransacoesHabilitadas := ''; //opcional : controle de transação
      ValidacaoDupla := '0'; //opcional : 0 – Para validação simples; 1 – Para validação dupla ***Obrigatório para empresa que usam /TLS ComExterna= 1, 2, 3
      CodigoOTP      := ''; //opcional : Código obrigatório quando é utilizada comunicação(ComExterna) com TLS GSurf.
      AcessibilidadeVisual := 0;//opcional: Campo para definir se a acessibilidade visual deve ser habilitada: 0 – Para desabilitar (valor padrão) 1 – Para habilitar
      //TipoPinpad     := TTipoPinpad.pUsb;//opcional : ANDROID_USB – Tenta obter conexão apenas com pinpad´s USB; ANDROID_BT – Tenta obter conexão apenas com pinpad´s Bluetooth.
    end;
  end;

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado
2 horas atrás, Daniel Simoes disse:

Estude o Demo do ACBr....

Veja o método: procedure TFrTEFDemoAndroid.AplicarConfiguracaoTransacao;

  if ACBrTEFAndroid1.TEF is TACBrTEFAndroidMSitefClass then
  begin
    with TACBrTEFAndroidMSitefClass( ACBrTEFAndroid1.TEF ) do
    begin
      ComExterna     := '0';//opcional: 0 – Sem (apenas para SiTef dedicado); 1 – TLS Software Express; 2 – TLS WNB Comnect; 3 – TLS Gsurf
      Restricoes     := '';  // <------------------------------ AQUI ------------------------
      TransacoesHabilitadas := ''; //opcional : controle de transação
      ValidacaoDupla := '0'; //opcional : 0 – Para validação simples; 1 – Para validação dupla ***Obrigatório para empresa que usam /TLS ComExterna= 1, 2, 3
      CodigoOTP      := ''; //opcional : Código obrigatório quando é utilizada comunicação(ComExterna) com TLS GSurf.
      AcessibilidadeVisual := 0;//opcional: Campo para definir se a acessibilidade visual deve ser habilitada: 0 – Para desabilitar (valor padrão) 1 – Para habilitar
      //TipoPinpad     := TTipoPinpad.pUsb;//opcional : ANDROID_USB – Tenta obter conexão apenas com pinpad´s USB; ANDROID_BT – Tenta obter conexão apenas com pinpad´s Bluetooth.
    end;
  end;

 

Era isso que não estava encontrando.. Valeu ai Daniel !!

  • Curtir 1
  • Membros Pro
Postado

Boa tarde

Notei um problema aqui...

Quando faço ACBrTEFAndroid1.EfetuarAdministrativa(IdentificadorTransacao) ;

o parâmetro TACBrTEFAndroidMSitefClass( ACBrTEFAndroid1.TEF ).TransacoesHabilitadas:='7;8;16;17;18;26;27;28;29;30;40;3020;3289' ;

é jogado nulo, mesmo preenchendo a propriedade..

Isso somente quando chama ADM, quando faz uma transação joga normal

 

  • Membros Pro
Postado
23 minutos atrás, Dércio Luis Zanatta disse:

Boa tarde

Notei um problema aqui...

Quando faço ACBrTEFAndroid1.EfetuarAdministrativa(IdentificadorTransacao) ;

o parâmetro TACBrTEFAndroidMSitefClass( ACBrTEFAndroid1.TEF ).TransacoesHabilitadas:='7;8;16;17;18;26;27;28;29;30;40;3020;3289' ;

é jogado nulo, mesmo preenchendo a propriedade..

Isso somente quando chama ADM, quando faz uma transação joga normal

 

Acho que encontrei o problema..

Faltou:

    PA.ValueInfo[PWOPER_RESTRICOES]  := fRestricoes;
    PA.ValueInfo[PWOPER_TRANSHABILITADA] := fTransacoesHabilitadas;
na function TACBrTEFAndroidMSitefClass.EfetuarAdministrativa(const CodOperacaoAdm: string = ''): Boolean;

do ACBRTEFAndroidMSitef.pas.

Inclui essas linhas e agora funcionou ...

 

  • Fundadores
Postado

Não há um APK... você pode baixar os Fontes do ACBr e Compilar

https://projetoacbr.com.br/fontes/

Em 09/06/2023 at 23:34, adelsonuchoa disse:

Boa noite, você pode me fornecedor o Demo apk mSitef?

Creio ser necessário solicitar direto a Sw.Express, eles não permitem a distribuição por terceiros

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado (editado)
20 horas atrás, Maicon Samp disse:

Boa tarde, como posso fazer o teste usando o demo ? onde encontro o apk mSitef para fazer a chamada ?

Bom dia @Maicon Samp

A rotina para testar todo o ambiente:

1º Entrar em contato com o pessoal da Software Express pelo 011 3170-5353 e solicitar o m-Sitef e o SitDemo
  #Observações:
           -existe 2 versões de m-Sitef uma para Android puro que é o seu caso (D2mini) e um para gPos700X da Gertec(eles vão te perguntar isso)
           -O SitDemo e um programa que deve ser instalado em uma maquina servidora ele é o responsável pela comunicação com as Adquirentes
2º Instalar o m-Sitef no seu D2Mini(após instalado ele não aparecer como um app normal, ficando oculto no sistema, logo não precisa de configuração)

3º Instalar o SitDemo em uma maquina servidora ex: windows e executar o SitDemo.exe 

4º Compilar o TEFAndroidDemo e configurar o IP do servidor (passo 3) e código de loja (mo seu caso é homologação\testes deve ser usado 8 zeros ex "00000000"

5º Efetuar seus testes.

Editado por Warquia
  • Obrigado 1

Warquia Pereira
Analista de Sistemas e Desenvolvedor

  • Membros Pro
Postado

Boa tarde

Estou tantando fazer a certificação do meu aplicativo e recebi o seguinte retorno:

1 - Não está sendo enviado o cnpj da automação, somente o do cliente, segue o parâmetro abaixo para envio do cnpj da automação

cnpj_automacao  -  CNPJ da empresa que desenvolveu a automação comercial. 

exemplo:

i.putExtra("cnpj_automacao", "12345678912345");

Estou passando o parâmetro:

ACBrTEFAndroid1.DadosAutomacao.CNPJSoftwareHouse := Meu_CNPJ ;

Acredito que isso não esteja sendo sendo passado (i.putExtra("cnpj_automacao", "12345678912345");

Tentei ver aqui no fonte da classe, mas não achei como mandar isso..

Alguém pode me ajudar ?

 

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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...