Skip to content

Commit

Permalink
fix concurrency problem on PayPal handler
Browse files Browse the repository at this point in the history
(cherry picked from commit dc92b0e)
  • Loading branch information
cbellone committed Jan 27, 2020
1 parent 33a8a73 commit 51147c9
Show file tree
Hide file tree
Showing 5 changed files with 184 additions and 198 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public class PayPalCallbackController {
@GetMapping("/confirm")
public String payPalSuccess(@PathVariable("eventName") String eventName,
@PathVariable("reservationId") String reservationId,
@RequestParam(value = "paymentId", required = false) String payPalPaymentId,
@RequestParam(value = "token", required = false) String payPalPaymentId,
@RequestParam(value = "PayerID", required = false) String payPalPayerID,
@RequestParam(value = "hmac") String hmac) {

Expand All @@ -68,15 +68,27 @@ public String payPalSuccess(@PathVariable("eventName") String eventName,
payPalManager.saveToken(res.getId(), ev, token);
return "redirect:/event/" + ev.getShortName() + "/reservation/" +res.getId() + "/overview";
} else {
return payPalCancel(ev.getShortName(), res.getId());
return payPalCancel(ev.getShortName(), res.getId(), payPalPaymentId, hmac);
}
}

@GetMapping("/cancel")
public String payPalCancel(@PathVariable("eventName") String eventName,
@PathVariable("reservationId") String reservationId) {
@PathVariable("reservationId") String reservationId,
@RequestParam(value = "token", required = false) String payPalPaymentId,
@RequestParam(value = "hmac") String hmac) {

payPalManager.removeToken(reservationId);
if(eventRepository.findOptionalByShortName(eventName).isEmpty()) {
return "redirect:/";
}

Optional<TicketReservation> optionalReservation = ticketReservationManager.findById(reservationId);

if(optionalReservation.isEmpty()) {
return "redirect:/event/" + eventName;
}

payPalManager.removeToken(optionalReservation.get(), payPalPaymentId);
return "redirect:/event/"+eventName+"/reservation/"+reservationId+"/overview";
}
}
Loading

0 comments on commit 51147c9

Please sign in to comment.