diff --git a/app/controllers/foodcourt/qrpay_controller.rb b/app/controllers/foodcourt/qrpay_controller.rb index b2559194..0d7558a7 100644 --- a/app/controllers/foodcourt/qrpay_controller.rb +++ b/app/controllers/foodcourt/qrpay_controller.rb @@ -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 }) diff --git a/app/services/kbz_merchant.rb b/app/services/kbz_merchant.rb index b5d51c6e..03d6cfe4 100644 --- a/app/services/kbz_merchant.rb +++ b/app/services/kbz_merchant.rb @@ -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 diff --git a/app/views/foodcourt/qrpay/init.html.erb b/app/views/foodcourt/qrpay/init.html.erb index 4b89ef04..667df177 100644 --- a/app/views/foodcourt/qrpay/init.html.erb +++ b/app/views/foodcourt/qrpay/init.html.erb @@ -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(); }