add adyen part sessions
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user