定期付款已经运行的paypal脚本

时间:2011-03-23 09:56:05

标签: php paypal

我见过许多相关问题,但没有找到答案。

我已经通过PayPal成功实施了交易,但现在我被要求通过PayPal实施定期付款。我搜索过但找不到任何可以帮助我实现这一目标的材料。

首先我实施了什么。 我要求用户选择金额。用户选择金额,我将用户转移到paypal,在那里他输入他的信息并进行交易。 成功交易后,我向用户显示交易ID并将ipn信息和用户信息存储在我的数据库中。

现在我想给用户一个选项,选择是或否选择定期付款。如果用户选择定期付款,那么他的定期付款将使用他在上面选择的金额完成。

现在我想知道:

  1. 我已经运行的PayPal脚本中有什么要改变才能重复付款?
  2. 将在付款时询问重复的详细信息。
  3. 现在要发送哪些其他参数?
  4. 如何在已经运行的应用程序上测试它?
  5. paypal会将哪些参数作为ipn发回给我?
  6. 我试图从paypal网站了解但不能。

7 个答案:

答案 0 :(得分:10)

在此列表中,您需要所有文档。 theese不是从网上获取的随意链接,theese是我收集的一组链接,当我不得不做你现在想要做的完全相同的事情。 ;)

快乐的编码。 ;)

答案 1 :(得分:1)

这是使用PHP使用paypal创建定期付款的即时示例代码

Instant paypal recurring payment code with NVP PHP

答案 2 :(得分:0)

您可以从以下参考网址获得解决方案.....

http://www.techrepublic.com/article/handling-recurring-payments-with-paypal-subscriptions-and-ipn/5331883

http://help.wildapricot.com/display/DOC/Recurring+payments+with+PayPal+Standard 

https://www.paypal.com/cgi-bin/webscr?cmd=_payflow-recurring-billing-overview-outside

答案 3 :(得分:0)

尝试以下代码:

$paypalObj = new paypal_class();

$itemName = My Product";
$itemNumber = $itemName . " - Premium ($amount$)";

$paypalObj->paypal_url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';// testing paypal url
//$paypalObj->paypal_url = 'https://www.paypal.com/cgi-bin/webscr';// Live paypal url

$paypalObj->add_field('cmd','_xclick-subscriptions');
$paypalObj->add_field('txn_type', "recurring_payment");
$paypalObj->add_field('product_name', "My Product Subscription - Monthly( $$amount )");
$paypalObj->add_field('desc', "Magic Niche Finder Subscription - Monthly( $$amount )");

$paypalObj->add_field('business', "test@yahoo.com");

$paypalObj->add_field('return', "http://".$serverName . "/buy-now.php");
$paypalObj->add_field('cancel_return', "http://".$serverName. "/return.php?action=cancel");
$paypalObj->add_field('notify_url', "http://" . $serverName . "/return.php?action=ipn");

$paypalObj->add_field('src', "1");
$paypalObj->add_field('sra', "1");
$paypalObj->add_field('a3', "$amount");
$paypalObj->add_field('t3', "M");
$paypalObj->add_field('p3', "1");
//$paypalObj->add_field('no_note', "1");
$paypalObj->add_field('currency_code', "USD");

$paypalObj->add_field('first_name', $firstName);
$paypalObj->add_field('last_name', $lastName);

$paypalObj->submit_paypal_post();

答案 4 :(得分:0)

您似乎需要开始为用户创建定期付款资料。

可以找到here的文档。我还遇到了一个PHP Script,看起来它包含了你需要的所有代码。

答案 5 :(得分:0)

从我对你的问题的理解,我认为paypal的Preapproval API肯定能够帮助你。我目前正在处理此定期付款,我设法与paypal工作人员会面讨论他们的公式,这是他们推荐的。

您可以从我的链接中了解更多有关其API的信息,以了解预先批准的工作原理以及它如何帮助您自动从客户的PayPal帐户中扣款,只要他们没有输入他们的PayPal帐户手动取消选项后他们选择了它。

https://www.x.com/docs/DOC-1419

答案 6 :(得分:0)

Q> 我已经运行的PayPal脚本中有什么要改变才能重复付款?
A> 这取决于您当前的脚本。例如,如果您使用了Paypal托管的立即购买按钮,则可能需要对订阅按钮执行相同操作。完成此操作后,您将看到需要提交的HTML表单之间的差异。只有一些差异,但您需要制作一些Javascript黑客以确保您发送正确的内容,或创建单独的表单。

付款时会询问重复的详细信息。

不确定这是否是一个问题,但如果是这样,我不明白这里有什么问题:(

>现在要发送什么附加参数才能得到这个?
A &GT;正如我在上一个问题中回答的那样,这取决于你目前的表现。如果您使用托管按钮,<INPUT type="hidden" name="hosted_button_id" ...可能会有所不同,您可能还需要发送定期付款详细信息等。

Q&gt; 如何在已经运行的应用程序上测试它? A&gt; 与测试任何其他IPN付款的方式相同。

Q&gt; paypal将以ipn的形式发送给我的参数是什么? A&gt; 我得到一个额外的参数subscr_id。但最好是查看manual