我现在一直在撞墙几个小时 - 这可能是我错过的非常明显的事情!
我正在尝试使用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为空。
我做错了什么?
答案 0 :(得分:0)
CURL会执行内部重定向,它不会对查看curl脚本的用户产生任何影响。请记住,付款是由您的服务器而非用户计算机进行的,因此期望会话对用户的工作不正确。 cURL'是浏览器'。
如果您只想在通过cURL付款后进行重定向,则必须通过header()
或使用window.location
之类的JS进行重定向。
答案 1 :(得分:0)
curl
请求是从您的服务器发出的,因此您的服务器正在接收响应页面。无法从服务器发起请求并让客户端收到响应。将HTML从您的站点返回给用户(正如您所做的那样),或者使用Javascript从客户端的浏览器发出请求。希望有所帮助