Jump to content
cjulio

Utilizar Webservices da AT

Recommended Posts

chesser
13 horas atrás, Filipe Csota disse:

-O ambiente de testes está a funcionar neste momento?

Experimentei mesmo agora obter um código de transporte, em ambiente de testes, e funcionou correctamente.

13 horas atrás, Filipe Csota disse:

Em ambiente de produção dá este erro:


Codigo: 54 - Não tem permissões para aceder a esta operação.

 

O utilizador que estás a usar para aceder à AT tem a respectiva permissão definida nos acessos da AT? Por exemplo, para ter acesso aos web services de comunicação de  documentos de transporte e de facturas é preciso ter os acessos WFA, WDT. Isto é configurado na Gestão de Utilizadores.

Share this post


Link to post
Share on other sites
Filipe Csota
1 hora atrás, chesser disse:

Experimentei mesmo agora obter um código de transporte, em ambiente de testes, e funcionou correctamente.

Estranho, agora não estou a conseguir obter informação nenhuma de retorno em ambiente de testes! Aqui fica o meu código em PHP a ver se existe algo que esteja a escapar...
 

		$Action = "https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte";
        $SoapAction = "https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte/";
        $certificado = AT_WEBSERVICE_SSL_DIR.'testes/ChaveCifraPublicaAT.cer';
        $cert_pem = AT_WEBSERVICE_SSL_DIR.'testes/pfxcert.pem'; 
        $key_pem  = AT_WEBSERVICE_SSL_DIR.'testes/pfxKey.pem';  
        $pass_cert = 'TESTEwebservice';
        $Username = "599999993/37";
        $Password = "testes1234";
        $nif_produtor = "599999993";

        $smkey = $this->gen_sim_key();
        $passw = $this->base64_encode_encrypt_aes_ecb_pkcs5pad ( $Password, $smkey );
        $nonce = $this->base64_encode_rsa_public_encrypt ( $smkey, $certificado );
        $created = $this->base64_encode_encrypt_aes_ecb_pkcs5pad ( gmdate ( 'Y-m-d\TH:i:s\.00\Z' ), $smkey );
        
        $link = 'https://servicos.portaldasfinancas.gov.pt/sgdtws/documentosTransporte/';
		$xml = '<?xml version="1.0" encoding="utf-8" standalone="no"?>
            <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>'.$Username.'</wss:Username>
                        <wss:Password>'.$passw.'</wss:Password>
                        <wss:Nonce>'.$nonce.'</wss:Nonce>
                        <wss:Created>'.$created.'</wss:Created>
                    </wss:UsernameToken>
                </wss:Security>
            </S:Header>
            <S:Body>
              ..
              ..';
              
              
 		$curl = curl_init($Action); 
        curl_setopt($curl, CURLOPT_FRESH_CONNECT, TRUE);
        curl_setopt($curl, CURLOPT_HTTPHEADER,array(
            'Content-Type:text/xml;Charset=UTF-8',
            'Accept: text/xml',
            'Cache-Control: no-cache',
            'SoapAction='.$SoapAction
        ));
        curl_setopt($curl, CURLOPT_URL, $Action);
        curl_setopt($curl, CURLOPT_SSLVERSION, 1);
        curl_setopt($curl, CURLOPT_VERBOSE, TRUE); 
        curl_setopt($curl, CURLOPT_AUTOREFERER, TRUE);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $xml);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($curl, CURLOPT_SSLCERT, $cert_pem);
        curl_setopt($curl, CURLOPT_SSLCERTTYPE, 'PEM');
        curl_setopt($curl, CURLOPT_SSLCERTPASSWD, $pass_cert);
        curl_setopt($curl, CURLOPT_SSLKEY, $key_pem);
        curl_setopt($curl, CURLOPT_SSLKEYPASSWD, $pass_cert);
        curl_setopt($curl, CURLOPT_SSLKEYTYPE, 'PEM');
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

		$response = curl_exec($curl);

 

Share this post


Link to post
Share on other sites
bugFree

Boa noite,

Estou a receber erro de comunicação.

ReturnCode 33

ReturnMessage

