• Revista PROGRAMAR: Já está disponível a edição #55 da revista programar. Faz já o download aqui!

cjulio

Utilizar Webservices da AT

7119 mensagens neste tópico

2 horas atrás, md mad disse:

Tanto quanto sei, para realizar testes (porto 701, endereço https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte), utiliza-se o certificado fornecido pelas finanças e não o do produtor de software (Teste Web Service). Qual o certificado que está a ser utilizado no request?

Se calhar é por aí!

Cumprimentos

 

Obrigado pela resposta,

Sim, tem razão  o certificado do produtor não é relevante para este caso, mas como copiei toda a pasta do que segue actualmente para os clientes acabei por ficar com o mesmo na pasta de desenvolvimento. (mal não faz).

Sim, estou a utilizar o certificado de testes. Disse que era válido até 17 março mas afinal é até 19 de março. (ainda está válido).

Mais alguma ideia? Há algo que tenha de ser mudado (nestes últimos 4 anos) no código que tenho em C# ?
(antes estava em VS2013 .net 3.5; agora está em VS2015 e já tentei com .net 3.5 e 4.5)

cps,

AS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
20 horas atrás, antseq disse:

Obrigado pela resposta,

Sim, tem razão  o certificado do produtor não é relevante para este caso, mas como copiei toda a pasta do que segue actualmente para os clientes acabei por ficar com o mesmo na pasta de desenvolvimento. (mal não faz).

Sim, estou a utilizar o certificado de testes. Disse que era válido até 17 março mas afinal é até 19 de março. (ainda está válido).

Mais alguma ideia? Há algo que tenha de ser mudado (nestes últimos 4 anos) no código que tenho em C# ?
(antes estava em VS2013 .net 3.5; agora está em VS2015 e já tentei com .net 3.5 e 4.5)

cps,

AS

Caro AS,

Deparei-me com o mesmo problema e a solução é adicionar esta linha (que afetará todas as chamadas):

System.Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Ssl3 Or Net.SecurityProtocolType.Tls

Cumprimentos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
4 horas atrás, fegf disse:

Caro AS,

Deparei-me com o mesmo problema e a solução é adicionar esta linha (que afetará todas as chamadas):

System.Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Ssl3 Or Net.SecurityProtocolType.Tls

Cumprimentos.

 

Obrigado pela sugestão,

Já havia tentado, de qualquer forma voltei a tentar agora mesmo e continua a dar "A ligação subjacente foi fechada: Erro inesperado ao enviar."

do que vejo no código, a aplicação "aborta" (exception) na primeira linha (request.GetRequestStream), nem sequer chega a enviar nada ao servidor da AT, é como se o servidor da AT não estivesse lá !?

Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();

Por acaso hoje tive oportunidade de colocar num cliente, este mesmo utilitário de 2013 (VS2013), acabado de compilar com o VS2015 e em modo "Produção" funcionou a primeira (e apenas tem "SecurityProtocolType.Ssl3"), portanto o ser em VS2015 não é o motivo e mais uma vez não percebo o porque de não funcionar em ambiente de "Testes".

É a mesma aplicação, só dois IFs alteram o comportamento "Produção" / "Testes":

if (argTESTE){
	EnderecoWebService = new Uri("https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte");
} 
else {
	EnderecoWebService = new Uri("https://servicos.portaldasfinancas.gov.pt:401/sgdtws/documentosTransporte");
}

SoapAction = "https://servicos.portaldasfinancas.gov.pt/sgdtws/documentosTransporte/";

if (argTESTE){
	cert.Import("TesteWebServices.pfx", "TESTEwebservice", X509KeyStorageFlags.DefaultKeySet);
}
else {
	cert.Import("9999999999.pfx", "################", X509KeyStorageFlags.DefaultKeySet);
}

* já experimentei em computadores diferentes e sempre o mesmo erro em modo "Testes"

* já experimentei em máquinas virtuais com W7, W10 e sempre o mesmo erro em modo "Testes"

* já experimentei em casa (outra rede, outra net) e sempre o mesmo erro em mod "Testes"

Alguém consegue confirmar que o servidor de testes (....:701) da AT está a funcionar e a responder ?

Qualquer outra idéia também será bem-vinda. :).

Desde já obrigado.

Cps,

AS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Em 10/03/2017 às 21:38, antseq disse:

Alguém consegue confirmar que o servidor de testes (....:701) da AT está a funcionar e a responder ?

Experimentei mesmo agora e está a funcionar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
3 horas atrás, chesser disse:

Experimentei mesmo agora e está a funcionar.

Obrigado :)

