Compare commits
7 commits
9981ebc9d1
...
faa0a1495b
Author | SHA1 | Date | |
---|---|---|---|
faa0a1495b |
|||
823cb88807 |
|||
0aa7ad1031 |
|||
b1b8c939a6 |
|||
6182ff717f |
|||
4c3f42d347 |
|||
ab80f5d285 |
5 changed files with 115 additions and 463 deletions
|
@ -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")
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -51,12 +51,18 @@ 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);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -28,7 +28,7 @@
|
|||
"@fortawesome/free-solid-svg-icons": "^6.7.2",
|
||||
"@stripe/stripe-js": "^7.0.0",
|
||||
"@tailwindcss/postcss": "^4.0.3",
|
||||
"ajv": "8.8.0",
|
||||
"ajv": "8.17.1",
|
||||
"ajv-formats": "3.0.1",
|
||||
"gsap": "^3.12.7",
|
||||
"keycloak-angular": "^19.0.0",
|
||||
|
|
Reference in a new issue