У меня возникли проблемы с обновлением подписки с новым планом. Что я пытаюсь сделать, это следующее:Subscription API
Проверьте, все ли подписка по-прежнему находится в пробном режиме. Получить пробную дату trial_end
Если пробной версии еще не произошло. Создайте новый план. Подписывайте клиента на новый план. Ничего не делайте. Перенесите пробную версию для нового плана. (Другими словами, не заряжайте клиента до окончания пробного периода.)
Если пробная версия уже прошла, создайте новый план Sub-клиента для нового плана. Проповедуйте новый план. Перенесите следующую дату выставления счета. (Значение, опять-таки, не взимают клиента прямо сейчас, но добавить пропорциональную сумму на следующий счет)
Вот код, который я до сих пор:
//CREATE NEW PLAN
$plan = \Stripe\Plan::create(array(
"id" => $usremail.'_'.time(),
"name" => $usremail.'-'.time(),
"currency" => "usd",
"amount" => $totalamount,
"interval" => "month",
));
$planid = $plan->id;
$proration_date = time();
//UPDATE SUBSCRIPTION
$subscription = \Stripe\Subscription::retrieve($subid);
$subscription->plan = $planid;
$subscription->proration_date = $proration_date;
$subscription->save();
Когда я это делаю это Если клиент находится в пробной подписке и подписывается на новый план, подписка становится активной, и клиент сразу же взимает плату за новый план.
Я уверен, что это легко, просто не могу понять. Любая помощь очень ценится.
T
thx @floatingLomas У меня есть эта часть, работающая сейчас. что, если пробный период закончился? мне нужно также переносить дату выставления счета? или полоса позаботится об этом с обновлением, которое я разместил выше? Кроме того, будут ли они добавлены к следующей платежной дате? – cnapsys
Если испытание закончилось, вы можете игнорировать значение 'trial_end'. Если вы прорезируете, это закончится тем же расчетным датом, что и тот, который вы обновляете/понижаете. – floatingLomas
это то, что у меня есть до сих пор: '$ planid = $ plan-> id; \t \t $ proration_date = time(); \t \t \t $ subscription = \ Stripe \ Subscription :: retrieve ($ subid); \t \t $ trial_end = $ subscription-> trial_end; \t \t $ subscription-> plan = $ planid; \t \t \t \t, если ($ trial_end <время()) { \t \t \t $ Подписка-> proration_date = $ proration_date; \t \t} else { \t \t \t $ subscription-> trial_end = $ trial_end; \t \t} \t \t \t \t // $ Подписка-> proration_date = $ proration_date; \t \t $ subscription-> trial_end = $ trial_end; \t \t $ subscription-> save(); ' – cnapsys