Olá Galera.
Estou implementando no PDV o uso do TEF com o Servidor dedicado, para tanto criei duas funções
function ConfiguraClisitef(const vIpSitef, vIdLoja, vIdTerminal,vNomeLoja: WideString): WideString; stdcall;
function IniciaTransacaoSitef(vFuncao: SYSINT; const vValor, vCupomFiscal,vDataFiscal, vHoraFiscal, vOperador, vParamsAdd: WideString): SYSINT; stdcall;
function TEcfCOM.ConfiguraClisitef(const vIpSitef, vIdLoja, vIdTerminal, vNomeLoja: WideString): WideString;
var
vRetorno: string;
vNumRetorno:Integer;
begin
CliSiTef := TCliSiTef.Create(nil);
CliSiTef.OnCliSiTef := OnCliSiTef;
vRetorno:='Iniciando'+#13+#10;
vNumRetorno := CliSiTef.Configure(vIpSitef,vIdLoja,vIdTerminal);
if vNumRetorno = 0 then
begin
vRetorno:= vRetorno+'Inicialização Ok!'+#13+#10;
end
else
begin
vRetorno:= vRetorno+'Inicialização com retorno ' + IntToStr (vNumRetorno) + #13+#10;
ShowMessage('Erro: retorno ' + IntToStr (vNumRetorno));
end;
if CliSiTef.PinPad.IsPresent then
begin
vRetorno:= vRetorno+'Pinpad encontrado' + #13+#10;
CliSiTef.PinPad.SetDisplayMessage(vNomeLoja, True);
end
else
begin
vRetorno:= vRetorno+'Pinpad não encontrado' + #13+#10;
end;
Result := vRetorno;
end;
function TEcfCOM.IniciaTransacaoSitef(vFuncao: SYSINT; const vValor, vCupomFiscal, vDataFiscal, vHoraFiscal, vOperador, vParamsAdd: WideString): SYSINT;stdcall;
var
vRetorno: integer;
begin
vRetorno := 0;
vRetorno := CliSiTef.StartTransaction(vFuncao,vValor,vCupomFiscal,vDataFiscal,vHoraFiscal,vOperador,vParamsAdd);
Result := vRetorno;
end;
O que está acontecendo é :
Mando um ConfiguraClisitef(vIpSitef,vIdLoja,vIdTerminal,vNomeLoja) e me conecta ok com o pinpad
Depois mando o comando vRetornoSitef := IniciaTransacaoSitef(2 ,FloatToStrF(Edit_VlrPagto.Value,ffFixed,14,2),NumCF,vDataFiscal,vHoraFiscal,vOperador,vParams) Que deveria me retonar 10000 pois configurei o sitefcfg.ini para
[Geral]
BandeiraPadraoHabilitada=1
Para me retornar a Bandeira do cartão, mas me retorna 0, e encerra o procedimento.
Porem entrei em contato com o suporte da SE e disseram que pelo arquivo dmp de log o processo retornou duas vezes o 10000 então acho que eu que não estou sabendo usar. Alguem pode me ajudar?