2016-04-11 4 views
0

В настоящее время мы используем Ultracart для обратной связи xml с URL-адресом на нашем сервере. То, что я пытаюсь сделать, это получить этот xml и повернуть направо и отправить его на другую страницу. (У нас были проблемы с отправкой постбэк к нескольким источникам для проекта мы работаем.) Вот что я играл с:repost xml postback to another url

$xml = file_get_contents('php://input'); 
$url = 'https://destinationlink'; 


$post_data = array(
    "xml" => $xml, 
); 

$stream_options = array(
    'http' => array(
     'method' => 'POST', 
     'header' => "Content-type: application/x-www-form-urlencoded\r\n", 
     'content' => http_build_query($post_data), 
    ), 
); 
$context = stream_context_create($stream_options); 
$response = file_get_contents($url, null, $context); 

Я знаю, что я что-то важное здесь отсутствует ... Я думаю, я слишком долго смотрел на нее, и я не вижу проблемы ... наверное, что-то глупое просто.

ответ

0

Получается, что CURL был ответом здесь.

//URL where to send the data via POST 
$URL1 = 'http://destinationlink'; 

//the actual data 
$xml_data1 = file_get_contents('php://input'); 


    $ch1 = curl_init($URL1); 
    curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch1, CURLOPT_POST, 1); 
    curl_setopt($ch1, CURLOPT_HTTPHEADER, array('Content-Type: text/xml')); 
    curl_setopt($ch1, CURLOPT_POSTFIELDS, "$xml_data1"); 
    curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1); 
    $output1 = curl_exec($ch1); 
    curl_close($ch1); 

Это работает как шарм.

Я могу получить обратную передачу XML (php: // input), сделать разные блоки с этим кодом завивки на основе целевых URL-адресов и отправить информацию обо всех отдельных подключениях, которые мне нужны по одному.