Как установить интервал пробного периода в authorize.net? - PullRequest
0 голосов
/ 24 января 2019

Я использую authorize.net для ежемесячной подписки с пробным периодом, используя API профиля клиента.Ссылка: https://developer.authorize.net/api/reference/#recurring-billing-create-a-subscription-from-customer-profile Я хочу установить интервал для пробного периода подписки.В API я не смог получить связь с интервалом пробного периода.Сценарий: если я подпишусь на дату 1-1-2019, пользователь получит 1-й пробный период в 7 дней.Итак, дата окончания пробного периода должна быть 8-1-2019 с 0 суммой.Тогда фактическая дата окончания подписки должна быть 2/2/2019 (в течение 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 голосов
/ 24 января 2019

Это не пробный период В условиях Authorize.Net.Это просто задержка с началом подписки.Все, что вам нужно сделать, это установить дату начала на одну неделю позже, а затем создать обычную подписку с периодом в один месяц.Никакого специального кода или параметра здесь не требуется.

Так что в вашем конкретном примере измените

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

на

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

Или, если вы хотите, чтобы это было выполнено динамически:

$paymentSchedule->setStartDate(new DateTime('+7 days'));
...