none
OFF-TOPIC: [Escovando Bits] - PAF-ECF, Arquivo Criptografado. RRS feed

  • Discussão Geral

  • Escovando Bits
     
    Número de Série e GT Codificado

    No roteiro de testes do PAF-ECF no requisito XXII, testes 4 e 5 é solicitada a gravação do número de série e do grande total, para isto desenvolvemos quatro funções na DarumaFramework.dll que facilitam este trabalho todo de ter que criptografar os valores e depois descriptografar para a devida comparação.


    GT – Grande Total

    rRetornarGTCodificado_ECF_Daruma

    Definição:

    Este método retorna o Grande Total da Impressora codificado.

    Número de Série

    rRetornarNumeroSerieCodificado_ECF_Daruma

    Definição:

    Este método retorna o Número Série da Impressora codificado.

    rVerificaNumeroSerieCodificado_ECF_Daruma

    Definição:

    Este método recebe o Número de Série da Impressora codificado e informa se é válido ou não.
    Obs: Caso o valor informado for diferente do GT da impressora, o comando irá retornar -12 e erro "Parâmetro inválido".


    Na prática

    Os exemplos abaixo demonstram as funções de Retorno e Verificação do Grande Total codificado, mas a forma de utilização é a mesma para as funções do Número de Série Codificado.

    C(Sharp)

    private void button1_Click(object sender, EventArgs e)
            {
                int int_erro = 0;
                int int_aviso = 0;
                StringBuilder Str_GTCodificado = new StringBuilder(38);
                DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp
    .rRetornarGTCodificado_ECF_Daruma(Str_GTCodificado);
                DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.rVerificarGTCodificado_ECF_Daruma(
    Convert
    .ToString(Str_GTCodificado));
                DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.iRetorno = DarumaFramework_DLL.DarumaFramework_Declaracoes_CSharp.rStatusUltimoCmdInt_ECF_Daruma(ref int_erro,
    ref int_aviso);

         }

    Debug mode

    Podemos observar na primeira imagem que a função rRetornarGTCodificado_ECF_Daruma devolve o grande total já codificado e na segunda linha envia para a função rVerificarGTCodificado_ECF_Daruma, para verificar se o mesmo é válido ou não. Na segunda imagem podemos observar que a função retornou = 1, o que vem a indicar que o método foi executado com sucesso.

    Agora vou demonstrar como se o arquivo fosse violado e o GT alterado manualmente, para verificarmos o retorno. Acrescentei mais valores a string com o GT devolvido pela função rRetornarGTCodificado_ECF_Daruma, da seguinte maneira:

    rVerificarGTCodificado_ECF_Daruma(Convert.ToString(Str_GTCodificado+"ABC"));

    Podemos observar que agora o retorno da função nos devolveu -12 e o erro 195, Parâmetros inválidos. Com o Número de Série as funcionalidades são exatamente as mesmas.

    Delphi
    function rRetornarGTCodificado_ECF_Daruma(pszGTCriptografado:string): Integer; StdCall; External 'DarumaFramework.dll';

    function rVerificarGTCodificado_ECF_Daruma(pszGTCriptografado:string): Integer; StdCall; External 'DarumaFramework.dll';

    procedure TFR_FISCAL_rRetornarGTCodificado_ECF_Daruma.BT_ENVIARClick(
      Sender: TObject);
    Var Str_GT_Codificado: String;
    begin
                    SetLength (Str_GT_Codificado,38);
                     Int_Retorno := rRetornarGTCodificado_ECF_Daruma(Str_GT_Codificado);
                     Int_Retorno := rVerificarGTCodificado_ECF_Daruma(Str_GT_Codificado);
                    Edt_GTCodificado.Text := (Str_GT_Codificado);
    end;

    VB6

    Public Declare Function rRetornarGTCodificado_ECF_Daruma Lib "DarumaFramework.dll" (ByVal pszGT As String) As Integer   
    Public Declare Function rVerificarGTCodificado_ECF_Daruma Lib "DarumaFramework.dll" (ByVal pszVerificaGT As String) As Integer

    Private Sub BotaoGT_Click(Index As Integer)
    Dim Str_GTCodificado As String

              Str_GTCodificado = Space(38)
            iRetorno = rRetornarGTCodificado_ECF_Daruma(Str_GTCodificado)
            DarumaFramework_Mostrar_Retorno_ECF (iRetorno)
           
    End Sub

    Um abraço e até a próxima!

    E-mails:
    ddc.suporte@daruma.com.br
    suporte.ddc@daruma.com.br
    desenvolvedores.suporte@daruma.com.br
    suporte.desenvolvedores@daruma.com.br
    desenvolvedores.daruma@daruma.com.br
    suporte@daruma.com.br
    suporte.alexandre@daruma.com.br
    claudenir@daruma.com.br
    Skypes:
    ddc_suporte_daruma
    suporte_ddc_daruma
    desenvolvedores_suporte_daruma
    suporte_desenvolvedores_daruma
    desenvolvedores_daruma
    suporte_daruma
    suporte_alexandre_daruma
    claudenir_andrade
     
    quinta-feira, 12 de janeiro de 2012 12:23