particle 2.1: in element {https://servicos.portaldasfinancas.gov.pt/sgdtws/documentosTransporte/}envioDocumentoTransporteRequestElem of type {https://servicos.portaldasfinancas.gov.pt/sgdtws/documentosTransporte/}StockMovement, found <CustomerAddress> (in default namespace), but next item should be AddressFrom

Alguém tem o mesmo erro?

Obrigado.


What's better: Coding solo or as part of a team?

A team means you have to fix someone else's bugs. Coding solo means you have to write all the bugs yourself.

Share this post


Link to post
Share on other sites
Filipe Csota
Em 21/02/2020 às 15:32, Filipe Csota disse:

Estranho, agora não estou a conseguir obter informação nenhuma de retorno em ambiente de testes! Aqui fica o meu código em PHP a ver se existe algo que esteja a escapar...
 


		$Action = "https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte";
        $SoapAction = "https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte/";
        $certificado = AT_WEBSERVICE_SSL_DIR.'testes/ChaveCifraPublicaAT.cer';
        $cert_pem = AT_WEBSERVICE_SSL_DIR.'testes/pfxcert.pem'; 
        $key_pem  = AT_WEBSERVICE_SSL_DIR.'testes/pfxKey.pem';  
        $pass_cert = 'TESTEwebservice';
        $Username = "599999993/37";
        $Password = "testes1234";
        $nif_produtor = "599999993";

        $smkey = $this->gen_sim_key();
        $passw = $this->base64_encode_encrypt_aes_ecb_pkcs5pad ( $Password, $smkey );
        $nonce = $this->base64_encode_rsa_public_encrypt ( $smkey, $certificado );
        $created = $this->base64_encode_encrypt_aes_ecb_pkcs5pad ( gmdate ( 'Y-m-d\TH:i:s\.00\Z' ), $smkey );
        
        $link = 'https://servicos.portaldasfinancas.gov.pt/sgdtws/documentosTransporte/';
		$xml = '<?xml version="1.0" encoding="utf-8" standalone="no"?>
            <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>'.$Username.'</wss:Username>
                        <wss:Password>'.$passw.'</wss:Password>
                        <wss:Nonce>'.$nonce.'</wss:Nonce>
                        <wss:Created>'.$created.'</wss:Created>
                    </wss:UsernameToken>
                </wss:Security>
            </S:Header>
            <S:Body>
              ..
              ..';
              
              
 		$curl = curl_init($Action); 
        curl_setopt($curl, CURLOPT_FRESH_CONNECT, TRUE);
        curl_setopt($curl, CURLOPT_HTTPHEADER,array(
            'Content-Type:text/xml;Charset=UTF-8',
            'Accept: text/xml',
            'Cache-Control: no-cache',
            'SoapAction='.$SoapAction
        ));
        curl_setopt($curl, CURLOPT_URL, $Action);
        curl_setopt($curl, CURLOPT_SSLVERSION, 1);
        curl_setopt($curl, CURLOPT_VERBOSE, TRUE); 
        curl_setopt($curl, CURLOPT_AUTOREFERER, TRUE);
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $xml);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($curl, CURLOPT_SSLCERT, $cert_pem);
        curl_setopt($curl, CURLOPT_SSLCERTTYPE, 'PEM');
        curl_setopt($curl, CURLOPT_SSLCERTPASSWD, $pass_cert);
        curl_setopt($curl, CURLOPT_SSLKEY, $key_pem);
        curl_setopt($curl, CURLOPT_SSLKEYPASSWD, $pass_cert);
        curl_setopt($curl, CURLOPT_SSLKEYTYPE, 'PEM');
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

		$response = curl_exec($curl);

 

Se alguém tiver um exemplo de código em PHP que me possa facultar seria otimo...

Share this post


Link to post
Share on other sites
John Doe

Bom dia a todos.

Estou a dar os primeiros passos na utilização de um Webservice da AT e precisava de uma pequena ajuda vossa.
A ideia seria testar a emissão de Guias de Transporte. Depois de ter procurado no e-finanças, não encontro (ou não sei gerar) o "meu" CSR (Certificate Signing Request).
Podem-me dizer como tenho de fazer?

Cumps.

Share this post


Link to post
Share on other sites
Vitor Pereira
3 horas atrás, John Doe disse:

Bom dia a todos.

Estou a dar os primeiros passos na utilização de um Webservice da AT e precisava de uma pequena ajuda vossa.
A ideia seria testar a emissão de Guias de Transporte. Depois de ter procurado no e-finanças, não encontro (ou não sei gerar) o "meu" CSR (Certificate Signing Request).
Podem-me dizer como tenho de fazer?

Cumps.

 

1º - Com o openssl, gerar uma chave para enviar para a AT:

openssl req -new -subj "/C=PT/ST=Distrito/L=Concelho/O=Empresa, Lda/OU=Departamento de Informatica/CN=999999990/emailAddress=geral@gera.pt" -newkey rsa:2048 -nodes -out 999999990.csr -keyout Chave-pessoal.key

 

