Jump to content

Recommended Posts

Posted (edited)

WS-Dll.zip

Ver 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.


Edited by nunopicado

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.