Лично я не вижу много проблем из этого кода. Ваша идея использования CURL в основном верна для большинства приложений.
Я проверил ваш код на моем локальном сервере и могу без проблем получить параметры POST. Я дам вам код, который я использовал:
<?php
// The page that initiates the CURL request
$data = array(
'price' => 'A',
'desc' => 'B',
'qtty' => 'C'
);
$url = "https://api.zbx1425.tk:8953/testing/showsuper.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
var_dump($response);
return $url;
curl_close($ch);
?>
<?php
// The showsuper.php page that receives that
var_dump($_POST);
?>
И вот результат, который я получил:
string(101) "array(3) { ["price"]=> string(1) "A" ["desc"]=> string(1) "B" ["qtty"]=> string(1) "C" } "
Так что я думаю, что проблема может быть где-то еще. Например, вы используете for-each для элементов корзины, но перезаписываете данные $. Я не знаю о вашем заявлении, поэтому не могу дать решение, но, возможно, ваша страница отправляет данные не в правильном формате.