Páginas

quarta-feira, 13 de fevereiro de 2013

Usando a DLL SAT.dll no Delphi

Abaixo segue a declaração em Delphi de todas as funções que estão disponíveis no arquivo SAT.dll que vem no emulador do SAT-CFe disponibilizado pelo SEFAZ de SP.

    function AssociarAssinatura( numeroSessao : Longint; codigoDeAtivacao: PChar; CNPJvalue : PChar; assinaturaCNPJs : PChar ) : PChar ; cdecl; External 'SAT.DLL';
    function AtivarSAT( numeroSessao: Longint; subComando : Longint; codigoDeAtivacao: PChar; CNPJ: PChar; cUF : Longint ) : PChar ; cdecl; External 'SAT.DLL';
    function AtualizarSoftwareSAT( numeroSessao : Longint; codigoDeAtivacao : PChar ) : PChar ; cdecl; External 'SAT.DLL';
    function BloquearSAT( numeroSessao : Longint; codigoDeAtivacao : PChar ) : PChar ; cdecl; External 'SAT.DLL';
    function CancelarUltimaVenda(numeroSessao : Longint; codigoAtivacao: PChar; chave: PChar; dadosCancelamento : PChar) : PChar ; cdecl;  External 'SAT.DLL';
    function ComunicarCertificadoICPBRASIL( numeroSessao : Longint; codigoDeAtivacao : PChar; certificado : PChar ) : PChar ; cdecl; External 'SAT.DLL';
    function ConfigurarInterfaceDeRede( numeroSessao : Longint; codigoDeAtivacao : PChar; dadosConfiguracao : PChar ) : PChar ; cdecl; External 'SAT.DLL';
    function ConsultarNumeroSessao(numeroSessao : Longint; cNumeroDeSessao : Longint) : PChar ; cdecl;  External 'SAT.DLL';
    function ConsultarSAT( numeroSessao : Longint ) : PChar ; cdecl; External 'SAT.DLL';
    function ConsultarStatusOperacional( numeroSessao : Longint; codigoDeAtivacao : PChar ) : PChar ; cdecl; External 'SAT.DLL';
    function DesbloquearSAT( numeroSessao : Integer; codigoDeAtivacao : PChar ) : PChar ; cdecl; External 'SAT.DLL';
    function DesligarSAT : PChar ; cdecl; External 'SAT.DLL';
    function EnviarDadosVenda(numeroSessao : Longint; codigoDeAtivacao: PChar; dadosVenda : PChar) : PChar ; cdecl; External SAT.DLL';
    function ExtrairLogs( numeroSessao : Longint; codigoDeAtivacao : PChar ) : PChar ; cdecl; External 'SAT.DLL';
    function TesteFimAFim(numeroSessao : Longint; codigoDeAtivacao: PChar; dadosVenda : PChar) : PChar ; cdecl; External 'SAT.DLL';
    function TrocarCodigoDeAtivacao( numeroSessao : Longint; codigoDeAtivacao : PChar; opcao : Longint; novoCodigo : PChar; confNovoCodigo : PChar ) : PChar ; cdecl; External 'SAT.DLL';


Com as declarações acima consegui comunicar a aplicação em Delphi com o emulador , usando stdcall sempre recebia como retorno da DLL a mensagem "ERRO: Numero de Sessao Invalido"