Está correta minha rotina para TEF?
Olá!
Tenho em meu sistemas, os seguintes códigos:
[b:ddb6bce745]Para criar o arquivo INTPOS.TMP na pasta REQ e adicionar os campos e após isso, renomear o arquivo para INTPOS.001.[/b:ddb6bce745]
[i:ddb6bce745]procedure TForm1.btnBanricomprasClick(Sender: TObject);
VAR
F: TEXTFILE;
S: STRING;
begin
AssignFile(F,´C:\TEF_DISC\BANRISUL\Req\IntPos.tmp´);
REWRITE(F); //cria arquivo
S:=´000-000 ´ + ´= ´ + dbeHeader.Text;
WRITELN(F,S);//adiciona nova linha no arquivo
S:=´001-000 ´ + ´= ´ + dbeIdentificacao.Text;
WRITELN(F,S);//adiciona nova linha no arquivo
S:=´002-000 ´ + ´= ´ + dbeDocFiscal.Text;
WRITELN(F,S);
S:=´003-000 ´ + ´= ´ + dbeValorTotal.Text;
WRITELN(F,S);
S:=´004-000 ´ + ´= ´ + dbeMoeda.Text;
WRITELN(F,S);
S:=´005-000 ´ + ´= ´ + dbeCMC7.Text;
WRITELN(F,S);
S:=´006-000 ´ + ´= ´ + dbeTipoPessoa.Text;
WRITELN(F,S);
S:=´007-000 ´ + ´= ´ + dbeDocPessoa.Text;
WRITELN(F,S);
S:=´008-000 ´ + ´= ´ + dbeDataCheque.Text;
WRITELN(F,S);
S:=´010-000 ´ + ´= ´ + dbeNomeRede.Text;
WRITELN(F,S);
S:=´012-000 ´ + ´= ´ + dbeNumTransacao.Text;
WRITELN(F,S);
S:=´022-000 ´ + ´= ´ + dbeDataTransacao.Text;
WRITELN(F,S);
S:=´023-000 ´ + ´= ´ + dbeHoraTransacao.Text;
WRITELN(F,S);
S:=´027-000 ´ + ´= ´ + dbeFinalizacao.Text;
WRITELN(F,S);
S:=´033-000 ´ + ´= ´ + dbeBanco.Text;
WRITELN(F,S);
S:=´034-000 ´ + ´= ´ + dbeAgencia.Text;
WRITELN(F,S);
S:=´035-000 ´ + ´= ´ + dbeAgenciaDC.Text;
WRITELN(F,S);
S:=´036-000 ´ + ´= ´ + dbeContaCorrente.Text;
WRITELN(F,S);
S:=´037-000 ´ + ´= ´ + dbeContaCorrenteDC.Text;
WRITELN(F,S);
S:=´038-000 ´ + ´= ´ + dbeNumeroCheque.Text;
WRITELN(F,S);
S:=´039-000 ´ + ´= ´ + dbeNumeroChequeDC.Text;
WRITELN(F,S);
S:=´041-000 ´ + ´= ´ + dbeCodBarras.Text;
WRITELN(F,S);
S:=´042-000 ´ + ´= ´ + dbeTrailer.Text;
WRITELN(F,S);
CLOSEFILE(F);//fecha arquivo
RenameFile(´C:\TEF_DISC\BANRISUL\Req\IntPos.tmp´,´C:\TEF_DISC\BANRISUL\Req\IntPos.001´);
end;[/i:ddb6bce745][b:ddb6bce745]
[b]
Fazer a leitura do arquivo INTPOS.001 da pasta RESP:[/b:ddb6bce745]
[i:ddb6bce745]procedure TForm1.btnLerClick(Sender: TObject);
begin
If FileExists(´C:\TEF_DISC\BANRISUL\Resp\IntPos.001´) = False Then
begin
ShowMessage(´Arquivo inativo!´);
end
else
begin
frmIntPos := TfrmIntPos.Create(Self);
try
frmIntPos.ShowModal;
finally
frmIntPos.Free;
end;
end;
end;[/i:ddb6bce745]
[b:ddb6bce745]Quando mostrar o formulário onde está o MEMO, com as linhas do INTPOS.001 da pasta RESP:[/b:ddb6bce745]
[i:ddb6bce745]procedure TfrmIntPos.FormShow(Sender: TObject);
var
Arquivo :TextFile;
Linha :String;
{
Fazer um LOOP no arquivo, abrindo-o
e lendo de linha-a-linha, adicionando no Memo.
}
begin
AssignFile(Arquivo, ´C:\TEF_DISC\BANRISUL\Resp\IntPos.001´);
Reset(Arquivo);
Repeat
ReadLn(Arquivo,Linha);
Memo1.Lines.Add(Linha);
until EOF(Arquivo);
end;[/i:ddb6bce745]
Só não sei pq os campos Agência e Conta Corrente aparecem, respectivamente, como 1234 e 1234567890, ao invés de retornar os valores que eu preenchi em meus edits.
O que pode estar errado em meus códigos?
Grato pela atenção.[/b]
Tenho em meu sistemas, os seguintes códigos:
[b:ddb6bce745]Para criar o arquivo INTPOS.TMP na pasta REQ e adicionar os campos e após isso, renomear o arquivo para INTPOS.001.[/b:ddb6bce745]
[i:ddb6bce745]procedure TForm1.btnBanricomprasClick(Sender: TObject);
VAR
F: TEXTFILE;
S: STRING;
begin
AssignFile(F,´C:\TEF_DISC\BANRISUL\Req\IntPos.tmp´);
REWRITE(F); //cria arquivo
S:=´000-000 ´ + ´= ´ + dbeHeader.Text;
WRITELN(F,S);//adiciona nova linha no arquivo
S:=´001-000 ´ + ´= ´ + dbeIdentificacao.Text;
WRITELN(F,S);//adiciona nova linha no arquivo
S:=´002-000 ´ + ´= ´ + dbeDocFiscal.Text;
WRITELN(F,S);
S:=´003-000 ´ + ´= ´ + dbeValorTotal.Text;
WRITELN(F,S);
S:=´004-000 ´ + ´= ´ + dbeMoeda.Text;
WRITELN(F,S);
S:=´005-000 ´ + ´= ´ + dbeCMC7.Text;
WRITELN(F,S);
S:=´006-000 ´ + ´= ´ + dbeTipoPessoa.Text;
WRITELN(F,S);
S:=´007-000 ´ + ´= ´ + dbeDocPessoa.Text;
WRITELN(F,S);
S:=´008-000 ´ + ´= ´ + dbeDataCheque.Text;
WRITELN(F,S);
S:=´010-000 ´ + ´= ´ + dbeNomeRede.Text;
WRITELN(F,S);
S:=´012-000 ´ + ´= ´ + dbeNumTransacao.Text;
WRITELN(F,S);
S:=´022-000 ´ + ´= ´ + dbeDataTransacao.Text;
WRITELN(F,S);
S:=´023-000 ´ + ´= ´ + dbeHoraTransacao.Text;
WRITELN(F,S);
S:=´027-000 ´ + ´= ´ + dbeFinalizacao.Text;
WRITELN(F,S);
S:=´033-000 ´ + ´= ´ + dbeBanco.Text;
WRITELN(F,S);
S:=´034-000 ´ + ´= ´ + dbeAgencia.Text;
WRITELN(F,S);
S:=´035-000 ´ + ´= ´ + dbeAgenciaDC.Text;
WRITELN(F,S);
S:=´036-000 ´ + ´= ´ + dbeContaCorrente.Text;
WRITELN(F,S);
S:=´037-000 ´ + ´= ´ + dbeContaCorrenteDC.Text;
WRITELN(F,S);
S:=´038-000 ´ + ´= ´ + dbeNumeroCheque.Text;
WRITELN(F,S);
S:=´039-000 ´ + ´= ´ + dbeNumeroChequeDC.Text;
WRITELN(F,S);
S:=´041-000 ´ + ´= ´ + dbeCodBarras.Text;
WRITELN(F,S);
S:=´042-000 ´ + ´= ´ + dbeTrailer.Text;
WRITELN(F,S);
CLOSEFILE(F);//fecha arquivo
RenameFile(´C:\TEF_DISC\BANRISUL\Req\IntPos.tmp´,´C:\TEF_DISC\BANRISUL\Req\IntPos.001´);
end;[/i:ddb6bce745][b:ddb6bce745]
[b]
Fazer a leitura do arquivo INTPOS.001 da pasta RESP:[/b:ddb6bce745]
[i:ddb6bce745]procedure TForm1.btnLerClick(Sender: TObject);
begin
If FileExists(´C:\TEF_DISC\BANRISUL\Resp\IntPos.001´) = False Then
begin
ShowMessage(´Arquivo inativo!´);
end
else
begin
frmIntPos := TfrmIntPos.Create(Self);
try
frmIntPos.ShowModal;
finally
frmIntPos.Free;
end;
end;
end;[/i:ddb6bce745]
[b:ddb6bce745]Quando mostrar o formulário onde está o MEMO, com as linhas do INTPOS.001 da pasta RESP:[/b:ddb6bce745]
[i:ddb6bce745]procedure TfrmIntPos.FormShow(Sender: TObject);
var
Arquivo :TextFile;
Linha :String;
{
Fazer um LOOP no arquivo, abrindo-o
e lendo de linha-a-linha, adicionando no Memo.
}
begin
AssignFile(Arquivo, ´C:\TEF_DISC\BANRISUL\Resp\IntPos.001´);
Reset(Arquivo);
Repeat
ReadLn(Arquivo,Linha);
Memo1.Lines.Add(Linha);
until EOF(Arquivo);
end;[/i:ddb6bce745]
Só não sei pq os campos Agência e Conta Corrente aparecem, respectivamente, como 1234 e 1234567890, ao invés de retornar os valores que eu preenchi em meus edits.
O que pode estar errado em meus códigos?
Grato pela atenção.[/b]
Lucas_spohr
Curtidas 0
Respostas
Lucas_spohr
02/01/2008
up
GOSTEI 0
Lucas_spohr
02/01/2008
up
GOSTEI 0
Lucas_spohr
02/01/2008
vou tentar explicar melhor o que estou precisando:
Bom.
Tenho o meu projeto TEF em delphi, onde tenho todos os campos necessários, conforme descritos no Guia Técnico do Gerenciador Padrão. Preencho todos os DBEdits, os quais estão ligados num ClientDataSet. Após preenchê-los, clico no botão BanriCompras, o qual enviará para a pasta REQ o arquivo INTPOS.001, onde estará informado todos os valores conforme preenchi em meu projeto em Delphi; como o exemplo do layout abaixo; e abrirá também, o Gerenciador Padrão.
000-000 = HEADER
001-000 = IDENTIFICAÇÃO
002-000 = DOCUMENTO FISCAL VINCULADO
etc...
Após aberto o Gerenciador Padrão, eu efetuo um Pagamento à vista, confirmo o valor (que aparecerá, conforme preenchido no meu projeto do delphi), passo o cartão de débito no Pin-Pad e digito a senha.
Seguindo estes passos, eu abro o arquivo INTPOS.001 da pasta RESP. Todos os campos aparecem conforme preenchidos em meu projeto, exceto os campos AGÊNCIA e CONTA CORRENTE.
Alguém poderia me informar o porquê disso? Os códigos da minha aplicação estão acima.
Obrigado!
Bom.
Tenho o meu projeto TEF em delphi, onde tenho todos os campos necessários, conforme descritos no Guia Técnico do Gerenciador Padrão. Preencho todos os DBEdits, os quais estão ligados num ClientDataSet. Após preenchê-los, clico no botão BanriCompras, o qual enviará para a pasta REQ o arquivo INTPOS.001, onde estará informado todos os valores conforme preenchi em meu projeto em Delphi; como o exemplo do layout abaixo; e abrirá também, o Gerenciador Padrão.
000-000 = HEADER
001-000 = IDENTIFICAÇÃO
002-000 = DOCUMENTO FISCAL VINCULADO
etc...
Após aberto o Gerenciador Padrão, eu efetuo um Pagamento à vista, confirmo o valor (que aparecerá, conforme preenchido no meu projeto do delphi), passo o cartão de débito no Pin-Pad e digito a senha.
Seguindo estes passos, eu abro o arquivo INTPOS.001 da pasta RESP. Todos os campos aparecem conforme preenchidos em meu projeto, exceto os campos AGÊNCIA e CONTA CORRENTE.
Alguém poderia me informar o porquê disso? Os códigos da minha aplicação estão acima.
Obrigado!
GOSTEI 0
Lucas_spohr
02/01/2008
corrigindo:
[i:a564898a03]000-000 = CRT
001-000 = 1
002-000 = 123456[/i:a564898a03]
[i:a564898a03]000-000 = CRT
001-000 = 1
002-000 = 123456[/i:a564898a03]
GOSTEI 0
Lucas_spohr
02/01/2008
up
GOSTEI 0
Virus69
02/01/2008
caro amigo, caso precise de alguma informação sobre o processo do TEF entre em contato comigo pelo meu email ou poste aqui.
elvirocavalcanti@hotmail.com
Grato
elvirocavalcanti@hotmail.com
Grato
GOSTEI 0
Easytef
02/01/2008
O já consolidado EasyTEF, componente TEF discado, que já homologou vários sistemas pra TEF, escreve corretamente o arquivo de requisição para todos os comandos da especificação TEF.
A versão de avaliação do componente pode ser baixada no seguinte endereço:
http://www.easytef.com.br/download.htm
Baixe o componente, siga o passo-a-passo da documentação, execute os roteiros de teste das redes de cartão, comprove que o componente funciona, então adquira o produto.
Qualquer dúvida, basta entrar em contato.
Atenciosamente,
EasyTEF Team
A versão de avaliação do componente pode ser baixada no seguinte endereço:
http://www.easytef.com.br/download.htm
Baixe o componente, siga o passo-a-passo da documentação, execute os roteiros de teste das redes de cartão, comprove que o componente funciona, então adquira o produto.
Qualquer dúvida, basta entrar em contato.
Atenciosamente,
EasyTEF Team
GOSTEI 0