-
Couldn't load subscription status.
- Fork 83
Description
Describe the bug
As by WordCamp Brasil and documented in this slack message:
https://wordpress.slack.com/archives/C08M59V3P/p1760656291214889?thread_ts=1760626779.032359&cid=C08M59V3P
It's possible for a Stripe payment (non-card) to be made within the time period allowed (In this case 3 days) but have the Camptix purchase timeout before the payment is made.
This occurs with payment methods which provide a delayed settlement process, such as in this case boleto which as I understand is a QR generated and later paid in person. See https://stripe.com/au/resources/more/boleto-an-in-depth-guide
This is similar to #1255 but in a delayed form, rather than immediate.
To solve this, the payment timeout process needs to be updated to:
- If the attendee purchase is still in progress to not timeout, and to delay that until X time.
- Upon a Stripe payment is completed, update the Camptix purchase in a timely manner (IPN, etc) instead of only checking at timeout.
As part of this, we can likely reduce the timeout period from 24hrs to 12hrs or 6hrs to solve some issues around having attendees "using up" ticket slots. With the proviso that the timeout is delayed until the payment session has absolutely timed out according to the Payment Gateway.
To reproduce
Steps to reproduce the behavior:
- Purchase a ticket with Stripe. Use a Delayed payment settlement method.
- Pay after 24hrs.
- Confusion, no ticket.
Expected behavior
The attendee should receive their WordCamp ticket when paid. They should not have to contact the organisers.