Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
A hospedagem é na locaweb, o nome do certificado está alterado com o msmo nome na aplicação e na pasta ssl, a página tem ssl !
Está ocorrendo 2 erros ao enviar os dados para Cielo:
Warning: curl_error(): 18 is not a valid cURL handle resource
Warning: curl_error(): 19 is not a valid cURL handle resource
Alguem sabe porque está ocorrendo esses erros ?
include.php
// Envia requisição
function httprequest($paEndereco, $paPost){
$sessao_curl = curl_init();
curl_setopt($sessao_curl, CURLOPT_URL, $paEndereco);
curl_setopt($sessao_curl, CURLOPT_FAILONERROR, true);
// CURLOPT_SSL_VERIFYPEER
// verifica a validade do certificado
curl_setopt($sessao_curl, CURLOPT_SSL_VERIFYPEER, true);
// CURLOPPT_SSL_VERIFYHOST
// verifica se a identidade do servidor bate com aquela informada no certificado
curl_setopt($sessao_curl, CURLOPT_SSL_VERIFYHOST, 2);
// CURLOPT_SSL_CAINFO
// informa a localização do certificado para verificação com o peer
curl_setopt($sessao_curl, CURLOPT_CAINFO, getcwd() .
"/ssl/parreiraschip.crt");
curl_setopt($sessao_curl, CURLOPT_SSLVERSION, 3);
// CURLOPT_CONNECTTIMEOUT
// o tempo em segundos de espera para obter uma conexão
curl_setopt($sessao_curl, CURLOPT_CONNECTTIMEOUT, 40);
// CURLOPT_TIMEOUT
// o tempo máximo em segundos de espera para a execução da requisição (curl_exec)
curl_setopt($sessao_curl, CURLOPT_TIMEOUT, 40);
// CURLOPT_RETURNTRANSFER
// TRUE para curl_exec retornar uma string de resultado em caso de sucesso, ao
// invés de imprimir o resultado na tela. Retorna FALSE se há problemas na requisição
curl_setopt($sessao_curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($sessao_curl, CURLOPT_POST, true);
curl_setopt($sessao_curl, CURLOPT_POSTFIELDS, $paPost );
$resultado = curl_exec($sessao_curl);
curl_close($sessao_curl);
if ($resultado)return $resultado;
}return curl_error($sessao_curl);
}
}
pagamento.php
<?php
if(isset($_POST["formaPagamento"])) {
if($_POST["formaPagamento"] == "B") {
$pedido_id = $_GET["pedido_id"];
require_once("MySql/easyCRUD/FormaPagamento.class.php");
$formaPagamento = new FormaPagamento();
$formaPagamento->criar($pedido_id, NULL, $_POST["formaPagamento"], NULL, NULL, -1);
require_once("MySql/easyCRUD/Pedido.class.php");
$pedido = new Pedido();
$pedido->atualizar_status($pedido_id, -1);
echo "<script>window.location = 'http://www.parreiraschip.com/pedidos.php';</script>";
}
else {
require_once("MySql/easyCRUD/Pedido.class.php");
$pedido = new Pedido();
$pedido_id = $_GET["pedido_id"];
$valor_pedido = $pedido->valor_total_pedido($pedido_id);
$pagar = isset($_POST["pagar"]);
if($pagar) {
require_once("Cielo/includes/include.php");
$Pedido = new PedidoCielo();
if($_POST["codigoBandeira"] == "visaelectron")
$_POST["codigoBandeira"] = "visa";
else if($_POST["codigoBandeira"] == "maestro")
$_POST["codigoBandeira"] = "mastercard";
$tentarAutenticar = $_POST["tentarAutenticar"];
$Pedido->formaPagamentoBandeira = $_POST["codigoBandeira"];
if($_POST["formaPagamento"] != "A" && $_POST["formaPagamento"] != "1")
{
$Pedido->formaPagamentoProduto = $_POST["tipoParcelamento"];
$Pedido->formaPagamentoParcelas = $_POST["formaPagamento"];
}
else
{
if($_POST["formaPagamento"] == "A")
$tentarAutenticar = "sim";
$Pedido->formaPagamentoProduto = $_POST["formaPagamento"];
$Pedido->formaPagamentoParcelas = 1;
}
$Pedido->dadosEcNumero = LOJA;
$Pedido->dadosEcChave = LOJA_CHAVE;
$Pedido->capturar = $_POST["capturarAutomaticamente"];
//$Pedido->autorizar = $_POST["indicadorAutorizacao"];
$Pedido->autorizar = "2";
if($_POST["formaPagamento"] == "A")
$Pedido->autorizar = "2";
$Pedido->dadosPortadorNumero = $_POST["cartaoNumero"];
$Pedido->dadosPortadorVal = $_POST["anoCartaoValidade"] . $_POST["mesCartaoValidade"];
// Verifica se Código de Segurança foi informado e ajusta o indicador corretamente
if ($_POST["cartaoCodigoSeguranca"] == null || $_POST["cartaoCodigoSeguranca"] == "")
{
$Pedido->dadosPortadorInd = "0";
}
else if ($Pedido->formaPagamentoBandeira == "mastercard")$Pedido->dadosPortadorInd = "1";
}$Pedido->dadosPortadorInd = "1";
}
$Pedido->dadosPortadorCodSeg = $_POST["cartaoCodigoSeguranca"];
$Pedido->dadosPortadorToken = null;
$Pedido->dadosPedidoSoftDescriptor = null;
$Pedido->gerarToken = "false";
$Pedido->dadosPedidoNumero = $_POST["pedido_id"];
$Pedido->dadosPedidoValor = $_POST["produto"];
$Pedido->urlRetorno = ReturnURL();
// ENVIA REQUISIÇÃO SITE CIELO
if($tentarAutenticar == "sim") // TRANSAÇÃO
{
$objResposta = $Pedido->RequisicaoTransacao(true);
}$objResposta = $Pedido->RequisicaoTid();
$Pedido->tid = $objResposta->tid;
$Pedido->pan = $objResposta->pan;
$Pedido->status = $objResposta->status;
$objResposta = $Pedido->RequisicaoAutorizacaoPortador();
}
$Pedido->tid = $objResposta->tid;
$Pedido->pan = $objResposta->pan;
$Pedido->status = $objResposta->status;
$urlAutenticacao = "url-autenticacao";
$Pedido->urlAutenticacao = $objResposta->$urlAutenticacao;
echo "------>". $objResposta->pan ."<-------";$StrPedido = $Pedido->ToString();
$_SESSION["pedidos"]->append($StrPedido);
if($tentarAutenticar == "sim") // TRANSAÇÃO
{
echo '<script type="text/javascript">
window.location.href = "' . $Pedido->urlAutenticacao . '"
</script>';
}</script>';
}
}
}
}require_once("MySql/easyCRUD/Pedido.class.php");
$pedido = new Pedido();
$pedido_id = $_GET["pedido_id"];
$valor_pedido = $pedido->valor_total_pedido($pedido_id);
}
?>
erro na linha 71 -> return curl_error($sessao_curl);Creio que curl_error precise estar antes de curl_close. Experimente mover curl_close para depois do if/else e veja se funciona
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Start tag expected, '<' not found in /home/storage/b/c4/b1/parreiraschip/public_html/Cielo/includes/pedido.php on line 223
Warning: simplexml_load_string() [function.simplexml-load-string]: error setting certificate verify locations: in /home/storage/b/c4/b1/parreiraschip/public_html/Cielo/includes/pedido.php on line 223
Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/storage/b/c4/b1/parreiraschip/public_html/Cielo/includes/pedido.php on line 223
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : Start tag expected, '<' not found in /home/storage/b/c4/b1/parreiraschip/public_html/Cielo/includes/pedido.php on line 223
Warning: simplexml_load_string() [function.simplexml-load-string]: error setting certificate verify locations: in /home/storage/b/c4/b1/parreiraschip/public_html/Cielo/includes/pedido.php on line 223
Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in /home/storage/b/c4/b1/parreiraschip/public_html/Cielo/includes/pedido.php on line 223
A linha 223 é return simplexml_load_string($vmResposta);
public function Enviar($vmPost, $transacao)
{
//$this->logger->logWrite("ENVIO: " . $vmPost, $transacao);
// ENVIA REQUISIÇÃO SITE CIELO
$vmResposta = httprequest(ENDERECO, "mensagem=" . $vmPost);
//$this->logger->logWrite("RESPOSTA: " . $vmResposta, $transacao);
//VerificaErro($vmPost, $vmResposta);
return simplexml_load_string($vmResposta);
}
descobri o erro. Na resposta ao enviar a cielo me enviou a seguinte mensagem:
error setting certificate verify locations: CAfile: /home/storage/b/c4/b1/parreiraschip/public_html/ssl/VeriSignClass3PublicPrimaryCertificationAuthority-G5.crt CApath: none 1057990547
Mas o caminho está correto !
Acou sendo problema com o nome da extensão, estava em minusculo e era em maiúsculo e as credenciais.
Aparentemente isso não tem nada a ver com SSL. Você deve ter passado um parâmetro errado, que não é o retorno de curl_init.
Mostre o código e aponta a linha onde o erro ocorre