get response from foodcourt server and save this response in audit

record every response from kbz api
This commit is contained in:
aungthetkhaing
2025-07-03 10:43:40 +06:30
committed by DevTeam
parent 2244c18b37
commit f003900fee
3 changed files with 19 additions and 3 deletions

View File

@@ -421,6 +421,9 @@ class Foodcourt::QrpayController < BaseFoodcourtController
def create
sale_id = params[:sale_id]
Rails.logger.info("Processing payment for sale ID: #{sale_id}")
Rails.logger.info("#{params[:response_data]}")
unless current_login_employee
render json: { status: false, message: "User not authenticated or employee context missing." }, status: :unauthorized
return
@@ -434,10 +437,10 @@ class Foodcourt::QrpayController < BaseFoodcourtController
PaymentGatewayAuditJob.perform_later({
receipt_no: Sale.find_by(sale_id: sale_id).receipt_no,
gateway_name: "MMQR",
endpoint_url: "",
endpoint_url: "Response from foodcourt server",
event_type: "kbz.payment.success",
request_body: {},
response_body: {},
response_body: params[:response_data].to_json,
request_method: nil,
shop_code: Shop.current_shop.shop_code
})

View File

@@ -56,6 +56,16 @@ class KbzMerchant
api_url = "#{@url}/queryorder"
payload = build_query_payload(merch_order_id)
response = send_request(payload, api_url)
PaymentGatewayAuditJob.perform_later({
receipt_no: merch_order_id,
gateway_name: "MMQR",
endpoint_url: api_url,
event_type: "kbz.payment.queryorder",
request_body: payload,
response_body: response,
request_method: "POST",
shop_code: Shop.current_shop.shop_code
})
handle_response(response)
end

View File

@@ -326,6 +326,8 @@ $(document).ready(function() {
let fallbackTimeout;
let connected = false;
let fc_server_response;
function handlePaymentSuccess() {
if (paymentProcessed) return;
paymentProcessed = true;
@@ -347,7 +349,7 @@ $(document).ready(function() {
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
},
data: JSON.stringify({ sale_id: "<%= @sale_data.sale_id %>" }),
data: JSON.stringify({ sale_id: "<%= @sale_data.sale_id %>", response_data: fc_server_response }),
success: (data) => {
if (data.status) {
customer_display_view({
@@ -411,6 +413,7 @@ $(document).ready(function() {
received(data) {
console.log("Received:", data);
if (data.status === "PAY_SUCCESS" && !paymentProcessed) {
fc_server_response = data
clearTimeout(fallbackTimeout);
handlePaymentSuccess();
}