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


Using CURL - Post and redirect help

我已经用头撞墙好几个小时了,很明显我错过了一些东西!

我正试图使用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为空。

我做错了什么?

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

如果你只是想在通过cURL付款后重定向,你必须通过header()或使用一些类似window.location的JS。

curl请求是从您的服务器发出的,因此您的服务器正在接收响应页面。没有办法从服务器启动请求并让客户端接收响应。要么从您的网站向用户返回HTML(就像您正在做的那样),要么使用Javascript从客户端的浏览器发出请求。希望对有所帮助