Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Estou com módulo da elgin para fazer testes e logo a homologação se tudo der certo, estou no desenvolvimento
do envio do pagamento dos cartões, estou testando o demo, e agora depois de muito 
pesquisar no fórum pintou muitas dúvidas, e se possível algum amigo que possa ajudar já agradeço
antencipamente.

No demo do ACbr temos os seguintes comandos : MFE Enviar Pagamento, Enviar Status Pagamento, Verificar Status Validador,R
4-Resposta Fiscal.

Seguindo os teste estou fazendo o seguinte :

1-MFE Enviar Pagamento
2-Com SerialPos entro no site : http://simuladorposceara.azurewebsites.net, e estou fazendo o passo para autorizar e poder seguir os passos seguintes.
3-Depois estou executando o comando do demo : Verificar Status Validador, passo IdPagamento, é confirmado com sucesso.

Quando na minha aplicação uso o comando "Enviar Status Pagamento" ?   

pois depois que executo o comando "Verificar Status Validador", se tento usar o "Enviar Status Pagamento", tem como retorno o seguinte erro : 

Uma exceção foi acionada pelo destino de uma chamada.


Arquivo de Log do teste :

ACBrSAT.Inicializado
NumeroSessao: 490378
EnviarPagamento( <Integrador><Identificador><Valor>490378</Valor></Identificador><Componente Nome="VFP-e"><Metodo Nome="EnviarPagamento"><Construtor><Parametros><Parametro><Nome>chaveAcessoValidador</Nome><Valor>25CFE38D-3B92-46C0-91CA-CFF751A82D3D</Valor></Parametro></Parametros></Construtor><Parametros><Parametro><Nome>ChaveRequisicao</Nome><Valor>26359854-5698-1365-9856-965478231456</Valor></Parametro><Parametro><Nome>Estabelecimento</Nome><Valor>10</Valor></Parametro><Parametro><Nome>SerialPos</Nome><Valor>ACBr-JUOCRVFC</Valor></Parametro><Parametro><Nome>Cnpj</Nome><Valor>14.200.166/0001-66</Valor></Parametro><Parametro><Nome>IcmsBase</Nome><Valor>0.23</Valor></Parametro><Parametro><Nome>ValorTotalVenda</Nome><Valor>1530</Valor></Parametro><Parametro><Nome>HabilitarMultiplosPagamentos</Nome><Valor>true</Valor></Parametro><Parametro><Nome>HabilitarControleAntiFraude</Nome><Valor>false</Valor></Parametro><Parametro><Nome>CodigoMoeda</Nome><Valor>BRL</Valor></Parametro><Parametro><Nome>EmitirCupomNFCE</Nome><Valor>false</Valor></Parametro><Parametro><Nome>OrigemPagamento</Nome><Valor>Mesa 1234</Valor></Parametro></Parametros></Metodo></Componente></Integrador> )
NumeroSessao: 490378 - Resposta:<?xml version="1.0" encoding="utf-8"?>
<Integrador>
  <Identificador>
    <Valor>490378</Valor>
  </Identificador>
  <IntegradorResposta>
    <Codigo>AP</Codigo>
    <Valor>Arquivo processado</Valor>
  </IntegradorResposta>
  <Resposta>
    <IdPagamento>1877265</IdPagamento>
    <Mensagem>Pagamento enviado com sucesso ao validador fiscal! O ID da transação para acompanhar o status e identificá-la no portal de ajustes é 1877265</Mensagem>
    <StatusPagamento>EnviadoAoValidador</StatusPagamento>
  </Resposta>
