we have detected what it seems to be a small problem in your plugin.
Our site creates subscriptions using Stripe and Paypal. For now it has been working great.
We’ve found a user whose subscription couldn’t be paid due a change in his credit card. Stripe notified the web via the “charge.failed” event, but the subscription was extended for one year as if he has paid.
We have tried locating where the “charge.failed” stripe event would be processed, but didn’t find it anywhere. We have seen “customer.subscription.deleted” and “charge.refunded” in swpm-stripe-subscription-ipn.php, but no “charge.failed”.
We think that should be addressed, as that member benefits for something he has not still paid.
In Stripe we see that it is retrying the payment for some days. Maybe after some attemps it will cancel the subscription and then send an event to the website. Is this theory right?
So basically we don’t understand HOW that user got an extension of his subscription when the payment could not be made.
If you need any other info please tell us.
Hi, thank you for reaching out to us. I have submitted a message to the developers to investigate this issue further.
Something else happened on your site (some kind of hiccup/conflict somewhere) for that user’s profile to behave that way.
I have explained a little more in terms of how it works below so you can understand why we don’t need to look at the “charge.failed” event for the recurring payments.
Normally, the plugin waits for a SUCCESS charge. Only then it will extend the duration by updating the start date. If a successful charge is not received in time, then the profile gets set to “inactive”. It doesn’t matter if “charge is failed” because they won’t get the additional time until a successful payment is received.
It is normal for a subscription charge to fail sometimes (it can happen for a variety of reasons). Stripe will retry that charge again after 24 hours or so. After a few failures, the subscription will be cancelled which will trigger the other notification that the plugin will use to “block” the profile.
You must be logged in to reply to this topic.