尝试使用cURL提交Paypal表单...

时间:2011-07-28 20:52:45

标签: php forms curl paypal form-submit

我一直在研究如何在没有用户点击结帐按钮的情况下自动传递Paypal表单提交。以下是我要执行此操作的代码:

<?php
$post_data['cmd'] = '_xclick';
$post_data['business'] = 'myemail@website.com';
$post_data['item_name'] = 'The Items You are Purchasing';
$post_data['amount'] = '25';
$post_data['no_shipping'] = '1';
$post_data['no_note'] = '1';
$post_data['currency_code'] = 'USD';
$post_data['bn'] = 'PP-BuyNowBF';

foreach ( $post_data as $key => $value) {
$post_items[] = $key . '=' . $value;
}
$post_string = implode ('&', $post_items);

$curl_connection = curl_init('https://www.paypal.com/cgi-bin/webscr');
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1); 

curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string); 

$result = curl_exec($curl_connection);

curl_close($curl_connection); 
?>

尽我所知,这应该将价值转移到Paypal,并要求用户向'myemail@website.com'支付25美元购买“你正在购买的物品”。但由于某种原因,它不起作用,你知道为什么吗?

2 个答案:

答案 0 :(得分:1)

正如我所见,您正在使用“立即购买”按钮。因为用户(客户)应该参与支付过程,所以它可以使用curl:在PayPal上登录他(她)的帐户,或者如果他没有,则输入付款和结算信息,确认付款并返回到您的手动'购物'。用户如何用curl做到这一点?所有PayPal行为都将存储在curl vaiables中(如果我们可以这样说)如果您与此付款方式绑定并且不希望手动点击该按钮(阅读提交的表单),您可以使用JavaScript的。或者您可以将用户重定向到PalPal并通过GET传递所有参数。它也应该工作。否则,您应该使用PayPal Payments Pro。具体而言 - 直接付款。用户将在您的网站上填写表格(信用卡,结算信息等),您可以使用curl完成付款。

抱歉英语不好。我试着说清楚。我希望它会有所帮助。

答案 1 :(得分:0)

查看您的要求,您需要做的就是在将客户重定向到paypal之前将帖子信息保留在最后一页。

这样的东西
<!-- Display all items etc. -->

<form action='https://www.paypal.com/cgi-bin/webscr' method='POST'>
POST DATA

Submit button
</form>

您还可以使用额外的页面将所有信息发布到网页中,然后使用javascript自动提交表单。