</Integrador>
NumeroSessao: 774904
VerificarStatusValidador( <Integrador><Identificador><Valor>774904</Valor></Identificador><Componente Nome="VFP-e"><Metodo Nome="VerificarStatusValidador"><Construtor><Parametros><Parametro><Nome>chaveAcessoValidador</Nome><Valor>25CFE38D-3B92-46C0-91CA-CFF751A82D3D</Valor></Parametro></Parametros></Construtor><Parametros><Parametro><Nome>idFila</Nome><Valor>1877265</Valor></Parametro><Parametro><Nome>cnpj</Nome><Valor>14.200.166/0001-66</Valor></Parametro></Parametros></Metodo></Componente></Integrador> )
NumeroSessao: 774904 - Resposta:<?xml version="1.0" encoding="utf-8"?>
<Integrador>
  <Identificador>
    <Valor>774904</Valor>
  </Identificador>
  <IntegradorResposta>
    <Codigo>AP</Codigo>
    <Valor>Arquivo processado</Valor>
  </IntegradorResposta>
  <Resposta>
    <CodigoAutorizacao>123456</CodigoAutorizacao>
    <Bin>123456</Bin>
    <DonoCartao>TESTE</DonoCartao>
    <DataExpiracao>01/01</DataExpiracao>
    <InstituicaoFinanceira>OPERADORA_CARTAO</InstituicaoFinanceira>
    <Parcelas>1</Parcelas>
    <UltimosQuatroDigitos>1234</UltimosQuatroDigitos>
    <CodigoPagamento>12345</CodigoPagamento>
    <ValorPagamento>1530</ValorPagamento>
    <IdFila>1877265</IdFila>
    <Tipo>VISA</Tipo>
  </Resposta>
</Integrador>

 

  • 4 semanas depois ...
  • 3 semanas depois ...
Postado

Seguindo o manual do Integrador existem os fluxos de envio em cada uma das situações de POS Online, POS Offline, TEF Online e TEF Offline. 
Ao consultar cada um deles você encontrará a ordem e os métodos necessários para cada comunicação que terá que implementar.

Segue o link do manual:

Manual de utilização do Integrador Fiscal

 

Os processos que mencionei começam a ser mostrados na página 15 dele.

  • 1 mês depois ...
Postado

Boa tarde a todos.

Estou com um problema ao enviar o pagamento realizado no TEF ao Integrador.

Utilizando o Integrador do MFe do Ceará , depois de confirmar uma transação no TEF é necessário informar ao integrador o pagamento, utilizando o comando abaixo.

RespostaStatusPagamento := TACBrSATMFe_integrador_XML(ACBr_SAT.SAT).EnviarStatusPagamento(StatusPagamentoMFe);

Após este comando preciso pegar o retorno. Estou fazendo assim:

Result := StrToIntDef(RespostaStatusPagamento.Retorno,0), o problema está que a propriedade .Retorno está vindo vazia.

 

Analisando o método RespostaStatusPagamentoR.LerXml da unit pcnVFPeR,  na linha 141, percebi que na execução do Leitor.rCampo(tcStr, 'retorno') aqui que estava vindo vazio.

RespostaStatusPagamento.Retorno := Leitor.rCampo(tcStr, 'retorno');

Para contornar a falta do Retorno, vi que em outros métodos LerXml da mesma classe, há um teste antes da execução do RespostaStatusPagamento.Retorno := Leitor.rCampo(tcStr, 'retorno')
 

Por Exemplo em TRetornoRespostaFiscalR.LerXml está assim:

 if (Pos(UpperCase('retorno'),UpperCase(Leitor.Arquivo)) <= 0) and
     (Pos(UpperCase('Integrador'),UpperCase(Leitor.Arquivo)) <= 0) then
    RetornoRespostaFiscal.IdRespostaFiscal := Leitor.Arquivo
  else
  begin
    RetornoRespostaFiscal.IdRespostaFiscal := Leitor.rCampo(tcStr, 'retorno');
    RetornoRespostaFiscal.IntegradorResposta.LerResposta(Leitor.Grupo);
  end;

 

Então seguindo o método anterior, fiz a seguinte alteração:

function TRespostaStatusPagamentoR.LerXml: boolean;   (Linha 135)
begin
  Leitor.Grupo := Leitor.Arquivo;

  RespostaStatusPagamento.Clear;


  if (Pos(UpperCase('retorno'),UpperCase(Leitor.Arquivo)) <= 0) and
     (Pos(UpperCase('Integrador'),UpperCase(Leitor.Arquivo)) <= 0) then
     RespostaStatusPagamento.Retorno := Leitor.Arquivo
  else
  begin
     RespostaStatusPagamento.Retorno := Leitor.rCampo(tcStr, 'retorno');
     RespostaStatusPagamento.IntegradorResposta.LerResposta(Leitor.Grupo);
  end;

  Result := True;
