nunopicado Posted June 11, 2013 at 12:59 PM Report #512016 Posted June 11, 2013 at 12:59 PM (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: 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. Submetido por nunopicado Submetido em 11-06-2013 Categoria Bibliotecas e Aplicações Licença Website https://github.com/nunopicado/AtWS Submetido pelo Autor? Sim Edited August 23, 2017 at 09:29 AM 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now