mruoppolo 14 Denunciar post Postado Novembro 16, 2015 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
ESerra 744 Denunciar post Postado Novembro 16, 2015 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
mruoppolo 14 Denunciar post Postado Novembro 16, 2015 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