test
All checks were successful
Build and Publish / BuildAndDeployAmd64 (push) Successful in 44s
Build and Publish / BuildAndDeployArm64 (push) Successful in 4m37s

This commit is contained in:
matst80
2025-12-04 17:08:31 +01:00
parent 0ef29596c1
commit 978ef3025d

View File

@@ -400,28 +400,30 @@ func (s *CheckoutPoolServer) GetPaymentSessionHandler(w http.ResponseWriter, r *
} }
switch payment.Provider { switch payment.Provider {
case "adyen": case "adyen":
// For Adyen, recreate the session with updated cart data var payload *SessionRequest
// The frontend uses this to reinitialize the Drop-in component if r.Method != http.MethodGet {
meta := GetCheckoutMetaFromRequest(r) payload = &SessionRequest{}
sessionData, err := BuildAdyenCheckoutSession(grain, meta) if err := json.NewDecoder(r.Body).Decode(payload); err != nil {
if err != nil { return err
logger.Error("unable to build adyen session", "error", err) }
return err
} }
service := s.adyenClient.Checkout() service := s.adyenClient.Checkout()
req := service.PaymentsApi.SessionsInput().CreateCheckoutSessionRequest(*sessionData) req := service.PaymentsApi.GetResultOfPaymentSessionInput(payload.SessionId)
session, _, err := service.PaymentsApi.Sessions(r.Context(), req) if payload != nil {
req = req.SessionResult(payload.SessionResult)
}
res, _, err := service.PaymentsApi.GetResultOfPaymentSession(r.Context(), req)
if err != nil { if err != nil {
logger.Error("unable to create adyen session", "error", err)
return err return err
} }
return s.WriteResult(w, session) return s.WriteResult(w, res)
case "klarna": case "klarna":
order, err := s.CreateOrUpdateCheckout(r, grain, &payment.PaymentId) current, err := s.klarnaClient.GetOrder(r.Context(), paymentId)
if err != nil { if err != nil {
return err return err
} }
return s.WriteResult(w, order) return s.WriteResult(w, current)
} }
return errors.New("unsupported payment provider") return errors.New("unsupported payment provider")