-
Total de ítens
15 -
Registro em
-
Última visita
Tudo que Smaili Amorim postou
-
Eu fiz uma modificação no arquivo ACBrTEFAPICliSiTef.pas que está em anexo, somente para terminar a homologação. Só que dessa forma que eu fiz acho que não vai funcionar se estiver ativado a opção de FinalizarTransacaoIndividual Mas eles tbm não aceitaram homologar com essa opção ativado porque ela tbm está enviando o FinalizaTransacaoSiTefInterativo para cada transação, e no roteiro de homologação pede somente um FinalizaTransacaoSiTefInterativo. ACBrTEFAPICliSiTef.pas
-
Esse exemplo é de múltiplos pagamentos 09:46:16:745 - *** IniciaFuncaoSiTefInterativo. Modalidade: 3 Valor: 40,00 Documento: 3133 Data: 20250527 Hora: 094616 Operador: ParamAdic: 09:46:45:314 - *** IniciaFuncaoSiTefInterativo. Modalidade: 2 Valor: 60,00 Documento: 3133 Data: 20250527 Hora: 094645 Operador: ParamAdic: 09:47:07:501 - *** FinalizaTransacaoSiTefInterativo. Confirma: SIM, Documento: 3133, Data: 20250527, Hora: 094633, ParametrosAdicionais: 1º Ele envia o primeiro pagamento com a hora 094616 2º Recupera a transação com a DataHora, que dá alguns segundos de diferença 094633 3º Ele envia o segundo pagamento com a hora 094645 4º Finaliza a função enviando a hora recuperada 094633 E eles querem que vá sempre o horário do primeiro pagamento que nesse exemplo seria o 094616
-
Ao homologar o Sitef com o ACBrTEFAPI foi retornado que o parâmetro hora deve ser o mesmo da primeira IniciaFuncaoSiTefInterativo para todas as transações tef 15:51:35:275 - *** IniciaFuncaoSiTefInterativo. Modalidade: 110 Valor: 0,00 Documento: 20250527155135 Data: 20250527 Hora: 155135 Operador: ParamAdic: 15:52:09:002 - *** FinalizaTransacaoSiTefInterativo. Confirma: SIM, Documento: 20250527155135, Data: 20250527, Hora: 155204, ParametrosAdicionais:
-
Problema ao cancelar pagamento TEF (sitef)
Smaili Amorim replied to Smaili Amorim's tópico in Dúvidas sobre TEF
Adicionado a propriedade EstornarPagamentoIndividual para ligar o novo comportamento ACBrTEFAPICliSiTef.pas ACBrTEFAPIComum.pas -
Problema ao cancelar pagamento TEF (sitef)
Smaili Amorim replied to Smaili Amorim's tópico in Dúvidas sobre TEF
Só que o componente TEFD com o SiTef estorna os pagamentos individuais. Eu acho mais fácil ter pessoas que estão usando o componente achando que está estornando os pagamentos individualmente do que estornando todos, pq se alguém olha o comportamento no TEFAPIDemo vai achar que estorna os pagamentos individualmente -
Problema ao cancelar pagamento TEF (sitef)
Smaili Amorim replied to Smaili Amorim's tópico in Dúvidas sobre TEF
ACBrTEFAPICliSiTef.pas -
Problema ao cancelar pagamento TEF (sitef)
Smaili Amorim replied to Smaili Amorim's tópico in Dúvidas sobre TEF
Pequeno ajuste para validar se variavel NumeroPagamentoCupom esta vazia procedure TACBrTEFAPIClassCliSiTef.FinalizarTransacao(const Rede, NSU, CodigoFinalizacao: String; AStatus: TACBrTEFStatusTransacao); var Confirma: Boolean; i: Integer; DocumentoVinculado: String; DataHora: TDateTime; NumeroPagamentoCupom: String; begin // CliSiTEF não usa Rede, NSU e Finalizacao DocumentoVinculado := ''; DataHora := 0; Confirma := (AStatus in [tefstsSucessoAutomatico, tefstsSucessoManual]); if (NSU = '') and (CodigoFinalizacao <> '') then // capturado por 130 em CarregarRespostasPendentes ? begin DocumentoVinculado := CodigoFinalizacao; for i := 0 to fpACBrTEFAPI.RespostasTEF.Count-1 do begin if fpACBrTEFAPI.RespostasTEF[i].DocumentoVinculado = DocumentoVinculado then begin DataHora := fpACBrTEFAPI.RespostasTEF[i].DataHoraTransacaoComprovante; Break; end; end; end else begin i := fpACBrTEFAPI.RespostasTEF.AcharTransacao(Rede, NSU, CodigoFinalizacao); if (i >= 0) then begin DocumentoVinculado := fpACBrTEFAPI.RespostasTEF[i].DocumentoVinculado; DataHora := fpACBrTEFAPI.RespostasTEF[i].DataHoraTransacaoComprovante; if not Confirma then begin NumeroPagamentoCupom := '{NumeroPagamentoCupom='+IntToStr(fpACBrTEFAPI.RespostasTEF[i].IdPagamento)+'}'; ParamAdicFinalizacao.Add(NumeroPagamentoCupom); end; end; end; FinalizarTransacaoSiTef(Confirma, DocumentoVinculado, DataHora); if not Confirma and (NumeroPagamentoCupom <> '') then ParamAdicFinalizacao.Delete(ParamAdicFinalizacao.IndexOf(NumeroPagamentoCupom)); end; -
Problema ao cancelar pagamento TEF (sitef)
Smaili Amorim replied to Smaili Amorim's tópico in Dúvidas sobre TEF
Alterar direto na classe TACBrTEFAPIClassCliSiTef procedure TACBrTEFAPIClassCliSiTef.FinalizarTransacao(const Rede, NSU, CodigoFinalizacao: String; AStatus: TACBrTEFStatusTransacao); var Confirma: Boolean; i: Integer; DocumentoVinculado: String; DataHora: TDateTime; NumeroPagamentoCupom: String; begin // CliSiTEF não usa Rede, NSU e Finalizacao DocumentoVinculado := ''; DataHora := 0; Confirma := (AStatus in [tefstsSucessoAutomatico, tefstsSucessoManual]); if (NSU = '') and (CodigoFinalizacao <> '') then // capturado por 130 em CarregarRespostasPendentes ? begin DocumentoVinculado := CodigoFinalizacao; for i := 0 to fpACBrTEFAPI.RespostasTEF.Count-1 do begin if fpACBrTEFAPI.RespostasTEF[i].DocumentoVinculado = DocumentoVinculado then begin DataHora := fpACBrTEFAPI.RespostasTEF[i].DataHoraTransacaoComprovante; Break; end; end; end else begin i := fpACBrTEFAPI.RespostasTEF.AcharTransacao(Rede, NSU, CodigoFinalizacao); if (i >= 0) then begin DocumentoVinculado := fpACBrTEFAPI.RespostasTEF[i].DocumentoVinculado; DataHora := fpACBrTEFAPI.RespostasTEF[i].DataHoraTransacaoComprovante; if not Confirma then begin NumeroPagamentoCupom := '{NumeroPagamentoCupom='+IntToStr(fpACBrTEFAPI.RespostasTEF[i].IdPagamento)+'}'; ParamAdicFinalizacao.Add(NumeroPagamentoCupom); end; end; end; FinalizarTransacaoSiTef(Confirma, DocumentoVinculado, DataHora); if not Confirma then ParamAdicFinalizacao.Delete(ParamAdicFinalizacao.IndexOf(NumeroPagamentoCupom)); end; E verificar se pode remover essa validação na função TACBrTEFAPIClassCliSiTef.FinalizarTransacaoSiTef if (pos(DoctoStr, fDocumentosFinalizados) > 0) then Exit; Pois ela não deixa estornar mais que um pagamento por venda -
Problema ao cancelar pagamento TEF (sitef)
Smaili Amorim replied to Smaili Amorim's tópico in Dúvidas sobre TEF
Deu certo fazendo dessa forma TACBrTEFAPIClassCliSiTef(ACBrTEFAPI1.TEF).ParamAdicFinalizacao.add('{NumeroPagamentoCupom='+IntToStr(AResp.IdPagamento)+'}'); ACBrTEFAPI1.FinalizarTransacao(); Mas o componente já tem essas duas funções para cancelar ou estornar todas as transações ACBrTEFAPI1.FinalizarTransacoesPendentes(); ACBrTEFAPI1.CancelarOuEstornarTransacoesDiretorioTrabalho; Acho que a função ACBrTEFAPI1.FinalizarTransacao() está com o comportamento errado -
Problema ao cancelar pagamento TEF (sitef)
Smaili Amorim replied to Smaili Amorim's tópico in Dúvidas sobre TEF
Sim, mas digamos que a venda 1 tenha 3 pagamentos, quando o atendente tentar estornar um, o componente vai estornar todos os pagamentos da venda 1 Depois na venda 2 tem dois pagamentos e o atendente tentar estornar um pagamento o componente vai estornar os dois. -
Problema ao cancelar pagamento TEF (sitef)
Smaili Amorim replied to Smaili Amorim's tópico in Dúvidas sobre TEF
No componente TEFD o documento vinculado a transação era um número aleatório gerado por FormatDateTime('hhmmss',Now), com isso todo pagamento tinha um DocumentoVinculado único. No componente TEFAPI é passado no início do pagamento o parâmetro IdentificadorTransacao(que no TEFAPIdemo é passado o Venda.NumOperacao que é sempre 1). A função de FinalizarTransacao do SiTef estorna o pagamento filtrando pelo DocumentoVinculado, no TEFD como o identificador é único ele estorna somente o pagamento enviado na função de FinalizarTransacao, mas no caso TEFAPI é o 1 para todos os pagamentos então ele estorna todos. -
Problema ao cancelar pagamento TEF (sitef)
Smaili Amorim replied to Smaili Amorim's tópico in Dúvidas sobre TEF
Teria como você colocar um exemplo? pq eu não entendi como eu sinalizo que o pagamento não deve ser confirmado. Utilizando o exemplo com o componente ACBrTEFD eu faço o mesmo procedimento e só é cancela o pagamento selecionado os outros continuam pendente. -
Problema ao cancelar pagamento TEF (sitef)
Smaili Amorim replied to Smaili Amorim's tópico in Dúvidas sobre TEF
No caso eu não mandei cancelar, eu mandei o comando de FinalizarTransacao ACBrTEFAPI1.FinalizarTransacao( AResp.Rede, AResp.NSU, AResp.Finalizacao, tefstsErroDiverso ); Mas também testei o comando de CancelarTransacao ACBrTEFAPI1.CancelarTransacao( AResp.NSU, AResp.CodigoAutorizacaoTransacao, AResp.DataHoraTransacaoHost, AResp.ValorTotal, AResp.Finalizacao, AResp.Rede ); O comportamento foi o seguinte... Ele cancelou a transação que eu mandei cancelar, confirmou as outras transações pendentes e imprimiu todos os comprovantes seria esse mesmo o comportamento? ou seria outro comando para estorna? -
Problema ao cancelar pagamento TEF (sitef)
um tópico no fórum postou Smaili Amorim Dúvidas sobre TEF
Bom dia, ao excluir um pagamento de uma venda, com múltiplos pagamentos utilizando o TACBrTEFAPI . O componente está cancelando todos os pagamentos pendentes.