2015-02-14 29 views
7

Supponiamo che un utente vuole annullare l'abbonamento, quindi emettere un comando come questo:Un-annullamento di un abbonamento Stripe

stripe_subscription.delete(at_period_end: true) 

Più tardi, però, prima che il periodo si conclude, l'utente cambia la loro mente. C'è una chiamata che posso emettere per annullare la cancellazione pianificata?

In caso contrario, qual è il modo migliore per implementarlo? La mia ipotesi migliore è questa:

new_subscription = stripe_customer.subscriptions.create(plan: stripe_subscription.plan.id, trial_end: stripe_subscription.current_period_end) 
stripe_subscription.delete() # if permitted 
self.stripe_subscription = new_subscription 
save! 

C'è qualcosa di meglio che posso fare?

risposta

8

Se la sottoscrizione è ancora attiva, è sufficiente il numero update dell'abbonamento corrente e passare nuovamente l'id del piano e riprendere l'abbonamento.

In PHP si dovrebbe fare:

$customer = Stripe_Customer::retrieve("cus_XXX"); 
$subscription = $customer->subscriptions->retrieve("sub_YYY"); 
$subscription->plan = "myPlanId"; 
$subscription->save(); 

Questo argomento è trattato in uno dei articolo di supporto della banda in ulteriori dettagli here.

+0

Grazie per la punta! –

+0

L'articolo di supporto collegato indica che questo può essere fatto anche tramite il pannello di controllo Stripe nel caso in cui si tratti di una tantum e non vale la pena implementarla tramite l'API. –

+0

Permalink aggiornato alla sottosezione Stripe sulla riattivazione dei sottotitoli cancellati: https://stripe.com/docs/subscriptions/canceling-pausing#reactivating-canceled-subscriptions –

2

Dal cruscotto. Vai ai tuoi dati di abbonamento e clicca su Edit Details in alto a destra. Un modale senza titolo "Riattiva abbonamento" dovrebbe apparire pop dicendo

Questo abbonamento è impostato per annullare alla fine del periodo. È possibile riattivare l'abbonamento e continuerà come al solito.

Clicca Reactivate

Problemi correlati