About This File
- 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:
- Requer instalação da biblioteca da Microsoft CAPICOM 2.0 (http://www.microsoft.com/pt-pt/download/details.aspx?id=25281)
- Requer que o certificado esteja instalado no Windows
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.
What's New in Version 2017.10.27 See changelog
Released
- ChavePublicaAT actualizada para a nova versão (ChaveCifraPublicaAT2020.cer)