Describe the bug
This bug affects all Indian credit card holders for autopay mandates with Woocommerce Subscriptions. The issue happens during renewals.
When there is a renewal, the subscription status changes to On-hold and Woocommerce sends payment charge request to Stripe. But due to the regulation, the charge is held for 26 hours.
Now I understand that this is required for regulatory compliance but this is causing issues for our customers as their subscriptions stays On-hold for 26 hours because of this. The payment gets deducted after 26 hours and the status gets reset to Active.
During these 26 hours when the subscription is On-hold they're not able use their subscription and not even pay for it manually. Some of our customers even ended up buying a new subscription out of confusion.
To Reproduce
Buy subscription with an Indian card. That'll setup auto mandate.
During renewal, if the charge has to happen on say 1st July, 2024 at 00:00, the subscription will turn On-hold and will stay like that for 26 hours. Then the actual charge will happen at 2nd July 02:00 (after 26 hours) and the subscription will turn Active. During this 26 hours period the customer won't be able to use the subscription (because it'll be On-hold) and also won't be able to manually pay (because it's not allowed when payment_intent status = pending).
Expected behavior
Either the payment request should be started 26 hours before the actual renewal date/time and the subscription should stay Active during this period. Or if the current charge schedule has to be followed where the charge happens after 26 hours of the actual renewal date/time, in that case also the subscription status to stay Active. This way it'll not impact the end users.
Here are a few possible solutions to this:
Do not put the order On-hold when there is autopay mandate for Indian cards and there is 26 hours gap for the card to be charged.
Or, send the charge request from WooCommerce 26 hours before the renewal date/time and keep subscription active during that time.
Or, simply do not keep the 26 hour period for cases when the value of processing.card.customer_notification.approval_requested = false. This is for those cases in which there is no need to wait 26 to charge the card. For such cases the plugin can charge immediately.
Describe the bug This bug affects all Indian credit card holders for autopay mandates with Woocommerce Subscriptions. The issue happens during renewals.
Please refer to this document.
When there is a renewal, the subscription status changes to On-hold and Woocommerce sends payment charge request to Stripe. But due to the regulation, the charge is held for 26 hours.
Now I understand that this is required for regulatory compliance but this is causing issues for our customers as their subscriptions stays On-hold for 26 hours because of this. The payment gets deducted after 26 hours and the status gets reset to Active.
During these 26 hours when the subscription is On-hold they're not able use their subscription and not even pay for it manually. Some of our customers even ended up buying a new subscription out of confusion.
To Reproduce
Expected behavior Either the payment request should be started 26 hours before the actual renewal date/time and the subscription should stay Active during this period. Or if the current charge schedule has to be followed where the charge happens after 26 hours of the actual renewal date/time, in that case also the subscription status to stay Active. This way it'll not impact the end users.
Here are a few possible solutions to this:
P.S. I created this issue because there was not response to my earlier opened issue for over 2 months.