Business - Automação Comercial
Bematech: Transferência Eletrônica de Fundos (T.E.F.) - Discado - Passo 4/10 - Confirmando uma transação TEF
No passo anterior, realizamos uma venda de cupom fiscal com pagamento em cartão e fizemos nossa primeira transação TEF com impressão do comprovante. Agora, precisamos validar esta transação!
por André Luiz R. MunhozNo passo anterior, realizamos uma venda de cupom fiscal com
pagamento em cartão e fizemos nossa primeira transação TEF com impressão do
comprovante. Agora, precisamos validar esta transação!
Vamos criar duas
funções para isso:
- uma para confirmar a transação TEF
(ConfirmaTransacao) e;
- outra para não confirmar a transação TEF
(NaoConfirmaTransacao).
Ou seja, precisamos controlar estes dois
processos, pois estaremos enfrentando situações onde a impressora passará por
erros de comunicação (desligamentos) ou quedas de energia (veremos isso nas
próximas edições).
Estaremos visualizando este código em dois exemplos
básicos. Um desenvolvido em Delphi e outro em Visual Basic.
-
Exemplo em Delphi
////////////////////////////////////////////////////////// |
- Exemplo em Visual Basic
" Função: ConfirmaTransacao " Objetivo: Confirmar a Transação TEF " Parâmetros: não há " Retorno: True para OK ou False para não OK Function ConfirmaTransacao() As Boolean Dim cLinhaArquivo As String Dim cConteudo As String cLinhaArquivo = "" cConteudo = "" Open "C:\TEF_DIAL\RESP\INTPOS.001" For Input As #1 Do While Not EOF(1) Line Input #1, cLinhaArquivo If (Mid(cLinhaArquivo, 1, 3) = "001") Or _ (Mid(cLinhaArquivo, 1, 3) = "002") Or _ (Mid(cLinhaArquivo, 1, 3) = "010") Or _ (Mid(cLinhaArquivo, 1, 3) = "012") Or _ (Mid(cLinhaArquivo, 1, 3) = "027") Then cConteudo = cConteudo + cLinhaArquivo + Chr(13) + Chr(10) End If If (Mid(cLinhaArquivo, 1, 3) = "999") Then cConteudo = cConteudo + cLinhaArquivo End If Loop Close #1 cConteudo = "000-000 = CNF" + Chr(13) + Chr(10) + cConteudo Open App.Path & "\INTPOS.001" For Binary As #1 Put #1, , cConteudo Close #1 FileCopy App.Path & "\INTPOS.001", "C:\TEF_DIAL\REQ\INTPOS.001" Kill App.Path & "\INTPOS.001" cArquivoSTS = Dir("C:\TEF_DIAL\RESP\INTPOS.STS") If (cArquivoSTS <> "") Then Kill "C:\TEF_DIAL\RESP\INTPOS.STS" End If cArquivoINTPOS = Dir("C:\TEF_DIAL\RESP\INTPOS.001") If (cArquivoSTS <> "") Then Kill "C:\TEF_DIAL\RESP\INTPOS.001" End If End Function " Função: NaoConfirmaTransacao " Objetivo: Confirmar a Transação TEF " Parâmetros: não há " Retorno: True para OK ou False para não OK Function NaoConfirmaTransacao() As Boolean Dim cLinhaArquivo As String, cConteudo As String Dim cValor As String, cNomeRede As String, cNSU As String cLinhaArquivo = "" cConteudo = "" Open "C:\TEF_DIAL\RESP\INTPOS.001" For Input As #1 Do While Not EOF(1) Line Input #1, cLinhaArquivo If (Mid(cLinhaArquivo, 1, 3) = "001") Then cConteudo = cConteudo + cLinhaArquivo + Chr(13) + Chr(10) End If If (Mid(cLinhaArquivo, 1, 3) = "003") Then cValor = Mid(cLinhaArquivo, 11, Len(cLinhaArquivo) - 10) End If If (Mid(cLinhaArquivo, 1, 3) = "010") Then cConteudo = cConteudo + cLinhaArquivo + Chr(13) + Chr(10) cNomeRede = Mid(cLinhaArquivo, 11, Len(cLinhaArquivo) - 10) End If If (Mid(cLinhaArquivo, 1, 3) = "012") Then cConteudo = cConteudo + cLinhaArquivo + Chr(13) + Chr(10) cNSU = Mid(cLinhaArquivo, 11, Len(cLinhaArquivo) - 10) End If If (Mid(cLinhaArquivo, 1, 3) = "027") Then cConteudo = cConteudo + cLinhaArquivo + Chr(13) + Chr(10) End If If (Mid(cLinhaArquivo, 1, 3) = "999") Then cConteudo = cConteudo + cLinhaArquivo End If Loop Close #1 cConteudo = "000-000 = NCN" + Chr(13) + Chr(10) + cConteudo Open App.Path & "\INTPOS.001" For Binary As #1 Put #1, , cConteudo Close #1 FileCopy App.Path & "\INTPOS.001", "C:\TEF_DIAL\REQ\INTPOS.001" Kill App.Path & "\INTPOS.001" cArquivoSTS = Dir("C:\TEF_DIAL\RESP\INTPOS.STS") If (cArquivoSTS <> "") Then Kill "C:\TEF_DIAL\RESP\INTPOS.STS" End If cArquivoINTPOS = Dir("C:\TEF_DIAL\RESP\INTPOS.001") If (cArquivoSTS <> "") Then Kill "C:\TEF_DIAL\RESP\INTPOS.001" End If MsgBox "Cancelada a Transação" + Chr(13) + Chr(13) + "Rede: " + _ cNomeRede + Chr(13) + "Doc Nº: " + cNSU + Chr(13) + "Valor: " + _ Format(cValor / 100, "#,##0.00"), vbInformation + vbOKOnly, "Atenção" End Function |
- DarumaFramework.SO no LinuxAutomação Comercial
- Palavra de status da impressora na DarumaFrameworkAutomação Comercial
- TEF – Comprovante de Crédito ou DébitoAutomação Comercial
- Comunicar com equipamentos Daruma em linguagens 16bits e DOSAutomação Comercial
- Verificando Redução Z nas Impressoras DarumaAutomação Comercial