Ir para o conteúdo
cyrusmoney

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

Mensagens Recomendadas

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
cyrusmoney

Informação extra sobre servidor :

CURL Version: 7.38.0

CURL SSL Version: OpenSSL/1.0.1e

PHP Version: 5.5.31

Editado por cyrusmoney

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Editado por Alltech

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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?

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.