репост XML постбэк на другой URL

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

$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), создать различные блоки с помощью этого curl-кода на основе целевых URL-адресов и отправить информацию по всем отдельным соединениям, которые мне нужны, по одному.

0

Другие решения

Других решений пока нет …