Como Integrar com o TEF Parte 3

No ultimo post explicamos como referenciar a Dll bem como detalhar um pouco a integração, falamos das diferenças entre visível e invisível. Lembre aqui.

Não vou mostrar como construir a interface gráfica, se quiser utiliza-la basta clona-la ou baixá-la do GitHub

Autenticando o PDV

Para autenticação é utilizado um método com 3 argumentos, mas já vou avisando no futuro próximo será necessário apenas 1. Lembra dos dados utilizados para instalação do CapptaGpPlus, se não lembra clique aqui. os mesmos com exceção da senha serão utilizados.

Para validar seu PDV então utilize: CNPJ, PDV e Chave.

O CNPJ e o PDV são os mesmos utilizados na instalação a Chave a ser utilizada é esta aqui (795180024C04479982560F61B3C2C06E),   após a homologação seu sistema recebe uma chave única e intransferível.

 795180024C04479982560F61B3C2C06E


Os dados de CNPJ e PDV não podem ficar no código pois os mesmos variam de cliente para cliente mas a chave é unica para seu sistema. O ideal é criar uma tela ou aproveitar alguma das já utilizadas em configuração. Pois o usuário ou o técnico precisara configurar manualmente estes dados.

O mais utilizado é deixar estes dados em um XML, mas pode ser tabela do banco de dados.

O visual estúdio possibilita algumas tarefas incríveis como por exemplo a utilização do app.config

O método

clienteCappta.AutenticarPdv(CNPJ, PDV, Chave);

Isto acima é o suficiente para autenticar o PDV.

Utilizando o app.config:

<configuration>
  <startup>
    <supportedruntime sku=".NETFramework,Version=v4.0" version="v4.0">
  </supportedruntime></startup>
  <appsettings>
    <add key="ChaveAutenticacao" value="1B489E726C284CC78DE715C7399114BF">
    <add key="Cnpj" value="00000000000000">
    <add key="Pdv" value="16">
    <add key="ClientSettingsProvider.ServiceUri" value="">
  </add></add></add></add></appsettings>
  <system .web="">
    <membership defaultprovider="ClientAuthenticationMembershipProvider">
      <providers>
        <add name="ClientAuthenticationMembershipProvider" serviceuri="" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
      </add></providers>
    </membership>
    <rolemanager defaultprovider="ClientRoleProvider" enabled="true">
      <providers>
        <add cachetimeout="86400" name="ClientRoleProvider" serviceuri="" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
      </add></providers>
    </rolemanager>
  </system>
</configuration>

O trecho de código ficaria assim:



private void AutenticarPdv()
        {
            var chaveAutenticacao = ConfigurationManager.AppSettings["ChaveAutenticacao"];
            if (String.IsNullOrWhiteSpace(chaveAutenticacao)) { this.InvalidarAutenticacao("Chave de Autenticação inválida"); }

            var cnpj = ConfigurationManager.AppSettings["Cnpj"];
            if (String.IsNullOrWhiteSpace(cnpj) || cnpj.Length != 14) { this.InvalidarAutenticacao("CNPJ inválido"); }

            int pdv;
            if (Int32.TryParse(ConfigurationManager.AppSettings["Pdv"], out pdv) == false || pdv == 0)
            {
                this.InvalidarAutenticacao("PDV inválido");
            }

            int resultadoAutenticacao = this.cliente.AutenticarPdv(cnpj, pdv, chaveAutenticacao);
            if (resultadoAutenticacao == 0) { return; }

            String mensagem = Mensagens.ResourceManager.GetString(String.Format("RESULTADO_CAPPTA_{0}", resultadoAutenticacao));
            this.ExibeMensagemAutenticacaoInvalida(resultadoAutenticacao);
        }


O ConfigurationManager fornece acesso a arquivos de configuração.
Adicionar referencias + Assemblies + System.Configuration

Próximo post Configurar modo Invisível



Comentários