end;

 

Agora sim está retornando valor no campo Retorno.

Sugiro aos administradores, após análise de minha alteração, se for conveniente, fazer a alteração no componente.

Se estiver fazendo errado, gostaria que alguém desse-me uma luz de como pegar o retorno desta função.

 

Postado
Em 23/02/2018 at 15:02, DonizeteFalcon disse:

Boa tarde a todos.

Estou com um problema ao enviar o pagamento realizado no TEF ao Integrador.

Utilizando o Integrador do MFe do Ceará , depois de confirmar uma transação no TEF é necessário informar ao integrador o pagamento, utilizando o comando abaixo.

RespostaStatusPagamento := TACBrSATMFe_integrador_XML(ACBr_SAT.SAT).EnviarStatusPagamento(StatusPagamentoMFe);

Após este comando preciso pegar o retorno. Estou fazendo assim:

Result := StrToIntDef(RespostaStatusPagamento.Retorno,0), o problema está que a propriedade .Retorno está vindo vazia.

 

Analisando o método RespostaStatusPagamentoR.LerXml da unit pcnVFPeR,  na linha 141, percebi que na execução do Leitor.rCampo(tcStr, 'retorno') aqui que estava vindo vazio.

RespostaStatusPagamento.Retorno := Leitor.rCampo(tcStr, 'retorno');

Para contornar a falta do Retorno, vi que em outros métodos LerXml da mesma classe, há um teste antes da execução do RespostaStatusPagamento.Retorno := Leitor.rCampo(tcStr, 'retorno')
 

Por Exemplo em TRetornoRespostaFiscalR.LerXml está assim:

 if (Pos(UpperCase('retorno'),UpperCase(Leitor.Arquivo)) <= 0) and
     (Pos(UpperCase('Integrador'),UpperCase(Leitor.Arquivo)) <= 0) then
    RetornoRespostaFiscal.IdRespostaFiscal := Leitor.Arquivo
  else
  begin
    RetornoRespostaFiscal.IdRespostaFiscal := Leitor.rCampo(tcStr, 'retorno');
    RetornoRespostaFiscal.IntegradorResposta.LerResposta(Leitor.Grupo);
  end;

 

Então seguindo o método anterior, fiz a seguinte alteração:

function TRespostaStatusPagamentoR.LerXml: boolean;   (Linha 135)
begin
  Leitor.Grupo := Leitor.Arquivo;

  RespostaStatusPagamento.Clear;


  if (Pos(UpperCase('retorno'),UpperCase(Leitor.Arquivo)) <= 0) and
     (Pos(UpperCase('Integrador'),UpperCase(Leitor.Arquivo)) <= 0) then
     RespostaStatusPagamento.Retorno := Leitor.Arquivo
  else
  begin
     RespostaStatusPagamento.Retorno := Leitor.rCampo(tcStr, 'retorno');
     RespostaStatusPagamento.IntegradorResposta.LerResposta(Leitor.Grupo);
  end;

  Result := True;
end;

 

Agora sim está retornando valor no campo Retorno.

Sugiro aos administradores, após análise de minha alteração, se for conveniente, fazer a alteração no componente.

Se estiver fazendo errado, gostaria que alguém desse-me uma luz de como pegar o retorno desta função.

 

Estava acontecendo a mesma coisa comigo, só resolveu quando utilizei o seu pcnVFPeR.pas. Obrigado.

Postado

Bom dia.

Como estou fazendo a compatibilização do nosso software com o Integrador do CE, quando o pagamento é realizado em TEF

estou utilizando o ACBrTEFD, porém alguns campos não estão retornando no comando RespostasPendentes do ACBrTEFD,

e estes são necessários para preencher o comando EnviarStatusPagamento. 

