imroved webbased datasaved
This commit is contained in:
@@ -286,11 +286,36 @@ public class PaymentStartServiceImpl implements PaymentStartService {
|
||||
// Save record with HTML (persist original request and HTML response)
|
||||
String responseTypeWeb = BBPSConstant.RESPONSE_TYPE_HTML;
|
||||
String rawResponseWeb = respBody == null ? "" : respBody;
|
||||
// bbpsMapperHelper.savePaymentStartRecord(request, null, txnId, orderNo, requestJson, rawResponseWeb, responseTypeWeb);
|
||||
LOGGER.info("[startWebPayment] saved payment start record txnId={} orderNo={} responseType={}", txnId, orderNo, responseTypeWeb);
|
||||
|
||||
// Try to extract useful fields from returned HTML (txnId, amount, mid)
|
||||
Map<String, String> parsed = parseHtmlResponse(rawResponseWeb);
|
||||
|
||||
// Build a minimal PaymentStartApiResponse so savePaymentStartRecord() can safely read fields
|
||||
com.billpaymentservice.bbps.dto.response.PaymentStartApiResponse apiResp = new com.billpaymentservice.bbps.dto.response.PaymentStartApiResponse();
|
||||
com.billpaymentservice.bbps.dto.response.PaymentStartApiResponse.ResponseData rd = new com.billpaymentservice.bbps.dto.response.PaymentStartApiResponse.ResponseData();
|
||||
|
||||
String parsedTxn = parsed.getOrDefault("txnId", "");
|
||||
String parsedAmount = parsed.getOrDefault("amount", "0.00");
|
||||
String parsedMid = parsed.getOrDefault("mid", paymentMid == null ? "DUMMY_MID" : paymentMid);
|
||||
|
||||
// prefer HTML-provided txnId if present, otherwise reuse generated txnId
|
||||
rd.setTxnId(parsedTxn != null && !parsedTxn.isEmpty() ? parsedTxn : txnId);
|
||||
rd.setAmount(parsedAmount != null && !parsedAmount.isEmpty() ? parsedAmount : "0.00");
|
||||
rd.setMid(parsedMid);
|
||||
rd.setOrderNo(orderNo);
|
||||
rd.setQrString("NO_QR");
|
||||
rd.setCreatedOn(LocalDateTime.now().toString());
|
||||
|
||||
apiResp.setResponseData(rd);
|
||||
apiResp.setMessage("HTML_RESPONSE");
|
||||
apiResp.setStatusCode(String.valueOf(BBPSConstant.HTTP_OK_INT));
|
||||
|
||||
bbpsMapperHelper.savePaymentStartRecord(request, apiResp, txnId, orderNo, requestJson, rawResponseWeb, responseTypeWeb);
|
||||
LOGGER.info("[startWebPayment] saved payment start record txnId={} orderNo={} responseType={}", txnId, orderNo, responseTypeWeb);
|
||||
|
||||
// Return HTML directly in API response
|
||||
Map<String, String> result = new HashMap<>();
|
||||
result.put("OrderId", orderNo);
|
||||
result.put("html", respBody);
|
||||
|
||||
LOGGER.info("[startWebPayment] complete txnId={} orderNo={} returning HTML", txnId, orderNo);
|
||||
@@ -437,4 +462,4 @@ public class PaymentStartServiceImpl implements PaymentStartService {
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user