add adyen part sessions
This commit is contained in:
@@ -386,7 +386,14 @@ func (s *CheckoutPoolServer) GetPaymentSessionHandler(w http.ResponseWriter, r *
|
|||||||
}
|
}
|
||||||
switch payment.Provider {
|
switch payment.Provider {
|
||||||
case "adyen":
|
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":
|
case "klarna":
|
||||||
order, err := s.CreateOrUpdateCheckout(r, grain, &payment.PaymentId)
|
order, err := s.CreateOrUpdateCheckout(r, grain, &payment.PaymentId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -409,7 +416,36 @@ func (s *CheckoutPoolServer) StartPaymentHandler(w http.ResponseWriter, r *http.
|
|||||||
}
|
}
|
||||||
switch payload.Provider {
|
switch payload.Provider {
|
||||||
case "adyen":
|
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":
|
case "klarna":
|
||||||
order, err := s.CreateOrUpdateCheckout(r, grain, nil)
|
order, err := s.CreateOrUpdateCheckout(r, grain, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user