我有一个使用PayPal进行付款处理的自定义购物车。我在购物车和PayPal之间有一个中间页面,它将订单添加到数据库并发送确认电子邮件。
到目前为止,我设置了中间页面,将所有必要的数据包含在隐藏的表单字段中,并将表单提交给PayPal onload
。
现在我正在尝试在PHP中使用cURL将POST数据发送到PayPal。
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.paypal.com/cgi-bin/webscr');
//curl_setopt($ch, CURLOPT_URL, 'http://localhost/postecho.php');
// ^ this one is a simple page that echoes all POST data using print_r
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $poststring);
// Some options that didn't seem to help
//curl_setopt($ch, CURLOPT_HEADER, 1);
//curl_setopt($ch, CURLOPT_POST, 1);
//curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_HTTPS);
// User agent spoofing which also didn't seem to help
//$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";
//curl_setopt($ch, CURLOPT_USERAGENT, $agent);
$result=curl_exec($ch);
curl_close($ch);
$poststring
包含我之前以param1=value¶m2=value
格式传递的所有POST数据。通过测试页postecho.php
运行此操作可以发现POST数据似乎没问题。
“抱歉 - 您的上一个操作无法完成”
当我尝试用cURL方式做事时,这就是PayPal告诉我的。它并没有真正给我任何有关解决这个问题的有用信息。我认为标题中有些东西或者它不喜欢的东西。如何让PayPal和cURL一起工作?
答案 0 :(得分:1)
很可能你缺少cookie /会话数据。如果我是你,我会捕获从您的浏览器到paypal.com的原始http消息。请求工作不需要其中的一些信息,但至少它将包含您需要的所有信息。然后尝试用curl模拟它。
长答案简短:首先捕获原始http消息,然后用curl模拟它。
答案 1 :(得分:0)