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






Это не пробный период с точки зрения Authorize.Net. Это просто задержка начала подписки. Все, что вам нужно сделать, это установить дату начала на одну неделю позже, а затем создать обычную подписку с временными рамками в один месяц. Здесь не требуется никакого специального кода или параметра.
Итак, в вашем конкретном примере измените
$paymentSchedule->setStartDate(new DateTime('2019-01-01'));
к
$paymentSchedule->setStartDate(new DateTime('2019-01-08'));
Или, если вы хотите, чтобы это было сделано динамически:
$paymentSchedule->setStartDate(new DateTime('+7 days'));