Closed matheusb-comp closed 11 months ago
Olá @matheusb-comp , realmente o ideal seria fazer de outra forma.
Vou verificar isso e modificar.
Caso queira, você pode criar o seu controller estendendo de WebhookController e sobrescrever esse método.
Acho que seria algo do tipo:
if ($subscription->onTrial()) {
$subscription->ends_at = $subscription->trial_ends_at;
} elseif (isset($subscriptionIugu->expires_at)) {
$subscription->ends_at = Carbon::createFromFormat('Y-m-d', $subscriptionIugu->expires_at);
} else {
$subscription->ends_at = Carbon::now();
}
Vou testar com calma e modifico. Caso queira fazer um PR será bem-vindo também!
Ao chamar a função
cancel
da assinatura, o valor doexpires_at
é usado para considerar se a assinatura vai ficar no grace period, enquanto a funçãocancelNow
chama a funçãomarkAsCanceled
e faz com que a assinatura não tenha grace period.Porém, ao suspender a assinatura, o Iugu chama o webhook
subscription.suspended
, que no tratamento da biblioteca chama a funçãomarkAsCanceled
.Esse é o funcionamento esperado? Por que assim uma chamada para a função
cancel
, caso o webhook esteja configurado, resulta no cancelamento da assinatura sem grace period.