Há qualquer coisa que me está a faltar ou falhar, só não faço a menor ideia do que será :(.

Continua a dar-me o mesmo erro na linha "Stream dataStream = request.GetRequestStream();"

Também encontrei no forum o mesmo problema reportado há alguns meses, só não encontrei foi a solução :( :

http://www.portugal-a-programar.pt/forums/topic/57734-utilizar-webservices-da-at/?do=findComment&comment=600976

http://www.portugal-a-programar.pt/forums/topic/57734-utilizar-webservices-da-at/?do=findComment&comment=600983

cps,
AS

Editado por antseq
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
3 horas atrás, antseq disse:

Obrigado :)

Há qualquer coisa que me está a faltar ou falhar, só não faço a menor ideia do que será :(.

Continua a dar-me o mesmo erro na linha "Stream dataStream = request.GetRequestStream();"

Também encontrei no forum o mesmo problema reportado há alguns meses, só não encontrei foi a solução :( :

http://www.portugal-a-programar.pt/forums/topic/57734-utilizar-webservices-da-at/?do=findComment&comment=600976

http://www.portugal-a-programar.pt/forums/topic/57734-utilizar-webservices-da-at/?do=findComment&comment=600983

cps,
AS

Boas,

Ainda não encontrei a solução, continuo com o mesmo problema, exactamente como o descreves.

Desisti, porque para já está a funcionar em produção, mas tb vou ter que encontrar solução, no mínimo para fazer alterações para o SAFT 1.04.

Se descrobrires algo e puderes partilhar (farei o mesmo), será bem-vindo...

Cps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
1 hora atrás, bugFree disse:

Boas,

Ainda não encontrei a solução, continuo com o mesmo problema, exactamente como o descreves.

Desisti, porque para já está a funcionar em produção, mas tb vou ter que encontrar solução, no mínimo para fazer alterações para o SAFT 1.04.

Se descrobrires algo e puderes partilhar (farei o mesmo), será bem-vindo...

Cps

 

Viva,

Obrigado.

Por um lado é bom saber que não sou o único com esta situação e que não sou o único a dar em doido para perceber o porque de funcionar em Produção e não funcionar em Testes.

Mal encontre a solução (se encontrar) ou se descobrir algo mais coloco aqui no forum, se entretanto alguém tiver mais sugestões ou vier a ter o mesmo problema por favor partilhem.

cps,

AS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Está a dar-me um erro e não consigo obter código AT:

"Ocorreu o seguinte erro ao comunicar o código de transporte do documento com a AT:

-9996

Comunicação sem resposta ou erro de comunicação!"

 

Este erro é só meu ou é problema mesmo da AT?

Melhores cumprimentos e obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Antseq e bugFree, se bem me lembro, por ocasião da AT lançar novos certificados para testes, apareceram aqui no forum algumas mensagens de colegas que não conseguiam pedir o código em Ambiente de Testes, com esse novos certificados. Penso que a solução (pelo menos para alguns... eu incluído) foi instalar o certificado na consola do windows (duplo clique em cima do ficheiro). Já sei que deverão estar a carregar o ficheiro no vosso programa (como eu também faço)... mas, pelo menos para aquela situação em particular, o problema ficou resolvido. Atenção: este procedimento não tinha de se fazer para funcionar em produção (que nunca deixou de funcionar).

Enfim, provavelmente não tem nada que ver com o v/ problema... mas não fará mal em experimentar, digo eu.

Editado por chesser
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
2 horas atrás, rangiku disse:

Este erro é só meu ou é problema mesmo da AT?

Hoje ainda não tive clientes a reportar problemas.

1

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
3 horas atrás, chesser disse:

Hoje ainda não tive clientes a reportar problemas.

Eu tive vários clientes a reportar e questionei outros que me indicaram que estava tudo bem.

Devia ser problemas da própria AT, porque depois ficou tudo a funcionar.

Obrigado pela resposta chesser.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
4 horas atrás, chesser disse:

Antseq e bugFree, se bem me lembro, por ocasião da AT lançar novos certificados para testes, apareceram aqui no forum algumas mensagens de colegas que não conseguiam pedir o código em Ambiente de Testes, com esse novos certificados. Penso que a solução (pelo menos para alguns... eu incluído) foi instalar o certificado na consola do windows (duplo clique em cima do ficheiro). Já sei que deverão estar a carregar o ficheiro no vosso programa (como eu também faço)... mas, pelo menos para aquela situação em particular, o problema ficou resolvido. Atenção: este procedimento não tinha de se fazer para funcionar em produção (que nunca deixou de funcionar).

Enfim, provavelmente não tem nada que ver com o v/ problema... mas não fará mal em experimentar, digo eu.

 

Viva,

Obrigado pela sugestão, mas já experimentei (*) e em princípio (*) está a dar o mesmo erro.

(*) ao experimentar fiquei com algumas dúvidas:
- deixo ficar na mesma o "TesteWebServices.pfx" juntamente (na pasta) com a aplicação?
- será necessário alterar esta linha "cert.Import("TesteWebServices.pfx", "TESTEwebservice", X509KeyStorageFlags.DefaultKeySet);" ?

Cps,

AS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
23 horas atrás, antseq disse:

Viva,

Obrigado pela sugestão, mas já experimentei (*) e em princípio (*) está a dar o mesmo erro.

(*) ao experimentar fiquei com algumas dúvidas:
- deixo ficar na mesma o "TesteWebServices.pfx" juntamente (na pasta) com a aplicação?
- será necessário alterar esta linha "cert.Import("TesteWebServices.pfx", "TESTEwebservice", X509KeyStorageFlags.DefaultKeySet);" ?

Cps,

AS

 

Da mesma forma que não funcionava :( sem qualquer explicação, HOJE passou a funcionar sem qualquer explicação :)

Do que fiz:
- ontem instalei o certificado "TesteWebServices.pfx" no Windows 10 com duplo-click, fiz diversas tentativas (SecurityProtocol) e sempre o mesmo erro.
- ontem como não resultou removi o certificado "TesteWebServices.pfx" do Windows 10 para voltar a situação inicial
- hoje estava em contacto com a AT a tentar descobrir pelo meu IP se chegava algo ao servidor deles e nada chegava.
- em simultâneo tentei fazer as alterações\combinações "ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls" que já tinha feito antes e passou a dar :)
- voltando a por "ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3" (que está a funcionar em "Produção" em diversos clientes), deixa de funcionar e nem chega a comunicar ao Servidor da AT (confirmado pelos mesmos).

Será que foi por adicionar e depois remover o certificado "TesteWebServices.pfx" e reiniciar o Windows 10 que desbloqueou a situação?
Ainda por explicar, porque em modo "ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3" não chega nada ao servidor da AT? quem bloqueia a comunicação?

* nunca pensei que um dia diria isto, mas da parte da AT foram mesmo rápidos a responder e a tentar encontrar onde estaria o problema.

Cps,

AS

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
23 horas atrás, antseq disse:

- deixo ficar na mesma o "TesteWebServices.pfx" juntamente (na pasta) com a aplicação?

- será necessário alterar esta linha "cert.Import("TesteWebServices.pfx", "TESTEwebservice", X509KeyStorageFlags.DefaultKeySet);" ?

Deixei ficar tudo exactamente como estava...

Seja como for, o actual certificado de testes expira no próximo Domingo, pelo que deverá estar para breve a nova versão (não deveria estar já disponível?)... poderá ser que com esse novo ficheiro o problema fique resolvido.

E já agora que se fala em expiração de certificados, convém não esquecer que a 18 de Novembro expira a chave pública... resta esperar que seja disponibilizada antes do dia 17 desse mês. :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
31 minutos atrás, antseq disse:

Será que foi por adicionar e depois remover o certificado "TesteWebServices.pfx" e reiniciar o Windows 10 que desbloqueou a situação?

Se calhar foi mesmo de reiniciar o Windows. Eu não tenho a instrução ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls e funciona.

O que interessa é que está a funcionar. Mas Domingo voltas ao mesmo e depois com o novo certificado já podes tirar as dúvidas.

Editado por chesser
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
1 minute ago, chesser said:

Se calhar foi mesmo de reiniciar o Windows. O que interessa é que está a funcionar. Mas Domingo voltas ao mesmo e depois com o novo certificado já podes tirar as dúvidas.

Continuo a achar contraproducente (e má práctica) escrever código que depende da instalação de um ou mais certificados no SISTEMA operativo :\\\\

1

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Já existe alguma forma de obter código AT pelo webservice para os fornecedores ou continua só para clientes?

Obrigado a todos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Em 15/03/2017 às 17:05, antseq disse:

Da mesma forma que não funcionava :( sem qualquer explicação, HOJE passou a funcionar sem qualquer explicação :)

Do que fiz:
- ontem instalei o certificado "TesteWebServices.pfx" no Windows 10 com duplo-click, fiz diversas tentativas (SecurityProtocol) e sempre o mesmo erro.
- ontem como não resultou removi o certificado "TesteWebServices.pfx" do Windows 10 para voltar a situação inicial
- hoje estava em contacto com a AT a tentar descobrir pelo meu IP se chegava algo ao servidor deles e nada chegava.
- em simultâneo tentei fazer as alterações\combinações "ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls" que já tinha feito antes e passou a dar :)
- voltando a por "ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3" (que está a funcionar em "Produção" em diversos clientes), deixa de funcionar e nem chega a comunicar ao Servidor da AT (confirmado pelos mesmos).

Será que foi por adicionar e depois remover o certificado "TesteWebServices.pfx" e reiniciar o Windows 10 que desbloqueou a situação?
Ainda por explicar, porque em modo "ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3" não chega nada ao servidor da AT? quem bloqueia a comunicação?

* nunca pensei que um dia diria isto, mas da parte da AT foram mesmo rápidos a responder e a tentar encontrar onde estaria o problema.

Cps,

AS

Boa tarde,

Hoje voltou a acontecer uma situação semelhante e numa versão com "ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls".

A única coisa que fiz foi instalar o certificado, instalei na pasta "Pessoal" e "Autoridades fidedignas", 1ª e 2ª opção. (também já tinha feito isto no 1º caso, mas pensei que não fosse necessário)

Não precisei de reiniciar, começou logo a funcionar.

Cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora