diff --git a/app/services/kbz_merchant.rb b/app/services/kbz_merchant.rb index 8e7533dd..597299ee 100644 --- a/app/services/kbz_merchant.rb +++ b/app/services/kbz_merchant.rb @@ -15,11 +15,18 @@ class KbzMerchant end def close_order(merch_order_id:) - api_url ='https://api.kbzpay.com/payment/gateway/uat/closeorder' + api_url ='http://api.kbzpay.com/payment/gateway/uat/closeorder' payload = build_close_payload(merch_order_id) send_request(payload, api_url) end + def query_order(merch_order_id:) + api_url = 'http://api.kbzpay.com/payment/gateway/uat/queryorder' + payload = build_query_payload(merch_order_id) + response = send_request(payload, api_url) + handle_response(response) + end + private def build_create_payload(amount, merch_order_id, timeout) @@ -63,6 +70,24 @@ class KbzMerchant base_params.merge(sign: generate_signature(flattened)) end + def build_query_payload(merch_order_id) + base_params = { + method: 'kbz.payment.queryorder', + timestamp: Time.now.utc.to_i.to_s, + nonce_str: SecureRandom.hex(16), + sign_type: 'SHA256', + version: '3.0', + biz_content: { + appid: @payment_method.gateway_url, + merch_code: @payment_method.merchant_account_id, + merch_order_id: merch_order_id + }.compact + } + + flattened = flatten_hash(base_params) + base_params.merge(sign: generate_signature(flattened)) + end + def flatten_hash(hash, parent_key = nil) hash.each_with_object({}) do |(k, v), res| key = parent_key ? "#{k}" : k.to_s @@ -99,6 +124,8 @@ class KbzMerchant body: { Request: payload }.to_json, timeout: 15 ) + + puts "Response: #{response}" response.body # puts "Response: #{response}" rescue HTTParty::Error => e