Всем привет, кто может помочь решить проблему. Нужен работающий код XML отчета для подтверждения заказа Вот есть код, но он не хочет работать. Что в нем необходимо подправить. Подскажите, очень нужна помощь.
<?PHP
$pass="poiu1234";
// Пароль для доступа к XML генератору, который указан в настройках кампании
if ($_POST['pass'] != md5($pass) )
die('<?xml version="1.0"?><error>no confirm pass</error>');
$res = '';
preg_match_all("/<item>(.*)<\/item>/Uis", $_POST['xml'], $items);
foreach($items[1] as $oid)
{
// вместо getOrderById вам нужно прописать
// свою функцию, которая получает данные из БД
$order = getOrderById($oid);
$res .= '<item>';
$res .= '<id>' . $oid . '</id>';
$res .= '<status>' . $order['status'] . '</status>';
$res .= '<price>' . $order['price'] . '</price>';
$res .= '</item>';
}
$res = '<?xml version="1.0"?><items>' . $res . '</items>';
echo $res;
// пример функции получения данных из БД
function getOrderById($oid)
{
$status = 2;
$price = 0;
// тут предполагается что конект к базе уже есть
$res = mysql_query('SELECT * FROM `table_order` WHERE `id`= ' . $oid . ' LIMIT 1');
$row = mysql_fetch_assoc($res);
$status = $row['status'];
// состояние запрошенного заказа
// status:
// done (или 1) - подтвержден
// wait (или 2) - в ожидании (в процессе обработки)
// cancel (или 3) - отклонён
$price = $row['cost'];
// стоимость товара/услуги.
// нужно при типе цели "Процент с продаж",
// в цели "Фиксированная оплата" можно в отправлять 0 или не отправлять это поле вовсе
return array(
'status' => $status,
'price' => $price);
}
?> пишет no confirm pass я так понимаю что-то не так с этой строкой
if ($_POST['pass'] != md5($pass) ) При правильной работе, код должен формировать отчет на подобии такого
<?xml version="1.0">
<items>
<item>
<id>12345</id>
<status>1</status>
<price>57.50</price>
</item>
<item>
<id>2345678</id>
<status>wait</status>
</item>
<item>
<id>88088</id>
<status>done</status>
<price>200</price>
</item>
<item>
<id>333999</id>
<status>cancel</status>
<price>0</price>
</item>
</items>