Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

Sobre Este Ficheiro

  • DLL com as funções de encriptação e envio por webservices de documentos de transporte para o servidor da AT
  • Programa demonstração de como usar a DLL

NOTAS:

ATENÇÃO:

  • Esta é uma DLL de testes para fins meramente didáticos. Não foi alvo de testes intensivos que seriam necessários para ambiente de produção. Usem por vosso risco.

Funções:

ValidadePFX (PFXFile,PFXPass:WideString):WideString;

Retorna a data de expiração do certificado.

Aceita por parâmetro duas strings, em formato UniCode, e retorna uma no mesmo formato.

O primeiro parâmetro é o caminho completo para o ficheiro do certificado (Extensão PFX), o segundo leva a password do certificado.

A Naming Convention é StdCall, standard do Windows.

InitWS(SoapURL,SoapAction:WideString;TimeOut:Integer);

Inicializa a DLL. Deve ser chamada antes de qualquer envio de documentos (não precisa ser chamada se for apenas para verificar a validade).

Aceita por parâmetro duas strings, em formato UniCode, e um valor inteiro.

O primeiro parâmetro é o URL do serviço AT, o segundo é a SOAP Action a usar, o terceiro é o número de segundos para o Timeout. Normalmente, 10 segundos é suficiente. Em máquinas lentas/net lenta, subir um pouco pode ser necessário.

A Naming Convention é StdCall, standard do Windows.

ValidaTDoc(XMLData,PFXFile,PFXPass:WideString):WideString;

Envia um documento de transporte para a AT.

Aceita por parâmetro três strings, em formato UniCode.

O primeiro parâmetro é o documento a enviar, em formato XML, de acordo com as indicações da AT. As excepções são os campos Password (que deve ir em texto simples, e não encriptado), e os campos Nonce e Created, que devem ir vazios. A DLL encarrega-se de encriptar a password e criar os campos Nonce e Created.

Os segundo e terceiro parâmetros são os dados do certificado (caminho completo e password).

Retorna uma string, UniCode também, com o XML de resposta da AT, ou uma string vazia caso não haja resposta.

A Naming Convention é StdCall, standard do Windows.

Requisitos:

Para funcionar, é necessário instalar no PC um pacote da Microsoft, chamado CAPICOM v2.0. Este tem também uma dll (capicom.dll) que deve ser registada no Windows (regsvr32 capicom.dll).

É necessário também que, no Internet Explorer (mesmo que este não seja usado) se defina nas opções avançadas o TLS 1.2 como desabilitado.

Por regra, este protocolo já vinha desabilitado, mas no Windows 8.1, ou no Windows 7/8 com o IE 11 instalado, este protocolo é activado. Deve-se desactivar.

É preciso ainda o certificado, de produção ou de testes, atribuído pela AT.

O ficheiro ChavePublicaAT, ao contrário do que é costume, aqui não é necessário, pois a chave da AT está embutida no código.

AVISO:

De notar que esta DLL não foi alvo de testes extensivos, pelo que o seu uso é por conta e risco do utilizador.

Eu uso-a, com algumas alterações para fazer face às minhas necessidades, e nunca me deu problema, mas ainda assim, não posso garantir nada.


O que há de novo na versão 2013.12.11   Ver changelog

Lançado

  • - Deixa de ser necessário o ficheiro ChavePublicaAT.pem (incorporado no código - a ver vamos se a AT não nos troca as voltas)
  • - Possibilidade de personalizar o tempo de timeout
  • - Adicionada função que retorna a validade do certificado



×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade