Skip to content

Stripe: non-card payments may timeout before payment completion. #1532

@dd32

Description

@dd32

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:

  1. Purchase a ticket with Stripe. Use a Delayed payment settlement method.
  2. Pay after 24hrs.
  3. Confusion, no ticket.

Expected behavior

The attendee should receive their WordCamp ticket when paid. They should not have to contact the organisers.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions