Reboot Posted November 10, 2022 at 08:55 AM Report Share #628084 Posted November 10, 2022 at 08:55 AM (edited) Em 09/11/2022 às 19:11, albertosilva disse: (copy/paste integral de uma resposta já enviada hoje) Faz parte das regras de participação nos forums verificar se determinada questão foi levantada, o problema de um pode já ter sido de outros, e compreendendo que este tópico já vai muito longo - o mecanismo de pesquisa no tópico é uma ferramenta poderosa combinada a com a ordenação dos resultados - nestes casos de suspeita de indisponibilidade dos serviços da AT, de testes ou produtivo, normalmente basta olhar para as últimas mensagens para confirmar que há mais afetados, para não fazermos "todos" a mesma pergunta. Sobre esta questão em particular, tendo também constatado o mesmo problema ontem à noite, e confirmado aqui que não era um exclusivo meu, tal como outros também estou à espera que alguém publique uma mensagem a dizer que o ambiente já está de novo disponível, enquanto também vou testando quando posso. Olá Alberto, sim eu sei mas já tinham passado algumas horas e como costume a informação da AT é o mesmo que falar com uma parede. P.S. continua na mesma. Edited November 10, 2022 at 09:11 AM by Reboot Link to comment Share on other sites More sharing options...
snsz Posted November 10, 2022 at 10:20 AM Report Share #628090 Posted November 10, 2022 at 10:20 AM Bom dia, Alguém também com problemas na comunicação de séries na porta de testes? Cmpts Link to comment Share on other sites More sharing options...
Miguel Frias Posted November 10, 2022 at 10:21 AM Report Share #628091 Posted November 10, 2022 at 10:21 AM On 11/10/2022 at 10:20 AM, snsz said: Bom dia, Alguém também com problemas na comunicação de séries na porta de testes? Cmpts O serviço de testes continua em baixo Link to comment Share on other sites More sharing options...
snsz Posted November 10, 2022 at 10:25 AM Report Share #628092 Posted November 10, 2022 at 10:25 AM Em 10/11/2022 às 09:21, Miguel Frias disse: O serviço de testes continua em baixo Obrigado. Sabe há quanto tempo +- está em baixo? Link to comment Share on other sites More sharing options...
Miguel Frias Posted November 10, 2022 at 10:26 AM Report Share #628093 Posted November 10, 2022 at 10:26 AM >24 h Link to comment Share on other sites More sharing options...
snsz Posted November 10, 2022 at 10:27 AM Report Share #628094 Posted November 10, 2022 at 10:27 AM Em 10/11/2022 às 09:26, Miguel Frias disse: >24 h Muito obrigado pela informação, continuação de um bom dia. Link to comment Share on other sites More sharing options...
cmatos Posted November 10, 2022 at 10:41 AM Report Share #628096 Posted November 10, 2022 at 10:41 AM Em 10/11/2022 às 10:27, snsz disse: Muito obrigado pela informação, continuação de um bom dia. Bom dia, e a comunicação efetiva de séries por webservice (422) está a funcionar? Link to comment Share on other sites More sharing options...
Miguel Frias Posted November 10, 2022 at 10:42 AM Report Share #628097 Posted November 10, 2022 at 10:42 AM On 11/10/2022 at 10:41 AM, cmatos said: Bom dia, e a comunicação efetiva de séries por webservice (422) está a funcionar? A consulta está, por isso o webservice em si está operacional 1 Report Link to comment Share on other sites More sharing options...
cmatos Posted November 10, 2022 at 10:51 AM Report Share #628098 Posted November 10, 2022 at 10:51 AM Em 10/11/2022 às 10:42, Miguel Frias disse: A consulta está, por isso o webservice em si está operacional Obrigado. Link to comment Share on other sites More sharing options...
cmatos Posted November 10, 2022 at 10:59 AM Report Share #628099 Posted November 10, 2022 at 10:59 AM Uma pergunta: O método de encriptação do Nonce, Senha e Data é o mesmo das Guias certo? É que está sempre a dar-me erro de autenticação. Link to comment Share on other sites More sharing options...
Reboot Posted November 10, 2022 at 01:27 PM Report Share #628103 Posted November 10, 2022 at 01:27 PM Já está a funcionar. Link to comment Share on other sites More sharing options...
albertosilva Posted November 10, 2022 at 03:26 PM Report Share #628104 Posted November 10, 2022 at 03:26 PM Em 10/11/2022 às 10:59, cmatos disse: Uma pergunta: O método de encriptação do Nonce, Senha e Data é o mesmo das Guias certo? É que está sempre a dar-me erro de autenticação. É exatamente o mesmo, mas o "envelope" SOAP tem umas diferençazitas. Link to comment Share on other sites More sharing options...
albertosilva Posted November 10, 2022 at 08:48 PM Report Share #628111 Posted November 10, 2022 at 08:48 PM (edited) Para quem quiser utilizar um regex para validar a conformidade dos identificadores de uma série: (?:^(?!.*([._-])[._-]{1,})[A-Za-z0-9][A-Za-z0-9._-]{0,33}[A-Za-z0-9]$)|(?:^[A-Za-z0-9]{1,2}$) Podem testar aqui, deixei alguns exemplos de OK e de NOT_OK! https://regex101.com/r/6Qmaox/2 Classe helper em C# e teste (não unitário) public static class Helper { static Regex seriesRegex = new Regex("(?:^(?!.*([._-])[._-]{1,})[A-Za-z0-9][A-Za-z0-9._-]{0,33}[A-Za-z0-9]$)|(?:^[A-Za-z0-9]{1,2}$)"); public static bool IsSeriesIdentifierValid(string identifier) { return seriesRegex.IsMatch(identifier); } } public static class Testes { // para testar numa app do tipo ConsoleApplication static void TestStringIdentifiers() { Check("OK"); Check("A"); Check("AB"); Check("1"); Check("2022"); Check("ABC123"); Check("ABC-123"); Check("ABC-DE-123"); Check("ABC-DE.123"); Check("NOT_OK!"); Check("-"); Check("A -"); Check("-A"); Check("ABC - 123"); Check("ABC--123"); Check("ABC.- 123"); Check("ABC---123"); Check("ABC.-.123"); Check("ABC.--123"); void Check(string id) { var b = M2USalesV5SeriesManagementLib.Helper.IsSeriesIdentifierValid(id); if (b) Console.WriteLine($"'{id}' OK!"); else Console.WriteLine($"'{id}' NOT OK!"); } } } Edited November 10, 2022 at 09:11 PM by albertosilva Melhoramento 1 1 Report Link to comment Share on other sites More sharing options...
marcolopes Posted November 10, 2022 at 09:11 PM Report Share #628115 Posted November 10, 2022 at 09:11 PM On 11/10/2022 at 8:48 PM, albertosilva said: Para quem quiser utilizar um regex para validar a conformidade dos identificadores de uma série: (?:^(?!.*([._-])[._-]{1,})[A-Za-z0-9][A-Za-z0-9._-]{0,33}[A-Za-z0-9]$)|(?:^[A-Za-z0-9]{1,2}$) Podem testar aqui, deixei alguns exemplos de OK e de NOT_OK! https://regex101.com/r/6Qmaox/2 Não implementei... razão? O sistema da AT queixa-se na comunicação 😄 Nada melhor do que a "validação" da AT! 😄 2 Report The simplest explanation is usually the correct one JAVA Utilities: https://github.com/marcolopes/dma Link to comment Share on other sites More sharing options...
Sergio. Posted November 10, 2022 at 10:21 PM Report Share #628117 Posted November 10, 2022 at 10:21 PM Em 10/11/2022 às 21:11, marcolopes disse: Nada melhor do que a "validação" da AT! 😄 Nem mais.😁 Já agora e de acordo com a OCC vai cair ai um despacho a alargar o prazo dos PDFs sem assinatura para todo o ano de 2023 e adiar também o SAFT na contabilidade (existe muita gente que não quer ver isso a funcionar). Portugal no seu melhor.... Link to comment Share on other sites More sharing options...
Nuno Bagulho Marques Posted November 11, 2022 at 09:58 AM Report Share #628129 Posted November 11, 2022 at 09:58 AM Bom dia, Alguém sabe se a AT tem algum mecanismo no webservice para testar as credencias do portal? Gostava construir essa funcionalidade, para auxiliares os clientes mais "distraídos". Já o tenho feito com a comunicação das guias, mas não queria recorrer a esta operação, dados que agora iremos ter duas comunicações distintas. Obrigado Link to comment Share on other sites More sharing options...
Reboot Posted November 11, 2022 at 11:45 AM Report Share #628130 Posted November 11, 2022 at 11:45 AM Alguem aqui a desenvolver a chamada aos Webservices em iSeries/AS400? Link to comment Share on other sites More sharing options...
iznougudpt Posted November 11, 2022 at 11:53 AM Report Share #628131 Posted November 11, 2022 at 11:53 AM Em 11/11/2022 às 09:58, Nuno Bagulho Marques disse: Bom dia, Alguém sabe se a AT tem algum mecanismo no webservice para testar as credencias do portal? Gostava construir essa funcionalidade, para auxiliares os clientes mais "distraídos". Já o tenho feito com a comunicação das guias, mas não queria recorrer a esta operação, dados que agora iremos ter duas comunicações distintas. Obrigado Podes usar a consulta de séries com uma série qualquer fictícia. 1 Report Link to comment Share on other sites More sharing options...
Nuno Bagulho Marques Posted November 11, 2022 at 12:10 PM Report Share #628133 Posted November 11, 2022 at 12:10 PM Em 11/11/2022 às 11:53, iznougudpt disse: Podes usar a consulta de séries com uma série qualquer fictícia. Bem visto 🙂 Obrigado Link to comment Share on other sites More sharing options...
Pedro Alves Posted November 13, 2022 at 10:06 PM Report Share #628150 Posted November 13, 2022 at 10:06 PM Boas, É a primeira vez que vou integrar com a AT, pediram-me para consumir o webservice para comunicação das séries documentais. Estive a ler a documentação e no documento "Comunicação de Séries Documentais, Aspetos Genéricos" segui os requisitos para o SOAP header. Eis o que fiz hoje (com muita, mesmo muita pesquisa), isto está ok? 🤔 internal class SoapHeader { private string _pathCertificado = @".\certs\TesteWebservices.pfx"; private X509Certificate2 cert; private PublicKey publicKey; private byte[] chaveSimetrica; private string nonce = string.Empty; private string encryptedPassword = string.Empty; private string encryptedDataCreated = string.Empty; public SoapHeader() { cert = new X509Certificate2(_pathCertificado, "TESTEwebservice"); publicKey = cert.PublicKey; chaveSimetrica = CreateSymmetricKey(); nonce = Convert.ToBase64String(EncryptSymmetricKey(chaveSimetrica)); encryptedPassword = Convert.ToBase64String(EncryptDataWithSymmetricKey("MinhaPassword")); encryptedDataCreated = Convert.ToBase64String(EncryptDataWithSymmetricKey(GetDataCreated())); Console.WriteLine("Username: {0}", "999999999/1"); Console.WriteLine("Nonce: {0}", nonce); Console.WriteLine("Password: {0}", encryptedPassword); Console.WriteLine("Data Created: {0}", encryptedDataCreated); } private byte[] CreateSymmetricKey() { using (var aes = Aes.Create()) { aes.KeySize = 128; aes.BlockSize = 128; aes.Padding = PaddingMode.PKCS7; aes.Mode = CipherMode.ECB; aes.GenerateIV(); aes.GenerateKey(); return aes.Key; } } private byte[] EncryptSymmetricKey(byte[] input) { byte[] result; using (var rsa = RSA.Create()) { rsa.ImportRSAPublicKey(cert.GetRSAPublicKey()?.ExportRSAPublicKey(), out _); result = rsa.Encrypt(input, RSAEncryptionPadding.Pkcs1); } return result; } private byte[] EncryptDataWithSymmetricKey(string input) { byte[] result; byte[] data = Encoding.UTF8.GetBytes(input); using (var aes = Aes.Create()) { aes.Key = chaveSimetrica; result = aes.EncryptEcb(data, PaddingMode.PKCS7); } return result; } private string GetDataCreated() { NtpClient client = new NtpClient("ntp02.oal.ul.pt"); NtpClock clock = client.Query(); return clock.Now.ToString("yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture); } } Link to comment Share on other sites More sharing options...
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