Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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 将post/get请求发送到另一个站点而不离开当前站点_Php_Xml_Web Services_Curl - Fatal编程技术网

Php 将post/get请求发送到另一个站点而不离开当前站点

Php 将post/get请求发送到另一个站点而不离开当前站点,php,xml,web-services,curl,Php,Xml,Web Services,Curl,我正在开发一个付款确认模块。 当买家成功确认其付款时,网关会将其重定向到我的成功url,如下所示: 网关具有使用其事务验证url验证当前事务的设置,如下所示: 此url接受POST/GET请求并返回xml响应作为 <response> <status>Success</status> </response> 成功 或 失败 现在我的问题是,我如何在不离开我的站点的情况下将确认请求发送到网关,以便在成功验证响应时更新订单付款状态。作为一

我正在开发一个付款确认模块。 当买家成功确认其付款时,网关会将其重定向到我的成功url,如下所示:

网关具有使用其事务验证url验证当前事务的设置,如下所示:

此url接受POST/GET请求并返回xml响应作为

<response>
<status>Success</status>
</response>

成功


失败
现在我的问题是,我如何在不离开我的站点的情况下将确认请求发送到网关,以便在成功验证响应时更新订单付款状态。作为一种解决方案,我尝试向支付网关发送ajax请求,但可能是由于跨域请求限制,我无法这样做。他们是否有其他方法发送此请求并获得响应

好的,根据建议,我使用cURL成功地获得了响应:)

我的代码:

<?php

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://paymentgateway.com/epay/transverify.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);

$data = array(
'oid' => 'P01',
'amt' => '100',
'rid' => 'TXN3456'
);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$contents = curl_exec($ch);

curl_close($ch);

echo $contents;
?>

我现在只需要一件简单的事情,如何比较成功与失败的结果?返回的结果($contents)是xml数据吗?谢谢

使用



很简单,您得到了一个数组响应。

@NathanSrivi-ya当然,如果您能详细说明(使用gud示例代码)处理返回的xml数据,我将非常感谢您。:)此url显示404错误。改正url@NathanSrivi这只是一个示例url,不是真实的url,正如我在问题中所说,请求url返回xml数据作为响应,所以我的问题是如何从xml数据中提取成功或失败的响应值?Dipendra Gurung给我您的原始url。我可以发送一个清晰的脚本
<?php

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://paymentgateway.com/epay/transverify.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);

$data = array(
'oid' => 'P01',
'amt' => '100',
'rid' => 'TXN3456'
);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$contents = curl_exec($ch);

curl_close($ch);

echo $contents;
?>
<?php

$xml = simplexml_load_file($your url);

print_r($xml);

?>