diff --git a/backend/src/main/java/de/szut/casino/deposit/DepositController.java b/backend/src/main/java/de/szut/casino/deposit/DepositController.java index b2918cf..62ab40a 100644 --- a/backend/src/main/java/de/szut/casino/deposit/DepositController.java +++ b/backend/src/main/java/de/szut/casino/deposit/DepositController.java @@ -52,10 +52,14 @@ public class DepositController { SessionCreateParams params = SessionCreateParams.builder() .addLineItem(SessionCreateParams.LineItem.builder() - .setAmount((long) amountDto.getAmount() * 100) - .setCurrency("EUR") + .setPriceData(SessionCreateParams.LineItem.PriceData.builder() + .setCurrency("EUR") + .setUnitAmount((long) amountDto.getAmount() * 100) + .setProductData(SessionCreateParams.LineItem.PriceData.ProductData.builder() + .setName("Einzahlung") + .build()) + .build()) .setQuantity(1L) - .setName("Einzahlung") .build()) .setSuccessUrl(frontendHost+"/home?success=true") .setCancelUrl(frontendHost+"/home?success=false") diff --git a/backend/src/main/java/de/szut/casino/deposit/TransactionService.java b/backend/src/main/java/de/szut/casino/deposit/TransactionService.java index 24d4382..f20735a 100644 --- a/backend/src/main/java/de/szut/casino/deposit/TransactionService.java +++ b/backend/src/main/java/de/szut/casino/deposit/TransactionService.java @@ -40,7 +40,7 @@ public class TransactionService { .build(); Session checkoutSession = Session.retrieve(sessionID, params, null); - if (!Objects.equals(checkoutSession.getPaymentStatus(), "paid")) { + if (!"paid".equals(checkoutSession.getPaymentStatus())) { return; } @@ -53,10 +53,12 @@ public class TransactionService { transaction.setStatus(TransactionStatus.SUCCEEDED); UserEntity user = transaction.getUser(); - user.addBalance(checkoutSession.getAmountTotal()); + Long amountTotal = checkoutSession.getAmountTotal(); + if (amountTotal != null) { + user.addBalance(amountTotal); + } userRepository.save(user); transactionRepository.save(transaction); } - -} +} \ No newline at end of file diff --git a/backend/src/main/java/de/szut/casino/deposit/WebhookController.java b/backend/src/main/java/de/szut/casino/deposit/WebhookController.java index 3bcf699..134e1ad 100644 --- a/backend/src/main/java/de/szut/casino/deposit/WebhookController.java +++ b/backend/src/main/java/de/szut/casino/deposit/WebhookController.java @@ -51,14 +51,20 @@ public class WebhookController { switch (event.getType()) { case "checkout.session.completed": case "checkout.session.async_payment_succeeded": - Session session = (Session) event.getData().getObject(); - - this.transactionService.fulfillCheckout(session.getId()); + EventDataObjectDeserializer dataObjectDeserializer = event.getDataObjectDeserializer(); + + if (dataObjectDeserializer.getObject().isPresent()) { + Session session = (Session) dataObjectDeserializer.getObject().get(); + this.transactionService.fulfillCheckout(session.getId()); + } else { + logger.error("Failed to deserialize webhook event data"); + } break; default: - + // No action needed for other event types + break; } return ResponseEntity.ok().body(null); } -} +} \ No newline at end of file