Ir para o conteúdo

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

ALERTA NOVA VERSÃO: AtWS

  • Desde 2017-08-23 este projecto está marcado como obsoleto, e não terá nenhum tipo de apoio nesta versão.
  • O projecto segue com o nome AtWS, que pode ser encontrado em github.com/nunopicado/AtWS
  • A nova versão quebra a compatibilidade com a antiga, pela necessidade de melhorar a estrutura do código. No entanto, a compatibilização de código que esteja a usar a WS-DLL não é difícil, já que os parâmetros necessários são os mesmos e no mesmo formato, apenas indicados em locais ligeiramente diferentes.

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 os nossos Termos de Uso e Política de Privacidade