如何在authorize.net中设置试用期间隔?

时间:2019-01-24 11:07:33

标签: php authorize.net recurring-billing authorize.net-arb

我正在使用authorize.net进行每月订购计划,并使用客户个人资料API进行试用。 参考:https://developer.authorize.net/api/reference/#recurring-billing-create-a-subscription-from-customer-profile 我想设置订阅的试用期间隔。在api中,我与试用期间隔没有关系。 方案:如果我在1-1-2019日期订阅,则用户将获得7天的第1个试用期。因此,试用结束日期必须为8-1-2019,金额为0。然后实际的订阅结束日期必须为2019年8月2日(试用期后的1个月),订阅的数量为100。

$subscription = new AnetAPI\ARBSubscriptionType();
$subscription->setName("Sample Subscription");

$interval = new AnetAPI\PaymentScheduleType\IntervalAType();
$interval->setLength('30');
$interval->setUnit("days");

$paymentSchedule = new AnetAPI\PaymentScheduleType();
$paymentSchedule->setInterval($interval);
$paymentSchedule->setStartDate(new DateTime('2019-01-01'));
$paymentSchedule->setTotalOccurrences("9999");
$paymentSchedule->setTrialOccurrences("1");

$subscription->setPaymentSchedule($paymentSchedule);
$subscription->setAmount(100);
$subscription->setTrialAmount("0.00");

使用什么参数可以在authorize.net中通过试用间隔?请帮助我。 预先感谢。

1 个答案:

答案 0 :(得分:1)

这不是Authorize.Net条款中的试用期。这只是开始订阅的一个延迟。您需要做的就是将开始日期设置为一周后,然后创建一个为期一个月的普通订阅。此处不需要特殊的代码或参数。

因此在您的特定示例中更改

org.postgresql.util.PSQLException: ERROR: Function myFunction(bytea, bytea) does not exist

 $paymentSchedule->setStartDate(new DateTime('2019-01-01'));

或者如果您希望它动态完成:

$paymentSchedule->setStartDate(new DateTime('2019-01-08'));