使用CURL - 发布和重定向帮助

时间:2011-06-13 11:41:49

标签: php post curl

我现在一直在撞墙几个小时 - 这可能是我错过的非常明显的事情!

我正在尝试使用CURL连接到支付服务提供商(PSP),发布数据并关注帖子,以便用户实际上最终访问PSP的网站。

使用以下内容:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://psp.com/theirpage');
curl_setopt($ch, CURLOPT_REFERER,  "http://mysite.com/mypage");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
curl_setopt($ch, CURLOPT_POST, 1);
$result=curl_exec($ch);
curl_close($ch);

这成功连接,验证我传递的数据,但不是将用户重定向到PSP,而是在我的网站上加载HTML。安全模式已关闭,open_basedir为空。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

CURL会执行内部重定向,它不会对查看curl脚本的用户产生任何影响。请记住,付款是由您的服务器而非用户计算机进行的,因此期望会话对用户的工作不正确。 cURL'是浏览器'。

如果您只想在通过cURL付款后进行重定向,则必须通过header()或使用window.location之类的JS进行重定向。

答案 1 :(得分:0)

curl请求是从您的服务器发出的,因此您的服务器正在接收响应页面。无法从服务器发起请求并让客户端收到响应。将HTML从您的站点返回给用户(正如您所做的那样),或者使用Javascript从客户端的浏览器发出请求。希望有所帮助