O resultado deve ser copiado ( Copy/paste ) e colocado no site da AT para receberes o certificado 

 

Depois com o Certificado enviado da AT é preciso integrar o mesmo:

openssl pkcs12 -export -in 999999990.cer -inkey senha-pessoal.key -out 999999990.pfx
 

 

Share this post


Link to post
Share on other sites
John Doe
25 minutos atrás, Vitor Pereira disse:

 

1º - Com o openssl, gerar uma chave para enviar para a AT:

openssl req -new -subj "/C=PT/ST=Distrito/L=Concelho/O=Empresa, Lda/OU=Departamento de Informatica/CN=999999990/emailAddress=geral@gera.pt" -newkey rsa:2048 -nodes -out 999999990.csr -keyout Chave-pessoal.key

 

O resultado deve ser copiado ( Copy/paste ) e colocado no site da AT para receberes o certificado 

 

Depois com o Certificado enviado da AT é preciso integrar o mesmo:

openssl pkcs12 -export -in 999999990.cer -inkey senha-pessoal.key -out 999999990.pfx
 

 

Já criei a chave e enviei o pedido para a AT. Desde já, muito obrigado pela ajuda. Por vezes é só necessário uma ajuda destas para arrancar com o projecto.
Vou aguardar agora pela resposta deles.
Plataforma de testes, usas/usam o Postman?

 

Cumps.

Share this post


Link to post
Share on other sites
John Doe

Acabou de me dar um erro de "unable to write 'random state'", sendo que não percebo minimamente que erro é este. Alguém tem mais alguma ideia de como me ajudar?

Cumps.

Share this post


Link to post
Share on other sites
americob
1 hora atrás, John Doe disse:

Acabou de me dar um erro de "unable to write 'random state'", sendo que não percebo minimamente que erro é este. Alguém tem mais alguma ideia de como me ajudar?

Cumps.

Se bem me lembro tens de chamar a "Linha de Comandos" como Administrador.

Acho que foi assim que resolvi quando me deu essa mensagem.

  • Vote 1

Share this post


Link to post
Share on other sites
John Doe
14 horas atrás, americob disse:

Se bem me lembro tens de chamar a "Linha de Comandos" como Administrador.

Acho que foi assim que resolvi quando me deu essa mensagem.

Feito. Funcionou. Cheguei a procurar a solução, mas só via em Linux, não sei como não pensei nisso para Win. A documentação "acaba" nesta altura, há maneira de testar as funcionalidades do Webservice deles?

Cumps.

Edited by John Doe

Share this post


Link to post
Share on other sites
Vianney

Bom dia,

Alguém consegue communicar com sucesso com o servidor de teste (https://servicos.portaldasfinancas.gov.pt:700/fews/faturas)?

Eu tenho este erro:

<?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>

-- Desculpe se o português não é bom, usei a tradução do google --

Cumprimentos,

Share this post


Link to post
Share on other sites
John Doe
5 horas atrás, Vianney disse:

Bom dia,

Alguém consegue communicar com sucesso com o servidor de teste (https://servicos.portaldasfinancas.gov.pt:700/fews/faturas)?

Eu tenho este erro:

<?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>

-- Desculpe se o português não é bom, usei a tradução do google --

Cumprimentos,

Infelizmente não te consigo ajudar. Também estou a dar os primeiros passos com isto e não sei nem como testar.

Cumps

Share this post


Link to post
Share on other sites
Vitor Pereira
33 minutos atrás, John Doe disse:

Infelizmente não te consigo ajudar. Também estou a dar os primeiros passos com isto e não sei nem como testar.

Cumps

 

Todos os teste que faço são apenas em Ambiente de Produção, e esse funciona perfeitamente, mas pelo que vou lendo aqui, toda a gente se queixa que há muito tempo atrás que o Ambiente de Teste está sempre com problemas ou não funciona de todo

Share this post


Link to post
Share on other sites
Bruno Barbosa

Boa tarde a todas(os)

Desde hoje as instalações que temos em máquinas Linux estão a devolver o erro tipo " in <filename unknown>:0 |System.Net.WebException: Error getting response stream (Write: The authentication or decryption has failed.): SendFailure ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: The server stopped the handshake."

Alguém teve uma questão deste tipo? tenho a ideia que pode ser uma questão de actualizar o Mono, mas é um ambiente  que desconheço e não queria inventar muito.

obrigado

Share this post


Link to post
Share on other sites
Bruno Barbosa
16 horas atrás, Bruno Barbosa disse:

Boa tarde a todas(os)

Desde hoje as instalações que temos em máquinas Linux estão a devolver o erro tipo " in <filename unknown>:0 |System.Net.WebException: Error getting response stream (Write: The authentication or decryption has failed.): SendFailure ---> System.IO.IOException: The authentication or decryption has failed. ---> Mono.Security.Protocol.Tls.TlsException: The server stopped the handshake."

Alguém teve uma questão deste tipo? tenho a ideia que pode ser uma questão de actualizar o Mono, mas é um ambiente  que desconheço e não queria inventar muito.

obrigado

Caso alguém tenha tido esta questão, resolveu-se por si só

 

Share this post


Link to post
Share on other sites
John Doe

Bom dia, sou só eu que estou que estou com problemas em testar o webservice a partir do site?

Cumps.

Share this post


Link to post
Share on other sites
rukako

Alguem esta a ter este problema no site da AT?

 

 

Failure of Web Server bridge:

No backend server available for connection: timed out after 10 seconds or idempotent set to OFF or method not idempotent.

o webservice tambem não funciona

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>33</faultcode>
<faultstring>mismatched tag, expected hr at offset 241 of </faultstring>
<detail>sgdtws.gdgt</detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

Edited by rukako

Share this post


Link to post
Share on other sites
Jose Guerreiro

Por aqui tambem com erro

mismatched tag, expected hr at offset 241 of ...

:(

 

Share this post


Link to post
Share on other sites
Nuno Bagulho Marques

Bom dia

Um utilizador do software reportou o mesmo erro

33 mismatched tag, expected hr at offset 241 of ...

Como é hábito, isto deve resolver-se

Share this post


Link to post
Share on other sites
jteixeira48

O mesmo aqui:

33 mismatched tag, expected hr at offset 241 of ...

Share this post


Link to post
Share on other sites
João Andrade

Também estava com o mesmo ERRO.

Entretanto  ja esta resolvido. 

Share this post


Link to post
Share on other sites
George De Luca

Bom dia Caros Colegas,

Estou com problemas desde segunda-feira dia 9 de março com a conexão ao Webservice da AT.

Tem horas que funciona e depois para. Desde ontem a tarde dia 10 de março que deixou de funcionar novamente.

Mais algum colega com o mesmo problema?

Grato pela vossa atenção! ;)


Grato pela atenção,

George De Luca

www.deluca.eti.br

Share this post


Link to post
Share on other sites
karlynhuz

Os meus clientes também se queixam do mesmo problema com o Webservice das guias. Dia 9 e 10 funcionou bem de manhã mas à tarde estava a dar erro e hoje, dia 11, continua a dar erro. 

Há alguém que esteja a conseguir comunicar? Só para perceber se isto é um problema que afecte uns e outros não. 

Share this post


Link to post
Share on other sites
George De Luca
3 minutos atrás, karlynhuz disse:

Os meus clientes também se queixam do mesmo problema com o Webservice das guias. Dia 9 e 10 funcionou bem de manhã mas à tarde estava a dar erro e hoje, dia 11, continua a dar erro. 

Há alguém que esteja a conseguir comunicar? Só para perceber se isto é um problema que afecte uns e outros não. 

Exatamente igual ao que ocorreu comigo.

Muito obrigado pela informação! 

---

Para os colegas que precisarem, eu informei aos meus clientes com o texto a seguir, caso algum colega queira fazer o mesmo:

"Como informação, no caso de falhas ou dificuldades do site ou webservice da AT, as empresas poderão contatar a AT através do telefone 210 493 950 para que recebam o código de transporte.

Ao ligar para este telefone, terão que informar o NIF da empresa e a senha de contato telefónico.

Ao obter o número, o mesmo poderá ser escrito na GT em papel.

Para mais informações, consulte o link abaixo:

http://info.portaldasfinancas.gov.pt/pt/faturas/Pages/faqs-00263.aspx"

---

Entretanto, não sei se tal senha é a mesma da comunicação com do webservice.

Quanto ao erro, caso mais algum colega tenha alguma informação, deixe aqui no grupo, por favor.

Obrigado a todos!

 

 


Grato pela atenção,

George De Luca

www.deluca.eti.br

Share this post


Link to post
Share on other sites
americob

Acabei de testar comunicação de DT's e não deu qualquer problema, tanto em testes como em produção.

 

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.