get response from foodcourt server and save this response in audit
record every response from kbz api
This commit is contained in:
@@ -421,6 +421,9 @@ class Foodcourt::QrpayController < BaseFoodcourtController
|
|||||||
def create
|
def create
|
||||||
sale_id = params[:sale_id]
|
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
|
unless current_login_employee
|
||||||
render json: { status: false, message: "User not authenticated or employee context missing." }, status: :unauthorized
|
render json: { status: false, message: "User not authenticated or employee context missing." }, status: :unauthorized
|
||||||
return
|
return
|
||||||
@@ -434,10 +437,10 @@ class Foodcourt::QrpayController < BaseFoodcourtController
|
|||||||
PaymentGatewayAuditJob.perform_later({
|
PaymentGatewayAuditJob.perform_later({
|
||||||
receipt_no: Sale.find_by(sale_id: sale_id).receipt_no,
|
receipt_no: Sale.find_by(sale_id: sale_id).receipt_no,
|
||||||
gateway_name: "MMQR",
|
gateway_name: "MMQR",
|
||||||
endpoint_url: "",
|
endpoint_url: "Response from foodcourt server",
|
||||||
event_type: "kbz.payment.success",
|
event_type: "kbz.payment.success",
|
||||||
request_body: {},
|
request_body: {},
|
||||||
response_body: {},
|
response_body: params[:response_data].to_json,
|
||||||
request_method: nil,
|
request_method: nil,
|
||||||
shop_code: Shop.current_shop.shop_code
|
shop_code: Shop.current_shop.shop_code
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -56,6 +56,16 @@ class KbzMerchant
|
|||||||
api_url = "#{@url}/queryorder"
|
api_url = "#{@url}/queryorder"
|
||||||
payload = build_query_payload(merch_order_id)
|
payload = build_query_payload(merch_order_id)
|
||||||
response = send_request(payload, api_url)
|
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)
|
handle_response(response)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -326,6 +326,8 @@ $(document).ready(function() {
|
|||||||
let fallbackTimeout;
|
let fallbackTimeout;
|
||||||
let connected = false;
|
let connected = false;
|
||||||
|
|
||||||
|
let fc_server_response;
|
||||||
|
|
||||||
function handlePaymentSuccess() {
|
function handlePaymentSuccess() {
|
||||||
if (paymentProcessed) return;
|
if (paymentProcessed) return;
|
||||||
paymentProcessed = true;
|
paymentProcessed = true;
|
||||||
@@ -347,7 +349,7 @@ $(document).ready(function() {
|
|||||||
headers: {
|
headers: {
|
||||||
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
|
'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) => {
|
success: (data) => {
|
||||||
if (data.status) {
|
if (data.status) {
|
||||||
customer_display_view({
|
customer_display_view({
|
||||||
@@ -411,6 +413,7 @@ $(document).ready(function() {
|
|||||||
received(data) {
|
received(data) {
|
||||||
console.log("Received:", data);
|
console.log("Received:", data);
|
||||||
if (data.status === "PAY_SUCCESS" && !paymentProcessed) {
|
if (data.status === "PAY_SUCCESS" && !paymentProcessed) {
|
||||||
|
fc_server_response = data
|
||||||
clearTimeout(fallbackTimeout);
|
clearTimeout(fallbackTimeout);
|
||||||
handlePaymentSuccess();
|
handlePaymentSuccess();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user