我的客户有一个网站(mysite.com),我需要将产品的数据(名称,价格,数量)传递到另一个网站(anothersite.com),以便处理付款。 不使用woo-commerce API是否可以安全地做到这一点?
例如:
我使用了以下代码,但无法在另一个站点$ _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中可见,因此并不安全。我需要有关如何安全完成此请求的建议吗?
谢谢。
答案 0 :(得分:0)
我个人无法从此代码中看到很多问题。您对于大多数应用程序使用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用于购物车项目,但是您覆盖了$ data。我不知道您的应用程序,因此无法提供解决方案,但也许您的页面未以正确的格式发送数据。