Bruno Barbosa 1 Posted August 20, 2020 Report Share Posted August 20, 2020 Em 12/08/2020 às 12:32, JacsonPaz disse: Bom dia Eu testei com o novo certificado do ambiente de TESTES no webservices de TRANSPORTE e o erro continua (um pouco diferente do mencionado pelo colega). Response-Code: 500 <faultcode>33</faultcode> <faultstring>Falha comunicacao com Servidor de Autenticacao (500)</faultstring> Response-Code: 500 Encoding: ISO-8859-1 Content-Type: text/xml Headers: {connection=[close], content-type=[text/xml], Set-Cookie=[cpd83x3AvETSAw1U4VzyhVmift8nwq9oX+r7j6K4-FzI=v1U1yRg+mBFAf; Expires=Wed, 12-Aug-2020 13:22:05 GMT; Path=/], X-Backside-Transport=[FAIL FAIL]} Payload: <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://autenticacao.portaldasfinancas.gov.pt/services/ValidateCredencialService/2012/11" xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>33</faultcode> <faultstring>Falha comunicacao com Servidor de Autenticacao (500)</faultstring> <detail/></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope> boa tarde verifica se está a passar a chave na comunicação, os erros 500 que tive eram situações em que falhava esse conteudo na mensagem 55 minutos atrás, samuquinha disse: Não me recorda se reiniciei o servidor, mas em caso de dúvida... obrigado foi-se resolvendo Link to post Share on other sites
José Jorge Matos 0 Posted August 24, 2020 Report Share Posted August 24, 2020 (edited) Boa tarde, Uma dúvida para os colegas que programam em C#. Sempre que se instancia a classe X509Certificate2 é criado um ficheiro na pasta C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys. Por exemplo: X509Certificate2 cert = new X509Certificate2(certificado, password); Existe alguma forma de evitar que isso aconteça? Estou com problemas com o antivírus, que bloqueia a escrita na pasta que referi acima. Obrigado. JJM Edited August 24, 2020 by José Jorge Matos - Link to post Share on other sites
Popular Post kalin 25 Posted August 24, 2020 Popular Post Report Share Posted August 24, 2020 2 horas atrás, José Jorge Matos disse: Boa tarde, Uma dúvida para os colegas que programam em C#. Sempre que se instancia a classe X509Certificate2 é criado um ficheiro na pasta C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys. Por exemplo: X509Certificate2 cert = new X509Certificate2(certificado, password); Existe alguma forma de evitar que isso aconteça? Estou com problemas com o antivírus, que bloqueia a escrita na pasta que referi acima. Obrigado. JJM Podes ver mais informações sobre este assunto aqui https://snede.net/the-most-dangerous-constructor-in-net/ 3 Report Link to post Share on other sites
José Jorge Matos 0 Posted August 24, 2020 Report Share Posted August 24, 2020 43 minutos atrás, kalin disse: Podes ver mais informações sobre este assunto aqui https://snede.net/the-most-dangerous-constructor-in-net/ Obrigado. Link to post Share on other sites
MAbrantes 0 Posted September 3, 2020 Report Share Posted September 3, 2020 Alguém com problemas no envio? Não estou a conseguir comunicar há mais de meia hora. Link to post Share on other sites
jorang 27 Posted September 3, 2020 Report Share Posted September 3, 2020 4 minutos atrás, MAbrantes disse: Alguém com problemas no envio? Não estou a conseguir comunicar há mais de meia hora. Por aqui não houve qualquer erro na última hora, nem com faturas nem com docs de trasnporte. Link to post Share on other sites
Isabel Carvalho 0 Posted September 3, 2020 Report Share Posted September 3, 2020 1 hora atrás, MAbrantes disse: Alguém com problemas no envio? Não estou a conseguir comunicar há mais de meia hora. Boa tarde, também estamos com problemas com comunicação, mas não em todos os clientes e temos até clientes que só têm problemas com alguns postos de trabalho. Com que software trabalham? Link to post Share on other sites
MAbrantes 0 Posted September 3, 2020 Report Share Posted September 3, 2020 No meu caso está solucionado, fui verificar a data do certificado e estava expirado. Tudo operacional agora. Link to post Share on other sites
pedrokins 0 Posted September 3, 2020 Report Share Posted September 3, 2020 Boa tarde a todos. Após dois dias a navegar pelas primeiras páginas deste tópico a tentar implementar a comunicação de faturas à AT, sem sucesso, queria perguntar se alguém aqui tem um exemplo em C# ou .NET que esteja funcional? Já tentei pelo wsdl e já tentei contruir o pedido Raw pelo xml. Pelo wsdl não passo de "internal error", pelo xml não passo de um Erro 99. Alguém me consegue ajudar? Muito obrigado a todos. Link to post Share on other sites
Isabel Carvalho 0 Posted September 3, 2020 Report Share Posted September 3, 2020 6 horas atrás, jorang disse: Por aqui não houve qualquer erro na última hora, nem com faturas nem com docs de trasnporte. 6 horas atrás, jorang disse: Por aqui não houve qualquer erro na última hora, nem com faturas nem com docs de trasnporte. Boa tarde, Desde terça feira estamos novamente a ter problemas de comunicação com a AT. Mais alguém está a ter problemas? O erro que obtemos é o seguinte: "Web exception: The remote certificate is invalid according to the validation procedure. : The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. " Estamos a tentar perceber se se trata de um problema do lado da AT ou não. A verdade é que não acontece em todos os clientes, pelo menos para já. Cumprimentos, Isabel Carvalho Link to post Share on other sites
pedrokins 0 Posted September 4, 2020 Report Share Posted September 4, 2020 Em 22/03/2013 às 17:36, araujor disse: Boa tarde a todos, recentemente iniciei o desenvolvimento desta funcionalidade, já li e reli todos os posts deste tópico e com a a vossa ajuda já consegui fazer alguma coisa. Possuo o certificado de teste (TestesWebServices.pfx + a chave pública da AT) que solicitei junto da AT. Aqui está o meu código... Gerar o conteúdo.... private string GenerateXmlString() { StringBuilder sb = new StringBuilder(); sb.Append("<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">"); sb.Append("<S:Header>"); sb.Append("<wss:Security xmlns:wss=\"http://schemas.xmlsoap.org/ws/2002/12/secext/\">"); sb.Append("<wss:UsernameToken>"); sb.Append("<wss:Username>" + NifConta + "</wss:Username>"); sb.Append("<wss:Password>" + PassFinancasEncriptada + "</wss:Password>"); sb.Append("<wss:Nonce>" + ChaveSimetricaEncriptada + "</wss:Nonce>"); sb.Append("<wss:Created>" + DataCriacaoEncriptada + "</wss:Created>"); sb.Append("</wss:UsernameToken>"); sb.Append("</wss:Security>"); sb.Append("</S:Header>"); sb.Append("<S:Body>"); sb.Append("<ns2:RegisterInvoiceElem xmlns:ns2=\"http://servicos.portaldasfinancas.gov.pt/faturas/\">"); sb.Append("<TaxRegistrationNumber>" + "XXXXXXXXX" + "</TaxRegistrationNumber>"); sb.Append("<ns2:InvoiceNo>FT 1/1</ns2:InvoiceNo>"); sb.Append("<ns2:InvoiceDate>2012-05-05</ns2:InvoiceDate>"); sb.Append("<ns2:InvoiceType>FT</ns2:InvoiceType>"); sb.Append("<ns2:InvoiceStatus>N</ns2:InvoiceStatus>"); sb.Append("<CustomerTaxID>299999998</CustomerTaxID>"); sb.Append("<Line>"); sb.Append("<ns2:DebitAmount>100</ns2:DebitAmount>"); sb.Append("<ns2:Tax>"); sb.Append("<ns2:TaxType>IVA</ns2:TaxType>"); sb.Append("<ns2:TaxCountryRegion>PT</ns2:TaxCountryRegion>"); sb.Append("<ns2:TaxPercentage>23</ns2:TaxPercentage>"); sb.Append("</ns2:Tax>"); sb.Append("</Line>"); sb.Append("<DocumentTotals>"); sb.Append("<ns2:TaxPayable>23</ns2:TaxPayable>"); sb.Append("<ns2:NetTotal>100</ns2:NetTotal>"); sb.Append("<ns2:GrossTotal>123</ns2:GrossTotal>"); sb.Append("</DocumentTotals>"); sb.Append("</ns2:RegisterInvoiceElem>"); sb.Append("</S:Body>"); sb.Append("</S:Envelope>"); XmlDocument xc = new XmlDocument(); TextReader textReader = new StringReader(sb.ToString()); XDocument xmlDocument = Xdocument.Load(textReader); xmldocument.Save(Application.StartupPath + "\\tosend.xml"); return sb.ToString(); } método de cifragem de dados... void buildCredentials() { X509Certificate2 certCP = new X509Certificate2(); //certCP.Import(CaminhoCertificado, SenhaCertificado, X509KeyStorageFlags.DefaultKeySet); certCP.Import(CaminhoChavePublica); String publicKey = certCP.PublicKey.Key.ToXmlString(false); String DataCriacao = DateTime.Now.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.ff") + "Z"; RijndaelManaged rijndaelCipher = new RijndaelManaged(); rijndaelCipher.GenerateKey(); rijndaelCipher.Mode = CipherMode.ECB; rijndaelCipher.Padding = PaddingMode.PKCS7; string simetrickey = rijndaelCipher.Key.ToString(); Byte[] chaveSimetrica = rijndaelCipher.Key; SymmetricAlgorithm rijn = SymmetricAlgorithm.Create(); rijn.Key = rijndaelCipher.IV; rijn.IV = rijndaelCipher.IV; rijn.Mode = CipherMode.ECB; MemoryStream msPassFinancas = new MemoryStream(); CryptoStream csPassFinancas = new CryptoStream(msPassFinancas, rijn.CreateEncryptor(rijn.Key, rijn.IV), CryptoStreamMode.Write); using (StreamWriter swPassFinancas = new StreamWriter(csPassFinancas)) { swPassFinancas.Write(PassFinancas); } MemoryStream msDataCriacao = new MemoryStream(); CryptoStream csDataCriacao = new CryptoStream(msDataCriacao, rijn.CreateEncryptor(rijn.Key, rijn.IV), CryptoStreamMode.Write); using (StreamWriter swDataCriacao = new StreamWriter(csDataCriacao)) { swDataCriacao.Write(DataCriacao); } PassFinancasEncriptada = Convert.ToBase64String(msPassFinancas.ToArray()); DataCriacaoEncriptada = Convert.ToBase64String(msDataCriacao.ToArray()); RSACryptoServiceProvider AlgRSA = new RSACryptoServiceProvider(); AlgRSA.FromXmlString(publicKey); Byte[] Chave = AlgRSA.Encrypt(rijn.Key, false); ChaveSimetricaEncriptada = Convert.ToBase64String(Chave); } método de envio... public string send() { buildCredentials(); try { Uri EnderecoWebService = new Uri("https://servicos.portaldasfinancas.gov.pt:700/fews/faturas"); HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(EnderecoWebService); request.Headers.Add("SOAPAction", "http://servicos.portaldasfinancas.gov.pt/faturas/RegisterInvoice"); X509Certificate2 cert = new X509Certificate2(); // cert.Import(CaminhoChavePublica); //<----- 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 oRequest = GenerateXmlString(); 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(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); string responseFromServer = reader.ReadToEnd(); reader.Close(); dataStream.Close(); response.Close(); return responseFromServer; } catch (WebException ex) { if (ex.Status == WebExceptionStatus.ProtocolError) { WebResponse resp = ex.Response; StreamReader sr = new StreamReader(resp.GetResponseStream()); return sr.ReadToEnd(); } else { return ex.Message; } } } Peço a alguém que me ajude, com este código, neste momento está me a retornar um erro 99 a dizer que o utilizador não ta registado no portal, o engraçado é que as credenciais que tou a usar permitem me entrar no portal efaturas mas ao efectuar o teste através do portal retorna-me exactamente o erro que apanho no protótipo (utilizador não registado)... Desde já obrigado por perderem tempo a olhar pra isto... Este é o código que estou a utilizar e não me parece dar qualquer erro com a comunicação. E em baixo o XML que que estou a enviar. <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Header> <wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext"> <wss:UsernameToken> <wss:Username>NIF/USER</wss:Username> <wss:Password>s5NJQQ....</wss:Password> <wss:Nonce>ZxXOJgzEHDnNX58Z84y6w0z+NuXXiJp....</wss:Nonce> <wss:Created>aJ/iTo7IjH.....</wss:Created> </wss:UsernameToken> </wss:Security> </S:Header> <S:Body> <ns2:RegisterInvoiceElem xmlns:ns2="http://servicos.portaldasfinancas.gov.pt/faturas/"> <TaxRegistrationNumber>NIF</TaxRegistrationNumber> <ns2:InvoiceNo>FR 2020SA1/1</ns2:InvoiceNo> <ns2:InvoiceDate>2020-09-02</ns2:InvoiceDate> <ns2:InvoiceType>FR</ns2:InvoiceType> <ns2:InvoiceStatus>N</ns2:InvoiceStatus> <CustomerTaxID>999999990</CustomerTaxID> <Line> <ns2:DebitAmount>100</ns2:DebitAmount> <ns2:Tax> <ns2:TaxType>IVA</ns2:TaxType> <ns2:TaxCountryRegion>PT</ns2:TaxCountryRegion> <ns2:TaxPercentage>23</ns2:TaxPercentage> </ns2:Tax> </Line> <DocumentTotals> <ns2:TaxPayable>23</ns2:TaxPayable> <ns2:NetTotal>100</ns2:NetTotal> <ns2:GrossTotal>123</ns2:GrossTotal> </DocumentTotals> </ns2:RegisterInvoiceElem> </S:Body> </S:Envelope> O XML de resposta que recebo é este, mas quando testo o serviço em https://faturas.portaldasfinancas.gov.pt/testarLigacaoWebService.action tudo esta a funcionar bem. O que me parece ser um erro do meu lado. Alguém me consegue ajudar a tentar perceber o que está errado? <?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><ns0:RegisterInvoiceResponseElem xmlns:ns0="http://servicos.portaldasfinancas.gov.pt/faturas/"><ReturnCode>-99</ReturnCode><ReturnMessage>Erro de sistema. Por favor volte a tentar mais tarde.</ReturnMessage></ns0:RegisterInvoiceResponseElem></env:Body></env:Envelope> Obrigado desde já! Link to post Share on other sites
davdew05 21 Posted September 4, 2020 Report Share Posted September 4, 2020 17 horas atrás, Isabel Carvalho disse: Boa tarde, Desde terça feira estamos novamente a ter problemas de comunicação com a AT. Mais alguém está a ter problemas? O erro que obtemos é o seguinte: "Web exception: The remote certificate is invalid according to the validation procedure. : The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. " Estamos a tentar perceber se se trata de um problema do lado da AT ou não. A verdade é que não acontece em todos os clientes, pelo menos para já. Cumprimentos, Isabel Carvalho Bom dia, Uma pergunta qual o sistema operativo que tem ? se for XP, tem que atualizar manualmente alguns certificados de root. No meu caso utilizei estes: https://drive.google.com/file/d/1VrOrEaXFiOkpa-d1hU-_c8qsE_g-Lfas/view?usp=sharing Espero ter ajudado. Link to post Share on other sites
Isabel Carvalho 0 Posted September 4, 2020 Report Share Posted September 4, 2020 12 minutos atrás, davdew05 disse: Bom dia, Uma pergunta qual o sistema operativo que tem ? se for XP, tem que atualizar manualmente alguns certificados de root. No meu caso utilizei estes: https://drive.google.com/file/d/1VrOrEaXFiOkpa-d1hU-_c8qsE_g-Lfas/view?usp=sharing Espero ter ajudado. Bom dia, obrigada pela resposta, mas não é esse problema. Estamos a falar de vários sistemas operativos, em centenas de clientes que comunicavam até ontem, e deixaram quase todos de comunicar. Link to post Share on other sites
ezio 2 Posted September 4, 2020 Report Share Posted September 4, 2020 18 horas atrás, Isabel Carvalho disse: Boa tarde, Desde terça feira estamos novamente a ter problemas de comunicação com a AT. Mais alguém está a ter problemas? O erro que obtemos é o seguinte: "Web exception: The remote certificate is invalid according to the validation procedure. : The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. " Estamos a tentar perceber se se trata de um problema do lado da AT ou não. A verdade é que não acontece em todos os clientes, pelo menos para já. Cumprimentos, Isabel Carvalho Bom dia Temos o mesmo problema. Algumas máquinas funcionam em outras não. Num servidor 12 funciona, numa windows 10 funciona e noutra não. ambas são actualizadas com o 1903. Link to post Share on other sites
davdew05 21 Posted September 4, 2020 Report Share Posted September 4, 2020 5 horas atrás, Isabel Carvalho disse: Bom dia, obrigada pela resposta, mas não é esse problema. Estamos a falar de vários sistemas operativos, em centenas de clientes que comunicavam até ontem, e deixaram quase todos de comunicar. Neste vários sistemas operativos tem a certeza que têm os certificados actualizados? E o certificados da aplicação não terá caducado? Sei que são perguntas estúpidas, mas as vezes pode acontecer Link to post Share on other sites
pjmvc 14 Posted September 7, 2020 Report Share Posted September 7, 2020 Em Julho tive o mesmo problema num Windows 2008 e foi necessário actualizar o seguinte certificado do Windows: Global Chambersign Root 2008 Foi exportado de outro Windows e importado para o 2008 e tem a data de expiração de 31/07/2038. Pode ser que seja um problema semelhante... Link to post Share on other sites
ezio 2 Posted September 7, 2020 Report Share Posted September 7, 2020 4 horas atrás, pjmvc disse: Em Julho tive o mesmo problema num Windows 2008 e foi necessário actualizar o seguinte certificado do Windows: Global Chambersign Root 2008 Foi exportado de outro Windows e importado para o 2008 e tem a data de expiração de 31/07/2038. Pode ser que seja um problema semelhante... até agora resolvi-o como aqui indicadohttps://genopro.com/ssl/ 2 Report Link to post Share on other sites
pedrokins 0 Posted September 8, 2020 Report Share Posted September 8, 2020 Em 04/09/2020 às 08:18, pedrokins disse: Este é o código que estou a utilizar e não me parece dar qualquer erro com a comunicação. E em baixo o XML que que estou a enviar. <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> <S:Header> <wss:Security xmlns:wss="http://schemas.xmlsoap.org/ws/2002/12/secext"> <wss:UsernameToken> <wss:Username>NIF/USER</wss:Username> <wss:Password>s5NJQQ....</wss:Password> <wss:Nonce>ZxXOJgzEHDnNX58Z84y6w0z+NuXXiJp....</wss:Nonce> <wss:Created>aJ/iTo7IjH.....</wss:Created> </wss:UsernameToken> </wss:Security> </S:Header> <S:Body> <ns2:RegisterInvoiceElem xmlns:ns2="http://servicos.portaldasfinancas.gov.pt/faturas/"> <TaxRegistrationNumber>NIF</TaxRegistrationNumber> <ns2:InvoiceNo>FR 2020SA1/1</ns2:InvoiceNo> <ns2:InvoiceDate>2020-09-02</ns2:InvoiceDate> <ns2:InvoiceType>FR</ns2:InvoiceType> <ns2:InvoiceStatus>N</ns2:InvoiceStatus> <CustomerTaxID>999999990</CustomerTaxID> <Line> <ns2:DebitAmount>100</ns2:DebitAmount> <ns2:Tax> <ns2:TaxType>IVA</ns2:TaxType> <ns2:TaxCountryRegion>PT</ns2:TaxCountryRegion> <ns2:TaxPercentage>23</ns2:TaxPercentage> </ns2:Tax> </Line> <DocumentTotals> <ns2:TaxPayable>23</ns2:TaxPayable> <ns2:NetTotal>100</ns2:NetTotal> <ns2:GrossTotal>123</ns2:GrossTotal> </DocumentTotals> </ns2:RegisterInvoiceElem> </S:Body> </S:Envelope> O XML de resposta que recebo é este, mas quando testo o serviço em https://faturas.portaldasfinancas.gov.pt/testarLigacaoWebService.action tudo esta a funcionar bem. O que me parece ser um erro do meu lado. Alguém me consegue ajudar a tentar perceber o que está errado? <?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><ns0:RegisterInvoiceResponseElem xmlns:ns0="http://servicos.portaldasfinancas.gov.pt/faturas/"><ReturnCode>-99</ReturnCode><ReturnMessage>Erro de sistema. Por favor volte a tentar mais tarde.</ReturnMessage></ns0:RegisterInvoiceResponseElem></env:Body></env:Envelope> Obrigado desde já! Bom dia mais uma vez! Desculpem voltar ao mesmo...mas faça continuo a nao conseguir comunicar e a nao perceber o que está a acontecer....olhando para este código alguém consegue detetar o que me poderá estar a falhar? Comunicação de faturas À AT.... Link to post Share on other sites
jorang 27 Posted September 8, 2020 Report Share Posted September 8, 2020 (edited) 3 horas atrás, pedrokins disse: Bom dia mais uma vez! Desculpem voltar ao mesmo...mas faça continuo a nao conseguir comunicar e a nao perceber o que está a acontecer....olhando para este código alguém consegue detetar o que me poderá estar a falhar? Comunicação de faturas À AT.... Não sei se estará relacionado com o erro ou não, mas as faturas são documentos a crédito e, por isso, deve ser usado o ns2:CreditAmount e não o ns2:DebitAmount. Edited September 8, 2020 by jorang Link to post Share on other sites
Samuel 0 Posted September 8, 2020 Report Share Posted September 8, 2020 Alguém com problemas em usar o webservice de produção dos documentos de transporte? Estou a obter um erro 33 com a string: "Servidor de Autenticacao Indisponivel"" Link to post Share on other sites
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