Accept legacy settings payload for Razorpay
All checks were successful
build-and-deploy / build-deploy (push) Successful in 33s

This commit is contained in:
androidlover5842
2026-02-01 10:12:40 +05:30
parent 0624e6bcc8
commit 2deecf1bf2
2 changed files with 22 additions and 7 deletions

View File

@@ -59,19 +59,29 @@ class RazorpaySettingsController(
val property = propertyRepo.findById(propertyId).orElseThrow { val property = propertyRepo.findById(propertyId).orElseThrow {
ResponseStatusException(HttpStatus.NOT_FOUND, "Property not found") ResponseStatusException(HttpStatus.NOT_FOUND, "Property not found")
} }
val keyId = request.keyId?.trim()?.ifBlank { null } ?: request.merchantKey?.trim()?.ifBlank { null }
val keySecret = request.keySecret?.trim()?.ifBlank { null }
?: run {
val prefer256 = request.useSalt256 == true
val candidate = if (prefer256) request.salt256 else request.salt32
candidate?.trim()?.ifBlank { null } ?: request.salt256?.trim()?.ifBlank { null } ?: request.salt32?.trim()?.ifBlank { null }
}
if (keyId == null || keySecret == null) {
throw ResponseStatusException(HttpStatus.BAD_REQUEST, "keyId/keySecret required")
}
val existing = settingsRepo.findByPropertyId(propertyId) val existing = settingsRepo.findByPropertyId(propertyId)
val updated = if (existing == null) { val updated = if (existing == null) {
RazorpaySettings( RazorpaySettings(
property = property, property = property,
keyId = request.keyId.trim(), keyId = keyId,
keySecret = request.keySecret.trim(), keySecret = keySecret,
webhookSecret = request.webhookSecret?.trim(), webhookSecret = request.webhookSecret?.trim(),
isTest = request.isTest ?: false, isTest = request.isTest ?: false,
updatedAt = OffsetDateTime.now() updatedAt = OffsetDateTime.now()
) )
} else { } else {
existing.keyId = request.keyId.trim() existing.keyId = keyId
existing.keySecret = request.keySecret.trim() existing.keySecret = keySecret
existing.webhookSecret = request.webhookSecret?.trim() existing.webhookSecret = request.webhookSecret?.trim()
request.isTest?.let { existing.isTest = it } request.isTest?.let { existing.isTest = it }
existing.updatedAt = OffsetDateTime.now() existing.updatedAt = OffsetDateTime.now()

View File

@@ -3,10 +3,15 @@ package com.android.trisolarisserver.controller.dto
import java.util.UUID import java.util.UUID
data class RazorpaySettingsUpsertRequest( data class RazorpaySettingsUpsertRequest(
val keyId: String, val keyId: String? = null,
val keySecret: String, val keySecret: String? = null,
val webhookSecret: String? = null, val webhookSecret: String? = null,
val isTest: Boolean? = null val isTest: Boolean? = null,
// Backward-compatible aliases (older clients sending PayU-shaped payloads)
val merchantKey: String? = null,
val salt32: String? = null,
val salt256: String? = null,
val useSalt256: Boolean? = null
) )
data class RazorpaySettingsResponse( data class RazorpaySettingsResponse(