Paypal循环付款

3
我正在使用PAYPAL定期支付订阅功能,目前情况良好,但需要满足以下条件才能正常工作:
  • 当用户订阅时,需设置INIT AMT、BILLING AMTBILLING PERIOD

$request['CURRENCYCODE'] = ''USD;
$request['AMT'] = $amount;
$request['INITAMT'] = $amount;
$request['BILLINGPERIOD'] = $billingPeriod; //每月
$request['BILLINGFREQUENCY'] = $billingFrequency; //1
$request['PROFILESTARTDATE'] = date('Y-m-d\Th:m:s', strtotime('+' . $billingFrequency ." ". $billingPeriod));

用户将支付INIT AMT,然后在特定周期后(我设置INIT,因为我需要TRANSACTION_ID。Paypal只有在特定周期后才会扣款,而非在创建档案时立即扣款)。这种情况是可以接受的。

例如:用户在6月4日以$10的价格订阅了一个'每月'的循环付款计划。那么用户将于7月4日被收取费用。

现在的问题是:

我想要为用户建立个人档案,但不想在档案创建时扣除INIT AMT,只想要在用户创建档案时立即扣除循环付款金额。例如:用户在6月4日订阅,我希望在XX天后(例如10天后的6月14日)收费。

我不知道Paypal是否有符合我的需求的变量(如果有),希望Paypal的工作人员能够回复我。如果有任何人能帮助我,将不胜感激。

1个回答

2
您不能将初始化金额 INITAMT 作为授权进行处理,因此这不是一个简单的解决方案。如果传递 INITAMT,它总会立即计费,您无法立即收取定期收费协议的费用。定期收费协议将在一天内分组计费,因此不能保证立即收费。
您可以使用即时付款通知(IPN)获取交易ID的更新,当协议被收费时。这可能有所帮助。您可以删除 INITAMT 变量和值,并等待IPN发布以更新您的记录。

@paypal_patrik 感谢您的回复。我已经在使用IPN进行更新。我正在使用INITAMT,因为我需要立即向用户收费,并且我意识到创建循环配置文件不能立即收费(正如您所说),即使在当天或下一天也不会收费。它会在配置文件中设置的特定周期之后向用户收费(例如,如果配置文件是在6月7日创建的,则PayPal将于7月7日收费(我意识到了这件事))。我需要提前向用户收费(在配置文件创建时)。 - Amritpal singh
1
定期付款将于您设置的“PROFILESTARTDATE”开始向买家收费。如果您没有提前一个月进行设置,我们不会尝试在此之前向他们收费。 - Gerzie
我想我已经接近我的问题了。请帮我澄清一个疑惑,如果“PROFILESTARTDATE”=> date('Y-m-d\Th:m:s') //即今天的“月份”,那么PayPal什么时候从买家账户中扣除金额? - Amritpal singh
3
如果你将新的定期付款设置中的"PROFILESTARTDATE"设为今天,它将会在今天进行结算,但不会在特定时间进行结算。如果"CreateRecurringPaymentsProfile" API调用在一天的较晚时间收到,则结算可能会在第二天进行。 - Gerzie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接