Require paymentId for Razorpay refunds
All checks were successful
build-and-deploy / build-deploy (push) Successful in 34s

This commit is contained in:
androidlover5842
2026-02-01 16:59:59 +05:30
parent 5d4748043f
commit d98f634f02
2 changed files with 15 additions and 20 deletions

View File

@@ -53,15 +53,9 @@ class RazorpayRefundsController(
} }
val paymentId = request.paymentId val paymentId = request.paymentId
val razorpayPaymentId = request.razorpayPaymentId?.trim()?.ifBlank { null } ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "paymentId is required")
if ((paymentId == null && razorpayPaymentId == null) || (paymentId != null && razorpayPaymentId != null)) {
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Provide exactly one of paymentId or razorpayPaymentId")
}
val gatewayPaymentId = if (razorpayPaymentId != null) { val payment = paymentRepo.findById(paymentId).orElseThrow {
razorpayPaymentId
} else {
val payment = paymentRepo.findById(paymentId!!).orElseThrow {
ResponseStatusException(HttpStatus.NOT_FOUND, "Payment not found") ResponseStatusException(HttpStatus.NOT_FOUND, "Payment not found")
} }
if (payment.booking.id != bookingId || payment.property.id != propertyId) { if (payment.booking.id != bookingId || payment.property.id != propertyId) {
@@ -72,8 +66,10 @@ class RazorpayRefundsController(
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "amount must be <= payment amount") throw ResponseStatusException(HttpStatus.BAD_REQUEST, "amount must be <= payment amount")
} }
} }
payment.gatewayPaymentId val gatewayPaymentId = payment.gatewayPaymentId
?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Payment is missing gateway id") ?: throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Payment is missing gateway id")
if (!gatewayPaymentId.startsWith("pay_")) {
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "Payment is not a Razorpay payment")
} }
val settings = settingsRepo.findByPropertyId(propertyId) val settings = settingsRepo.findByPropertyId(propertyId)

View File

@@ -109,7 +109,6 @@ data class RazorpayPaymentRequestCloseResponse(
data class RazorpayRefundRequest( data class RazorpayRefundRequest(
val paymentId: UUID? = null, val paymentId: UUID? = null,
val razorpayPaymentId: String? = null,
val amount: Long? = null, val amount: Long? = null,
val notes: String? = null val notes: String? = null
) )