Users of my site can upgrade their account during a free trial period. For years, I have had them first cancel their current subscription before upgrading using a cancellation button. I have noticed that in the last few weeks, this process is failing. Stripe is recording the cancellation but S2member fails to cancel the subscription. This has resulted in numerous duplicate payments and angry confused customers. I have now switched to using a billing modification form, skipping the cancel button process I used in the past, since it was failing. I have now had a user upgrade using the billing modification form and it appears in Stripe that there are still two subscriptions. Stripe is showing the payment for upgrade and s2member successfully changed the member’s level. However, Stripe is showing an upcoming invoice for the free trial. What has changed? Is this something with Stripe or s2member? Anyone have any ideas or experiencing the same issue?
So the subscription is being cancelled over at Stripe? And what do you mean s2Member fails to cancel the subscription? Do you mean that he still has the access although he cancelled?
What does the user’s profile in WP say, in the s2Member section? Does it mention the subscr ID? Does he have an EOT time set?
This has resulted in numerous duplicate payments and angry confused customers.
So the cancellation problem is resulting in duplicate payments? I’m not sure I understand. Could you explain it a bit more?
I have now had a user upgrade using the billing modification form and it appears in Stripe that there are still two subscriptions. Stripe is showing the payment for upgrade and s2member successfully changed the member’s level. However, Stripe is showing an upcoming invoice for the free trial.
I see. I had seen a similar report for Stripe subscription modifications. I will look into it to reproduce the odd behavior and find what’s behind it.
In the past, I’ve had users cancel their current subscription using a s2 cancellation button before upgrading from the free trial to full membership. This started not working in December. The user’s account was changed in s2member to reflect the upgrade, but stripe continued to charge them. In the logs provided by stripe, you can see where the subscription was recorded as canceled, but it did not cancel, and continued on charging the user past the free trial period. This resulted in two subscriptions in the user’s profile in stripe, but only one in s2member. I thought that by switching to a stripe upgrade form - this would solve the issue, but this has the same effect. The user upgrades their account in s2member, stripe records a cancelation, s2member upgrades their account with the proper subscription ID, but then stripe continues to charge them and never cancels the original plan. Instead it simply adds the new subscription to the existing one. This is happening every time a user upgrades before their free trial ends. It almost seems like an issue with stripe, since s2member properly upgrades the account and clearly communicates the cancelation to stripe, which then stripe records, but then doesn’t honor when the period should end.
Thanks for the additional details, Matt.
I will be looking closer into it.
Please try the new release. I updated the subscription cancellation part of the Stripe integration.
I look forward to your update.