将发布/获取请求发送到另一个站点而不离开当前站点

时间:2013-08-16 09:32:33

标签: php xml web-services curl

我正在开发付款确认模块。 当买家成功确认付款时,网关会将他/她重定向到我的成功网址:

http://mysite.com/success.php?oid=P01&amt=100&refId=TXN3456

网关可以使用其交易验证网址验证当前交易:

https://paymentgateway.com/epay/transverify.php?oid=P01&amt=100&refId=TXN3456

此url接受POST / GET请求并以

的形式返回xml响应
<response>
<status>Success</status>
</response>

<response>
<status>Failed</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数据?谢谢!

1 个答案:

答案 0 :(得分:0)

使用simplexml_load_file

<?php

$xml = simplexml_load_file($your url);

print_r($xml);

?>

只是你有一个数组响应。