知道为什么这个功能没有重定向到paypal.com而是我停留在同一页面上? curl在服务器上激活,安全模式关闭,openbasedir也关闭。
function curl_post($url, array $post = NULL, array $options = array())
{
$defaults = array(
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_URL => $url,
CURLOPT_FRESH_CONNECT => 1,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_FORBID_REUSE => 1,
CURLOPT_TIMEOUT => 4,
CURLOPT_POSTFIELDS => http_build_query($post)
);
$ch = curl_init();
curl_setopt_array($ch, ($options + $defaults));
if( ! $result = curl_exec($ch))
{
trigger_error(curl_error($ch));
}
curl_close($ch);
return $result;
}
curl_post("https://www.paypal.com/cgi-bin/webscr",$_POST);
知道我做错了什么吗?
答案 0 :(得分:2)
发出卷曲请求后:
foreach ($parameters as $key => $value) {
$requestParams[] = $key . '=' . $value;
}
$requestParams = implode ('&', $requestParams);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestParams);
curl_setopt($ch, CURLOPT_RETURNTRANSFER);
curl_setopt( $ch, CURLOPT_AUTOREFERER, true);
$result = curl_exec($ch);
您应该获得确切的网址,以了解应将您重定向到何处:
$location = curl_getinfo($ch)['redirect_url'];
然后重定向:
header('Location: '. $location);
答案 1 :(得分:0)
cURL只是一个用于启动和触发HTTP和FTP请求的库。 您的代码只是向PayPal服务器发送 HTTP POST 请求。
要重定向用户,请发送位置标头(在任何输出之前!):
header('Location: https://www.paypal.com/...');