O Software está homologado pela CliSitef, que agora está disponibilizando os mesmos como por ex: CNPJ Credenciadora, Bandeira, Codigo da Credenciadora,

Validade do Cartão, nome do dono do cartao, os ultimos quatro digitos do cartão.

Diante disto fiz alterações nas classes ACBrTEFDClass.pas e ACBrTEFDCliSiTef.pas  implementando os campos  1002, 1003, 1190.

Em anexo estou disponibilizando as mesmas para, se assim os administradores entender ser viável, colocar as alteraçoes no svn.

Não sabia se o melhor lugar para as mesmas seria aqui, mas como a implementação do integrador CE me levou a isto, então estou disponibilizando aqui.

ACBrTEFDClass.pas

ACBrTEFDCliSiTef.pas

Postado

Bom dia a todos.

Fiz alterações também na classe ACBrTEFDClass.pas para comportar os novos campos: CNPJ Credenciadora, Bandeira, Codigo da Credenciadora,

Validade do Cartão, nome do dono do cartão, os ultimos quatro digitos do cartão, para o TEFDial. Que são solicitados pelo MFE do Ceará.

Em anexo estou disponibilizando as mesma para, se assim os administradores entenderem ser viável, colocar as alterações no svn.

 

ACBrTEFDClass.pas

  • Curtir 1
  • 2 meses depois ...
Postado
Em 01/12/2017 at 15:59, elixandre disse:

Estou com módulo da elgin para fazer testes e logo a homologação se tudo der certo, estou no desenvolvimento
do envio do pagamento dos cartões, estou testando o demo, e agora depois de muito 
pesquisar no fórum pintou muitas dúvidas, e se possível algum amigo que possa ajudar já agradeço
antencipamente.

No demo do ACbr temos os seguintes comandos : MFE Enviar Pagamento, Enviar Status Pagamento, Verificar Status Validador,R
4-Resposta Fiscal.

Seguindo os teste estou fazendo o seguinte :

1-MFE Enviar Pagamento
2-Com SerialPos entro no site : http://simuladorposceara.azurewebsites.net, e estou fazendo o passo para autorizar e poder seguir os passos seguintes.
3-Depois estou executando o comando do demo : Verificar Status Validador, passo IdPagamento, é confirmado com sucesso.

Quando na minha aplicação uso o comando "Enviar Status Pagamento" ?   

pois depois que executo o comando "Verificar Status Validador", se tento usar o "Enviar Status Pagamento", tem como retorno o seguinte erro : 

Uma exceção foi acionada pelo destino de uma chamada.


Arquivo de Log do teste :


ACBrSAT.Inicializado
NumeroSessao: 490378
EnviarPagamento( <Integrador><Identificador><Valor>490378</Valor></Identificador><Componente Nome="VFP-e"><Metodo Nome="EnviarPagamento"><Construtor><Parametros><Parametro><Nome>chaveAcessoValidador</Nome><Valor>25CFE38D-3B92-46C0-91CA-CFF751A82D3D</Valor></Parametro></Parametros></Construtor><Parametros><Parametro><Nome>ChaveRequisicao</Nome><Valor>26359854-5698-1365-9856-965478231456</Valor></Parametro><Parametro><Nome>Estabelecimento</Nome><Valor>10</Valor></Parametro><Parametro><Nome>SerialPos</Nome><Valor>ACBr-JUOCRVFC</Valor></Parametro><Parametro><Nome>Cnpj</Nome><Valor>14.200.166/0001-66</Valor></Parametro><Parametro><Nome>IcmsBase</Nome><Valor>0.23</Valor></Parametro><Parametro><Nome>ValorTotalVenda</Nome><Valor>1530</Valor></Parametro><Parametro><Nome>HabilitarMultiplosPagamentos</Nome><Valor>true</Valor></Parametro><Parametro><Nome>HabilitarControleAntiFraude</Nome><Valor>false</Valor></Parametro><Parametro><Nome>CodigoMoeda</Nome><Valor>BRL</Valor></Parametro><Parametro><Nome>EmitirCupomNFCE</Nome><Valor>false</Valor></Parametro><Parametro><Nome>OrigemPagamento</Nome><Valor>Mesa 1234</Valor></Parametro></Parametros></Metodo></Componente></Integrador> )
NumeroSessao: 490378 - Resposta:<?xml version="1.0" encoding="utf-8"?>
<Integrador>
  <Identificador>
    <Valor>490378</Valor>
  </Identificador>
  <IntegradorResposta>
    <Codigo>AP</Codigo>
    <Valor>Arquivo processado</Valor>
  </IntegradorResposta>
  <Resposta>
    <IdPagamento>1877265</IdPagamento>
    <Mensagem>Pagamento enviado com sucesso ao validador fiscal! O ID da transação para acompanhar o status e identificá-la no portal de ajustes é 1877265</Mensagem>
    <StatusPagamento>EnviadoAoValidador</StatusPagamento>
  </Resposta>
