Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从不同的文件返回curl的响应_Php_Wordpress_Curl_Woocommerce - Fatal编程技术网

Php 如何从不同的文件返回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

我正在创建一个插件,我想在另一个文件上执行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_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分支,我们无法确定,只有您可以通过一些基本的调试来了解这一点。)