Skip to main content

Stripe Checkout: paid and confirmed order is set to “Cancelled” 24 hours later b

More
59 minutes ago #100000323 by totama
-- HikaShop version -- : 6.7.1
-- Joomla version -- : 5.4
-- Browser(s) name and version -- : Firefox 158.0


Hello,
We are testing credit card payments with Stripe Checkout (sandbox mode) in HikaShop, and we see the following problem: an order that was paid and set to “Confirmed” is later changed to “Cancelled”.
Environment
  • Joomla 5.4
  • HikaShop Essential 6.7.1 [2610202116]
  • Stripe Checkout payment plugin, test/sandbox mode
What we see in the HikaShop order history
  1. 2026-10-19 12:32 (server time): “payment notification was received with the state paid. Transaction: pi_3USFkCHwuXBczTHH15IY23nP” → status changes to Confirmed.
  2. 2026-10-20 12:28 (server time): “payment notification was received with the state expired. Session: cs_test_a12wLXY3rmwSAwgxz6dMlYmkAIwcA5MGhP8z0bjuu4nJsCJAFR2goQzn20” → status changes to Cancelled.
As a result, the digital product download is blocked, because the order status no longer allows it.
What we see in the Stripe Dashboard (Events, sandbox)
The Stripe Dashboard shows CEST time, which is 2 hours ahead of the HikaShop server time. The expired session above corresponds to the
Code:
checkout.session.expired
event on Oct 20 at 2:28:34 PM CEST. Around each completed payment there is also a separate Checkout Session that was never paid and expired 24 hours later:
Expired session
Expired at (CEST)
cs_test_a1pu1YuDHhHUPm4EtB95UXZlElo42pCWf9EyeFn2VXwHSN867HqikxeTgR
Oct 20, 6:44 AM
cs_test_a12wLXY3rmwSAwgxz6dMlYmkAIwcA5MGhP8z0bjuu4nJsCJAFR2goQzn20
Oct 20, 2:28 PM
cs_test_a1kFcc96hOXHs33201NSMJUaBdsQwzAdrKsF673WEZ4O8Y7kMoHWO5rXuK
Oct 20, 6:03 PM
For example, the session cs_test_a1kFcc… (expired Oct 20, 6:03 PM) belongs to
Code:
order_id=32
according to its
Code:
cancel_url
. It was created about 1 minute before the payment completed on Oct 19 at 6:04 PM (session cs_test_a1BFWfN39…, payment pi_3USJ37HwuXBczTHH1SY9BHpk).
The expired session IDs differ from the sessions that were actually completed, so it looks like a second Checkout Session is created for the same order, and its expiry webhook sets the already confirmed order to Cancelled.
What we would like to ask
  1. Does the plugin create a new Checkout Session each time the customer reaches the payment step or returns to it? (Is it possible that two sessions are created for one order even without going back and forth?)
  2. How should the plugin handle
    Code:
    checkout.session.expired
    for an order that is already paid and confirmed? In our case the status is overwritten.
  3. Is the correct configuration to subscribe the webhook endpoint only to
    Code:
    checkout.session.completed
    and
    Code:
    checkout.session.async_payment_succeeded
    ? Our current endpoint events: [paste here what is selected in Stripe Dashboard → Webhooks].
  4. Can you recommend a fix or patch (for example, ignoring
    Code:
    expired
    for orders that are already confirmed or shipped)?
We attach screenshots of the HikaShop order history and of the Stripe Events list. We can also provide the full order ID, the webhook configuration and debug logs if needed.
Thank you for your help.
Best regards,
Dániel Metz
metzdaniel.hu

Please Log in or Create an account to join the conversation.

Time to create page: 0.148 seconds
Powered by Kunena Forum