Jump to content
cyrusmoney

Autoridade Tributária - Problemas na comunicação Webservice

Recommended Posts

cyrusmoney

Já tentei usar o código do utilizador eskiso.

Primeiro pensei que era o meu servidor a bloquear o pedido. Da me a sensação que o pedido não é feito de todo.

Não importa se faço para o 401 ou para o 701 o erro é sempre o mesmo.

Tenho o seguinte erro ao tentar conectar webservice:

Unknown SSL protocol error in connection to servicos.portaldasfinancas.gov.pt:701 35

Já tentei várias versões do código e nunca:

<?php
$SoapAction = "https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte/";
//$SoapAction = "https://servicos.portaldasfinancas.gov.pt:401/sgdtws/documentosTransporte/";
$Action = "https://servicos.portaldasfinancas.gov.pt:701/sgdtws/documentosTransporte";
//Action = "https://servicos.portaldasfinancas.gov.pt:401/sgdtws/documentosTransporte";
$cert_pem = 'pfxcert.pem'; //Caminho completo para o pfxcert.pem ou so o nome se estiver na mesma pasta
$key_pem  = 'pfxKey.pem'; //Caminho completo para o pfxKey.pem ou so o nome se estiver na mesma pasta
$pass_cert = 'TESTEwebservice';
$curl = curl_init(trim($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, trim($Action));
		    curl_setopt($curl, CURLOPT_SSLVERSION, 3);
		    curl_setopt($curl, CURLOPT_VERBOSE, TRUE); // para ver o que se passa...
		    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); // o certificado em formato PEM (.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); 
		    $info = curl_getinfo($curl);
		    print_r( $response );
		    print_r( $info );

           if (FALSE === $response) {
               print_r( curl_error($curl) );
               print_r( curl_errno($curl) );
           }

(tirei propositadamente o $xml do código mas não importa dá sempre o mesmo erro)

Agradecia de saber se alguém tem solução para este problema que pudesse ajudar mesmo resolver o problema pagando. Mas precisava mesmo de saber qual o problema e solução.

Desde já muito obrigado.

Share this post


Link to post
Share on other sites
cyrusmoney

Informação extra sobre servidor :

CURL Version: 7.38.0

CURL SSL Version: OpenSSL/1.0.1e

PHP Version: 5.5.31

Edited by cyrusmoney

Share this post


Link to post
Share on other sites
cyrusmoney

Obrigado

Não iria criar um topico sem pesquisar duas ou tres semanas sobre o assunto neste forum.

Share this post


Link to post
Share on other sites
janota
Em 29/04/2016 às 09:30, cyrusmoney disse:

Obrigado

Não iria criar um topico sem pesquisar duas ou tres semanas sobre o assunto neste forum.

viva,

tenho o mesmo problema, chegaste a a resolver?

Share this post


Link to post
Share on other sites
Alltech

Tenta adicionar estas linhas de codigo:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, 0);

Se não funcionar adiciona torca isto:

curl_setopt($curl, CURLOPT_POST, 1);

por isto:

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

 

ALLTECH

Edited by Alltech

Share this post


Link to post
Share on other sites
bugmen
Em 13/12/2017 às 15:18, Alltech disse:

Tenta adicionar estas linhas de codigo:


curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, 0);

Se não funcionar adiciona torca isto:


curl_setopt($curl, CURLOPT_POST, 1);

por isto:


curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

 

ALLTECH

Obrigado desde já pela sua partilha @Alltech

Em ambiente de testes não consigo comunicar faturas com sucesso (fiz as devidas adaptações às url).

 

Numa abordagem como a do seu código por CURL, tenho sempre ou erro "Unknown SSL protocol error in connection to servicos.portaldasfinancas.gov.pt:700"  ou "Could not connect to host"

ou se fizer a implementação através de soap client :

"particle 2.1: in element {http://servicos.portaldasfinancas.gov.pt/faturas/}RegisterInvoiceElem of type {http://servicos.portaldasfinancas.gov.pt/faturas/}RegisterInvoiceType, found <InvoiceNo> (in default namespace), but next item should be {http://servicos.portaldasfinancas.gov.pt/faturas/}InvoiceNo"

Segui as indicações que foi colocando mas sem sucesso.

O que acha que poderá estar a falhar?

Share this post


Link to post
Share on other sites
Bodak

Bom dia,

Desde as cinco da manhã que estamos com problemas a enviar dados para a AT. Mais alguém com o mesmo problema hoje?

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.