taland
Новичок
paypal: post send with discount
Дело вот в чем:
При клике на кнопку покупки продукта на нашей странице должен отработать скрипт подсчета скидки для потенциального клиента. По получиной информации формируется post запрос на paypal.
Если скидку вписывать в форму на стороне клиента, то всякий сможет ее поменять.
Поэтому принял решение использовать curl:
function curlGetPage($path, $user_agent, $referer, $header=array(), $post=array())
{
if(!extension_loaded('curl')) return false;
$curl_res = curl_init();
curl_setopt($curl_res, CURLOPT_URL, $path);
curl_setopt($curl_res, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($curl_res, CURLOPT_VERBOSE, 1);
curl_setopt($curl_res, CURLOPT_USERAGENT, $user_agent);
curl_setopt($curl_res, CURLOPT_REFERER, $referer);
curl_setopt($curl_res, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl_res, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl_res, CURLOPT_SSL_VERIFYHOST, true);
if(count($header)>0)
{
curl_setopt($curl_res, CURLOPT_HEADER, 1);
curl_setopt($curl_res, CURLOPT_HTTPHEADER, $header);
}
else
{
curl_setopt($curl_res, CURLOPT_HEADER, 0);
curl_setopt($curl_res, CURLOPT_HTTPHEADER, '');
}
if(count($post)>0)
{
curl_setopt($curl_res, CURLOPT_POST, 'application/x-www-form-urlencoded');
curl_setopt($curl_res, CURLOPT_POSTFIELDS, implode('&',$post));
}
$page = curl_exec($curl_res);
curl_close($curl_res);
return $page;
}
$post = array();
$post[] = 'cmd=_s-xclick';
$post[] = 'hosted_button_id=DRFM9MQ7FD53L';
$post[] = 'discount_rate=10';
$header = array();
curlGetPage('https://www.sandbox.paypal.com/cgi-bin/webscr', $_SERVER['HTTP_USER_AGENT'], $_SERVER['SERVER_NAME'], $header, $post);
Но вот проблема: при загрузке страницы paypal просит sign up.
Что делать - ума не приложу. Думаю, что проблема в том что referer'ом является моя страница.
Поскажите, пожалуйста, господа как поступить! может есть другое решение для paypal.
Дело вот в чем:
При клике на кнопку покупки продукта на нашей странице должен отработать скрипт подсчета скидки для потенциального клиента. По получиной информации формируется post запрос на paypal.
Если скидку вписывать в форму на стороне клиента, то всякий сможет ее поменять.
Поэтому принял решение использовать curl:
function curlGetPage($path, $user_agent, $referer, $header=array(), $post=array())
{
if(!extension_loaded('curl')) return false;
$curl_res = curl_init();
curl_setopt($curl_res, CURLOPT_URL, $path);
curl_setopt($curl_res, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($curl_res, CURLOPT_VERBOSE, 1);
curl_setopt($curl_res, CURLOPT_USERAGENT, $user_agent);
curl_setopt($curl_res, CURLOPT_REFERER, $referer);
curl_setopt($curl_res, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl_res, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl_res, CURLOPT_SSL_VERIFYHOST, true);
if(count($header)>0)
{
curl_setopt($curl_res, CURLOPT_HEADER, 1);
curl_setopt($curl_res, CURLOPT_HTTPHEADER, $header);
}
else
{
curl_setopt($curl_res, CURLOPT_HEADER, 0);
curl_setopt($curl_res, CURLOPT_HTTPHEADER, '');
}
if(count($post)>0)
{
curl_setopt($curl_res, CURLOPT_POST, 'application/x-www-form-urlencoded');
curl_setopt($curl_res, CURLOPT_POSTFIELDS, implode('&',$post));
}
$page = curl_exec($curl_res);
curl_close($curl_res);
return $page;
}
$post = array();
$post[] = 'cmd=_s-xclick';
$post[] = 'hosted_button_id=DRFM9MQ7FD53L';
$post[] = 'discount_rate=10';
$header = array();
curlGetPage('https://www.sandbox.paypal.com/cgi-bin/webscr', $_SERVER['HTTP_USER_AGENT'], $_SERVER['SERVER_NAME'], $header, $post);
Но вот проблема: при загрузке страницы paypal просит sign up.
Что делать - ума не приложу. Думаю, что проблема в том что referer'ом является моя страница.
Поскажите, пожалуйста, господа как поступить! может есть другое решение для paypal.