Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mruoppolo

URL Encode com cURL

Recommended Posts

Olá, tudo bem?

 

Eu preciso enviar um token dentro de um xml para um URL utilizando o cURL, porém, esse xml tem o caractere + e me falaram que eu preciso utilizar o url_encode() pra isso.

 

O código é o seguinte:

$string = <<<XML
<?xml version="1.0" encoding="ISO-8859-1" ?> 
<requisicao-transacao id="f094958b-3b68-4c0b-9e68-3137f24fb308" versao="1.2.1">
<dados-portador>
<codigo-token>/IofGB16J+V46NcfEjFzjy9D5xiyl5njnf3OjSGlpe0=</codigo-token> 
</dados-portador> 
</requisicao-transacao>
XML;

//Envia a transação para a Cielo
$ch = curl_init();
    flush();
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,  'mensagem=' . $string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_SSLVERSION, 4);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_FAILONERROR, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_TIMEOUT, 40);
    $string = curl_exec($ch);
    curl_close($ch);
    $xml = simplexml_load_string($string);

Onde eu coloco esse url_encode??

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não faz muito sentido isto, veja a linha:

curl_setopt($ch, CURLOPT_POSTFIELDS, 'mensagem=' . $string);

Isto dai seria basicamente a mesma coisa que criar um textarea chamado mensagem, colocar dentro dele o conteúdo da variável $string e depois disparar para a URL que está contida na variável $url. Você usa url_encode/decode quando vai transacionar dados usando $_GET o que não é o caso.

 

De toda sorte, se for o caso:

curl_setopt($ch, CURLOPT_POSTFIELDS, 'mensagem=' . url_encode($string));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então ESerra, eu coloquei esse url_encode, porém, ele não retorna nada, quando eu coloco este código aqui, pra ver o que é o retorno, não vem nada:

foreach ($xml as $dados) {

foreach($dados->children()->children() as $child){

  echo $child->getName() . ": " . $child ."<br>";

  }

}

Ele não retorna nada, o estranho é que isto é uma integração com a cielo e eu uso o mesmo código de cURL para enviar as requisições, esse ai só envia a requisição de pagamento recorrente e não funciona de maneira nenhuma, ele nem retorna um erro nem nada, ele simplesmente não funciona.

 

Muito estranho isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.