add adyen part sessions
All checks were successful
Build and Publish / BuildAndDeployAmd64 (push) Successful in 43s
Build and Publish / BuildAndDeployArm64 (push) Successful in 4m32s

This commit is contained in:
2025-12-03 22:56:30 +01:00
parent c61fe1bb7b
commit 95d8e0ffb5

View File

@@ -386,7 +386,14 @@ func (s *CheckoutPoolServer) GetPaymentSessionHandler(w http.ResponseWriter, r *
}
switch payment.Provider {
case "adyen":
return errors.New("not implemented")
// Get Adyen session details
service := s.adyenClient.Checkout()
req := service.PaymentsApi.GetResultOfPaymentSessionInput(payment.PaymentId)
res, _, err := service.PaymentsApi.GetResultOfPaymentSession(r.Context(), req)
if err != nil {
return err
}
return s.WriteResult(w, res)
case "klarna":
order, err := s.CreateOrUpdateCheckout(r, grain, &payment.PaymentId)
if err != nil {
@@ -409,7 +416,36 @@ func (s *CheckoutPoolServer) StartPaymentHandler(w http.ResponseWriter, r *http.
}
switch payload.Provider {
case "adyen":
return errors.New("adyen not implemented yet")
meta := GetCheckoutMetaFromRequest(r)
sessionData, err := BuildAdyenCheckoutSession(grain, meta)
if err != nil {
logger.Error("unable to build adyen session", "error", err)
return err
}
service := s.adyenClient.Checkout()
req := service.PaymentsApi.SessionsInput().CreateCheckoutSessionRequest(*sessionData)
session, _, err := service.PaymentsApi.Sessions(r.Context(), req)
if err != nil {
logger.Error("unable to create adyen session", "error", err)
return err
}
// Apply PaymentStarted mutation
res, err := s.ApplyLocal(r.Context(), checkoutId, &messages.PaymentStarted{
PaymentId: session.Id,
Amount: session.Amount.Value,
Currency: session.Amount.Currency,
Provider: "adyen",
Method: &payload.Method,
StartedAt: timestamppb.New(time.Now()),
})
if err != nil {
logger.Error("unable to apply payment started mutation", "error", err)
return err
}
return s.WriteResult(w, res)
case "klarna":
order, err := s.CreateOrUpdateCheckout(r, grain, nil)
if err != nil {