fernandods Posted January 4, 2013 at 06:34 PM Report #489572 Posted January 4, 2013 at 06:34 PM (edited) Neste momento estou a receber um erro -99 -> Erro inesperado . Segundo a documentação é um "Erro interno" o que quer que isso seja. Bem, parto do principio que é um erro deles. Já está a funcionar !!! Edited January 4, 2013 at 06:40 PM by fernandods
woozy Posted January 5, 2013 at 04:06 PM Report #489751 Posted January 5, 2013 at 04:06 PM Já alguém consegui resolver o erro 8 em PHP? Obrigado
joaoMoreira Posted January 7, 2013 at 12:26 PM Report #489993 Posted January 7, 2013 at 12:26 PM Bom dia, Estou a utilizar o novo certificado de testes... e obtenho a seguinte resposta "<faultstring>Rejected: | Codigo: 11 | Erro: Validade da credencial expirada(2012-12-31T12:47:00.0Z) | Tentativas Restantes: -1</faultstring>". Tudo estava a funcionar correctamente ate dia 31! Alguem com o mesmo problema? Na aplicação de teste de conectividade aparece também o erro "javax.net.ssl.SSLHandshakeException" ,não obtendo qualquer resposta, por isso acredito que mais uma vez o erro seja do lado deles...
RaulLima Posted January 7, 2013 at 12:56 PM Report #489996 Posted January 7, 2013 at 12:56 PM Bom dia, Estou a utilizar o novo certificado de testes... e obtenho a seguinte resposta "<faultstring>Rejected: | Codigo: 11 | Erro: Validade da credencial expirada(2012-12-31T12:47:00.0Z) | Tentativas Restantes: -1</faultstring>". Tudo estava a funcionar correctamente ate dia 31! Alguem com o mesmo problema? Na aplicação de teste de conectividade aparece também o erro "javax.net.ssl.SSLHandshakeException" ,não obtendo qualquer resposta, por isso acredito que mais uma vez o erro seja do lado deles... Verifica novamente, pois esse erro está relacionado apenas com o certificado digital. Vê se não estás a carregar via código, forçar em algum lado ou assim. O que eu fiz foi criar uma DLL para lidar com o processo, e recebo como parâmetros o certificado digital e a respectiva senha. Mas em fase de testes, fixei uma linha de código para carregar o certificado e a senha. Instala o certificado no computador, e vai ao browser e entra em https://servicos.portaldasfinancas.gov.pt:700/fews/faturas. Quando aparecer uma janela para selecionar o certificado, seleciona o "Testes Web Services (DGITA Issuing CA1)". Se der erro, esse certificado não é o correcto. Se aparecer uma mensagem XML, esse está correcto.
jokimen Posted January 7, 2013 at 01:22 PM Report #490005 Posted January 7, 2013 at 01:22 PM Boas, Desde já quero agradecer ajuda de rmartyn e fernandods. Com a vossa ajuda, usando o curl já estou a receber resposta por parte do webservice da AT. Contudo recebo como resposta um "35Unknown SSl Protocol error in connection to servicos.portaldasfinanças.gov.pt:700". Alguém me pode ajudar com isto?
RaulLima Posted January 7, 2013 at 03:59 PM Report #490011 Posted January 7, 2013 at 03:59 PM Boas, Desde já quero agradecer ajuda de rmartyn e fernandods. Com a vossa ajuda, usando o curl já estou a receber resposta por parte do webservice da AT. Contudo recebo como resposta um "35Unknown SSl Protocol error in connection to servicos.portaldasfinanças.gov.pt:700". Alguém me pode ajudar com isto? Olá, Os erros do tipo ERR_SSL_PROTOCOL_ERROR têm haver com o certificado digital que é associado à mensagem no momento do envio. Caso este esteja expirado ou não tendo permissões de acesso ao servidor, então dá erro. Aconselho-te a verificar se estás a usar o certificado digital de testes deste ano e que estás a adicionar correctamente o certificado ao xmlrequest. Cumps.
joaoMoreira Posted January 7, 2013 at 04:03 PM Report #490013 Posted January 7, 2013 at 04:03 PM Bom dia, Estou a utilizar o novo certificado de testes... e obtenho a seguinte resposta "<faultstring>Rejected: | Codigo: 11 | Erro: Validade da credencial expirada(2012-12-31T12:47:00.0Z) | Tentativas Restantes: -1</faultstring>". Tudo estava a funcionar correctamente ate dia 31! Alguem com o mesmo problema? Na aplicação de teste de conectividade aparece também o erro "javax.net.ssl.SSLHandshakeException" ,não obtendo qualquer resposta, por isso acredito que mais uma vez o erro seja do lado deles... Eu instalei o certificado, carrego-o correctamente por código a semelhança do k fazia com o anterior... ao aceder directamente via browser, aparece por defeito o certificado correcto com validade ate junho...
jokimen Posted January 7, 2013 at 04:20 PM Report #490014 Posted January 7, 2013 at 04:20 PM (edited) Olá, Os erros do tipo ERR_SSL_PROTOCOL_ERROR têm haver com o certificado digital que é associado à mensagem no momento do envio. Caso este esteja expirado ou não tendo permissões de acesso ao servidor, então dá erro. Aconselho-te a verificar se estás a usar o certificado digital de testes deste ano e que estás a adicionar correctamente o certificado ao xmlrequest. Cumps. Eu instalei o certificado, carrego-o correctamente por código a semelhança do k fazia com o anterior... ao aceder directamente via browser, aparece por defeito o certificado correcto com validade ate junho... Boas João, Eu chamo no código o ficheiro .cer designado por chave pública, pois vou usá-la para cifrar os campos que eles assim designam para cifrar. E estou a usar a mesma que possui a validade até 2017. O que me enviaram de novo foi o ficheiro .pfx designado de Teste Webservice mas penso que só tenho de instalar o certificado, que chamado pelo browser responde correctamente. Depois chamo é um endpoint:https://servicos.portaldasfinancas.gov.pt:700/fews/facturas. Isso não basta? Edited January 7, 2013 at 04:20 PM by jokimen
joaoMoreira Posted January 7, 2013 at 04:29 PM Report #490016 Posted January 7, 2013 at 04:29 PM Em 1/7/2013 às 16:20, jokimen disse: Boas João, Eu chamo no código o ficheiro .cer designado por chave pública, pois vou usá-la para cifrar os campos que eles assim designam para cifrar. E estou a usar a mesma que possui a validade até 2017. O que me enviaram de novo foi o ficheiro .pfx designado de Teste Webservice mas penso que só tenho de instalar o certificado, que chamado pelo browser responde correctamente. Depois chamo é um endpoint:https://servicos.portaldasfinancas.gov.pt:700/fews/facturas. Isso não basta? Boas, Não. Tens de enviar o certificado no pedido... Algo deste tipo : string CaminhoCertificado = @"C:\Users\jm\Desktop\FICHEIROS\TestesWebServices.pfx"; string SenhaCertificado = "TESTEwebservice"; .... HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(EnderecoWebService); request.Headers.Add("SOAPAction", "http://servicos.portaldasfinancas.gov.pt/faturas/RegisterInvoice"); X509Certificate2 cert = new X509Certificate2(); cert.Import(CaminhoCertificado, SenhaCertificado, X509KeyStorageFlags.DefaultKeySet); request.ClientCertificates.Add(cert); request.Method = "POST"; request.ContentType = "text/xml; charset=utf-8"; request.Accept = "text/xml"; string postData = oRequest; byte[] byteArray = Encoding.UTF8.GetBytes(postData); request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); ...
joaoMoreira Posted January 7, 2013 at 05:01 PM Report #490020 Posted January 7, 2013 at 05:01 PM (edited) Mas alguém neste momento está a conseguir obter resposta do webservice da AT em ambiente de testes? em debug vejo as propriedades do certificado a emitir,nomeadamente a validade do certificado que esta correcta... As cifras e chaves mantive, não estou a ver qual será o problema. Edited January 7, 2013 at 05:02 PM by joaoMoreira
pmmachado Posted January 7, 2013 at 05:52 PM Report #490022 Posted January 7, 2013 at 05:52 PM (edited) Bom dia, Estou a utilizar o novo certificado de testes... e obtenho a seguinte resposta "<faultstring>Rejected: | Codigo: 11 | Erro: Validade da credencial expirada(2012-12-31T12:47:00.0Z) | Tentativas Restantes: -1</faultstring>". Tudo estava a funcionar correctamente ate dia 31! Alguem com o mesmo problema? Na aplicação de teste de conectividade aparece também o erro "javax.net.ssl.SSLHandshakeException" ,não obtendo qualquer resposta, por isso acredito que mais uma vez o erro seja do lado deles... Boas, Já escrevi antes no forum sobre esse erro 11 ... é preciso ter cuidado com a data do sistema. Se houver uma diferença grande (tipo meio minuto) dá esse erro (no campo H4 - Created) O meu primeiro problema foi esse e andei horas e horas até reparar que o meu pc tinha o relógio atrasado 2 minutos .... Na documentação faz referencia a isso na página 11 e deves ter a hora sincronizada com o Observatório Astronómico de Lisboa ... Confirma e deixa feedback Mas alguém neste momento está a conseguir obter resposta do webservice da AT em ambiente de testes? em debug vejo as propriedades do certificado a emitir,nomeadamente a validade do certificado que esta correcta... As cifras e chaves mantive, não estou a ver qual será o problema. Boas, Acabei de inserir 2 faturas no ambiente de testes sem problema, utilizando o mesmo código que tinha em 31/12/2012 e com o certificado de testes novo (validade de junho/2013) Ainda tens problemas ? Edited January 7, 2013 at 05:49 PM by pmmachado
joaoMoreira Posted January 7, 2013 at 06:03 PM Report #490024 Posted January 7, 2013 at 06:03 PM Pmmachado, Obrigado! Distracção minha, estava a carregar esse campo com a data de emissao do documento proveniente da B.D.! Cumps
woozy Posted January 7, 2013 at 09:54 PM Report #490057 Posted January 7, 2013 at 09:54 PM (edited) Olá, Os erros do tipo ERR_SSL_PROTOCOL_ERROR têm haver com o certificado digital que é associado à mensagem no momento do envio. Caso este esteja expirado ou não tendo permissões de acesso ao servidor, então dá erro. Aconselho-te a verificar se estás a usar o certificado digital de testes deste ano e que estás a adicionar correctamente o certificado ao xmlrequest. Cumps. Olá a todos, Desculpem mas isso não é verdade. O ERR_SSL_PROTOCOL_ERROR é um erro de protocolo e não do certificado. No entanto esse erro pode ser gerado por FALTA do certificado no pedido porque o protocolo utilizado no servidor requer o certificado. Penso que também existem algumas versões do openssl que podem gerar esse error arbitrariamente (bug). Aproveito para agradecer a todos os que têm partilhado informação sobre este assunto! Já que o suporte da AT tem sido muito escasso. Pessoalmente ainda não consegui ultrapassar o erro 8. Edited January 7, 2013 at 10:01 PM by woozy
jokimen Posted January 8, 2013 at 10:53 AM Report #490113 Posted January 8, 2013 at 10:53 AM Woozy e sabes que versões possuem esse bug?
Alfa Posted January 8, 2013 at 12:50 PM Report #490124 Posted January 8, 2013 at 12:50 PM (edited) Olá a todos, Recentemente também me pediram para ajudar a desenvolver esta funcionalidade, já li alguma documentação mas tenho algumas questões que ainda não percebi bem pois não tenho muita experiência em criptografia/certificados, etc. Antes de meter mãos à massa, gostaria de perceber as coisas a um nível "superior", saber o que estou a fazer. Pelo que vejo, usam-se dois esquemas criptográficos, 1) Encriptação assimétrica, RSA, no acesso ao webservice, ou seja, um esquema de chave pública + chave privada de ambas as entidades, estas chaves são geralmente fixas 2) Encriptação simétrica, AES, chave única e que muda a cada request A filosofia é então usar o RSA (chave publica/privada) para enviar em cada request a chave simétrica (AES) que muda constantemente (random), e os dados confidenciais propriamente ditos são encriptados com a chave simétrica (ou ambas na prática). Usam um esquema para mandar a chave de outro. Agora a parte que ainda não entendi bem, a chave publica das Finanças vem no tal certificado, no de testes por exemplo ? E ao instalarmos o certificado no nosso PC o Windows cria/anexa ao mesmo certificado a nossa chave privada ? Ou tudo isso é independente do certificado, que tem outra finalidade, e as finanças além do certificado enviam uma chave pública ? Outra questão é a forma de envio, vejo que todos estão a optar pelo construção e post do xml, e que não conseguiram usar service reference, que me pareceria a forma mais apropriada. Já alguém percebeu quais são as dificuldades nesse aspecto ? Agradecia alguma "luz" sobre o assunto. Obrigado desde já. Edited January 8, 2013 at 12:57 PM by Alfa
Xendro Posted January 8, 2013 at 02:35 PM Report #490136 Posted January 8, 2013 at 02:35 PM Olá a todos, ......... Outra questão é a forma de envio, vejo que todos estão a optar pelo construção e post do xml, e que não conseguiram usar service reference, que me pareceria a forma mais apropriada. Já alguém percebeu quais são as dificuldades nesse aspecto ? ........ Referes-te a usar Soap/proxy com base no ficheiro WSDL ? Se é isso tambem gostaria de perceber. Nunca tinha usado web services e pouco percebo do assunto .... mas com a recente e rapida experiencia adquirida as tentativas de me ligar com o auxilio do WSDL falharam porque o software que uso não reconhece a estrutura do WSDL da AT. (funciona perfeitamente com outros webservices).
joaoMoreira Posted January 8, 2013 at 03:45 PM Report #490144 Posted January 8, 2013 at 03:45 PM Alguém consegue anular um documento submetido? ao tentar faze-lo, retorna-me o erro -99 - erro inesperado! :s
RaulLima Posted January 8, 2013 at 05:46 PM Report #490160 Posted January 8, 2013 at 05:46 PM (edited) Alguém consegue anular um documento submetido? ao tentar faze-lo, retorna-me o erro -99 - erro inesperado! :s Bem, ao menos dá o erro -99 🙂 Eu não tenho a certeza, mas penso que quando foi inserido o campo InvoiceStatus, se manda-se-mos 2 vezes o mesmo documento mas um com "N" e outro com "A" no estado do documento, o 2º retornava "Documento duplicado". Se assim era, quer dizer que estão a mexer nisso.. Eles não respondem aos emails!! Coloquei essa questão já no início de Dezembro, novamente no fim do mês, e hoje tornei a mandar, e dizem sempre o mesmo.. relativamente a este tipo de assunto é encaminhado para os serviços competentes. Claro que não mando sempre o mesmo texto 🙂 vou acrescentando outras dúvidas. Edited January 8, 2013 at 05:50 PM by RaulLima
grbabus Posted January 9, 2013 at 08:54 AM Report #490277 Posted January 9, 2013 at 08:54 AM Bom dia, sou novo aqui no forum, mas gostaria de parabenizar o ótimo trabalho de todos vcs!!! . Bom antes de mas nada me deram a missão de criar um modulo para AT!!??, bom tive a ler um bocado a documentação deles e os posts de vcs e fiquem com umas duvidas: 1º como crio o CSR (Certificate Signing Request)? 2º como utilizo o TestesWebservices.pfx disponibilizados por eles ( username,password) 3 º copie uns códigos aqui de vcs (nomeadamente em vb.net) e só me retorna o erro (O servidor remoto devolveu um erro: (500) Erro interno de servidor.) no webresponse fica assim <?xml version='1.0' ?> <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'> <env:Body> <env:Fault> <faultcode>env:Client</faultcode> <faultstring>Internal Error</faultstring> </env:Fault> </env:Body> </env:Envelope> me ajudem tenho pouco tempo para entregar isso!!
jokimen Posted January 9, 2013 at 11:30 AM Report #490299 Posted January 9, 2013 at 11:30 AM Boas pessoal sou novo a programar em PHP e tenho tido problemas em conseguir por o módulo da AT a funcionar. Mas penso que o meu problema poderá estar relacionado com o facto de no pedido eu não enviar o certificado "TesteWebservices". Alguém me pode dar um exemplo de como o posso fazer? E já agora uma pergunta os campos H1 e H3 tém de ser válidos não pode ser algo de teste? Abraço
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