Как передать данные с mysite.com на anothersite.com? - PullRequest
1 голос
/ 08 апреля 2020

У моего клиента есть веб-сайт (mysite.com), который мне необходим для передачи данных (название, цена, количество) продукта на другой сайт (anothersite.com) для обработки платежа. Можно ли сделать это безопасно без использования API woo-commerce?

Например:

Я использовал следующий код, но не могу получить значение на другом сайте сайта $ _POST.

foreach( WC()->cart->get_cart() as $cart_item ){

    $product = wc_get_product( $cart_item['data'] );        
    $asAttributes = $product->get_attributes();     

    $data = array(
    'price' => $product->get_price(),
    'desc' => $product->get_description(),
    'qtty' => $cart_item['quantity']
    );
}   

$url = "anothersite.com";

$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);
return $url;
curl_close($ch);

Обратите внимание: я могу получить данные, используя параметры URL, но они не защищены, так как они видны в URL. Мне нужен совет о том, как я могу выполнить sh это безопасное обращение?

Спасибо.

1 Ответ

0 голосов
/ 08 апреля 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...