Php 如何从不同的文件返回curl的响应
我正在创建一个插件,我想在另一个文件上执行curl。这是我的插件代码 这是我的插件文件代码Php 如何从不同的文件返回curl的响应,php,wordpress,curl,woocommerce,Php,Wordpress,Curl,Woocommerce,我正在创建一个插件,我想在另一个文件上执行curl。这是我的插件代码 这是我的插件文件代码 $book_packet_array = json_encode($book_packet_array, true); if (!empty($book_packet_array)) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://localhost/courier/verify.php"); curl_se
$book_packet_array = json_encode($book_packet_array, true);
if (!empty($book_packet_array)) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/courier/verify.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $book_packet_array); //Post Fields
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$output = curl_exec($ch);
echo $output;
}
$response = json_decode($output,true);
if($response['returnStatus']['code'] == '0200') {
echo 'Success';
}
else {
echo 'There is any error';
}
在不同的服务器上有一个verify.php文件,代码如下
<?php
$data = json_decode(file_get_contents('php://input'), true);
$book_packet_array = json_encode($data, true);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_URL => "https://apis.courier.com/production/v1/cod/create-order",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $book_packet_array,
]);
$result = curl_exec($curl);
curl_close($curl);
echo $result;
( when I echo the $result it gives me this output )
{"returnStatus":{"code":"0200","status":"SUCCESS","message":"The operation was successful.","requestTime":"20210526144552945","responseTime":"20210526144553496"},"bookingReply":{"result":"Your generated CN is: 774317702382"}}
?>
php curl返回正确的响应,但问题是如何将$result响应返回到实际的插件文件
请提供帮助您是否尝试过简单地输出
verify.php的响应?您如何将数据“返回”到HTTP客户机,并在其他脚本中发出请求,例如通过浏览器访问这些脚本?在这种情况下,您可能会echo
或打印它吗…?那么,您认为这里有什么不同呢?@El_Vanja Yes,(当我回显$result时,它会给我这个输出){“returnStatus”:{“code”:“0200”,“status”:“SUCCESS”,“message”:“操作成功”,“requestTime”:“2021052614452945”,“responseTime”:“20210526144553496”},“bookingReply”:{“result”:“您生成的CN是:774317702382”}问题是如何将$result响应返回到实际的插件文件。如果您的verify.php响应了其cURL请求的结果,那么您已经将数据传递回了调用点。因此,在您的插件脚本文件中,您现在应该将它放在$output
中–如果您的代码实际上进入了if
块。(剩下的部分,$response=json_decode($output,true);
等等。除此之外,if块当然没有什么意义。您不想“将此消息发回”,只想接收您在那里发出的HTTP请求的结果。正如我们一直告诉您的那样,它应该可以按照您现在已经拥有的方式正常工作(假设它实际上进入了前面提到的if分支,我们无法确定,只有您可以通过一些基本的调试来了解这一点。)