</Integrador>
NumeroSessao: 774904
VerificarStatusValidador( <Integrador><Identificador><Valor>774904</Valor></Identificador><Componente Nome="VFP-e"><Metodo Nome="VerificarStatusValidador"><Construtor><Parametros><Parametro><Nome>chaveAcessoValidador</Nome><Valor>25CFE38D-3B92-46C0-91CA-CFF751A82D3D</Valor></Parametro></Parametros></Construtor><Parametros><Parametro><Nome>idFila</Nome><Valor>1877265</Valor></Parametro><Parametro><Nome>cnpj</Nome><Valor>14.200.166/0001-66</Valor></Parametro></Parametros></Metodo></Componente></Integrador> )
NumeroSessao: 774904 - Resposta:<?xml version="1.0" encoding="utf-8"?>
<Integrador>
  <Identificador>
    <Valor>774904</Valor>
  </Identificador>
  <IntegradorResposta>
    <Codigo>AP</Codigo>
    <Valor>Arquivo processado</Valor>
  </IntegradorResposta>
  <Resposta>
    <CodigoAutorizacao>123456</CodigoAutorizacao>
    <Bin>123456</Bin>
    <DonoCartao>TESTE</DonoCartao>
    <DataExpiracao>01/01</DataExpiracao>
    <InstituicaoFinanceira>OPERADORA_CARTAO</InstituicaoFinanceira>
    <Parcelas>1</Parcelas>
    <UltimosQuatroDigitos>1234</UltimosQuatroDigitos>
    <CodigoPagamento>12345</CodigoPagamento>
    <ValorPagamento>1530</ValorPagamento>
    <IdFila>1877265</IdFila>
    <Tipo>VISA</Tipo>
  </Resposta>
</Integrador>

 

por acaso você resolveu o problema ao enviar o EnviarStatusPagamento com TEF ? eu estou recebendo sempre este erro.

Uma exceção foi acionada pelo destino de uma chamada.

Para o TEF  usamos o seguinte fluxo:

EnviarPagamento -> faz o pagamento no TEF -> EnviarStatusPagamento -> gera o CF-e -> RespostaFiscal.

ja conferi o XML os dados estão corretos..porém sempre recebo este erro, se alguem ja passou por isso e puder elucidar o que foi feito eu agradeço.

 

 

Postado
17 horas atrás, joaobuenosi disse:

por acaso você resolveu o problema ao enviar o EnviarStatusPagamento com TEF ? eu estou recebendo sempre este erro.

Uma exceção foi acionada pelo destino de uma chamada.

Para o TEF  usamos o seguinte fluxo:

EnviarPagamento -> faz o pagamento no TEF -> EnviarStatusPagamento -> gera o CF-e -> RespostaFiscal.

ja conferi o XML os dados estão corretos..porém sempre recebo este erro, se alguem ja passou por isso e puder elucidar o que foi feito eu agradeço.

 

 

Descobri!

 

os campos  de informações de BIN, Codigo de Autorizaçao, que contenham dados vindo do TEF não podem ter zeros a esquerda, caso tenham causa erro na aplicação do integrador.

juvenil... mas ok.

resolvido.

  • Este tópico foi criado há 2384 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.