Potelo / GuPayment

GuPayment é um pacote para o Laravel que fornece uma interface para controlar assinaturas e pagamentos com o iugu.com
MIT License
79 stars 21 forks source link

Tratamento de webhook faz cancel funcionar como cancelNow #31

Closed matheusb-comp closed 11 months ago

matheusb-comp commented 4 years ago

Ao chamar a função cancel da assinatura, o valor do expires_at é usado para considerar se a assinatura vai ficar no grace period, enquanto a função cancelNow chama a função markAsCanceled 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ção markAsCanceled.

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.

gabrielpeixoto commented 4 years 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!