- Posts: 53
- Thank you received: 5
Stripe Checkout: paid and confirmed order is set to “Cancelled” 24 hours later b
59 minutes ago #100000323
by totama
Stripe Checkout: paid and confirmed order is set to “Cancelled” 24 hours later b was created 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
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
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:
For example, the session cs_test_a1kFcc… (expired Oct 20, 6:03 PM) belongs to
according to its
. 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
Thank you for your help.
Best regards,
Dániel Metz
metzdaniel.hu
-- 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
- 2026-10-19 12:32 (server time): “payment notification was received with the state paid. Transaction: pi_3USFkCHwuXBczTHH15IY23nP” → status changes to Confirmed.
- 2026-10-20 12:28 (server time): “payment notification was received with the state expired. Session: cs_test_a12wLXY3rmwSAwgxz6dMlYmkAIwcA5MGhP8z0bjuu4nJsCJAFR2goQzn20” → status changes to Cancelled.
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
|
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
|
Code:
order_id=32
Code:
cancel_url
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
- 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?)
- How should the plugin handle
for an order that is already paid and confirmed? In our case the status is overwritten.Code:checkout.session.expired
- Is the correct configuration to subscribe the webhook endpoint only to
andCode:checkout.session.completed? Our current endpoint events: [paste here what is selected in Stripe Dashboard → Webhooks].Code:checkout.session.async_payment_succeeded
- Can you recommend a fix or patch (for example, ignoring
for orders that are already confirmed or shipped)?Code:expired
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