feature/pubsub #7

Merged
mats merged 67 commits from feature/pubsub into main 2025-11-28 17:45:22 +01:00
Showing only changes of commit e1072c5ba1 - Show all commits

View File

@@ -756,6 +756,18 @@ func (s *PoolServer) AdyenHookHandler(w http.ResponseWriter, r *http.Request) {
for _, notificationItem := range *notificationRequest.NotificationItems { for _, notificationItem := range *notificationRequest.NotificationItems {
item := notificationItem.NotificationRequestItem item := notificationItem.NotificationRequestItem
log.Printf("Recieved notification event code: %s, %v", item.EventCode, item) log.Printf("Recieved notification event code: %s, %v", item.EventCode, item)
isValid := hmacvalidator.ValidateHmac(item, hmacKey)
if !isValid {
log.Printf("notification hmac not valid %s, %v", item.EventCode, item)
http.Error(w, "Invalid HMAC", http.StatusUnauthorized)
return
} else {
switch item.EventCode {
case "CAPTURE":
log.Printf("Capture status: %v", item.Success)
case "AUTHORISATION":
cartId, ok := cart.ParseCartId(item.MerchantReference) cartId, ok := cart.ParseCartId(item.MerchantReference)
if !ok { if !ok {
log.Printf("invalid cart id %s", item.MerchantReference) log.Printf("invalid cart id %s", item.MerchantReference)
@@ -767,15 +779,6 @@ func (s *PoolServer) AdyenHookHandler(w http.ResponseWriter, r *http.Request) {
continue continue
} }
isValid := hmacvalidator.ValidateHmac(item, hmacKey)
if !isValid {
log.Printf("notification hmac not valid %s, %v", item.EventCode, item)
http.Error(w, "Invalid HMAC", http.StatusUnauthorized)
return
} else {
switch item.EventCode {
case "AUTHORISATION":
grain, err := s.Get(r.Context(), uint64(cartId)) grain, err := s.Get(r.Context(), uint64(cartId))
if err != nil { if err != nil {
log.Printf("Error getting cart: %v", err) log.Printf("Error getting cart: %v", err)
@@ -804,6 +807,8 @@ func (s *PoolServer) AdyenHookHandler(w http.ResponseWriter, r *http.Request) {
Status: item.EventCode, Status: item.EventCode,
}) })
} }
default:
log.Printf("Unknown event code: %s", item.EventCode)
} }
} }
} }