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:
Código :
(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.
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:
Código :
<?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) );
}
$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.