fix :
- make second display to be responsive
This commit is contained in:
@@ -132,22 +132,68 @@ class KbzMerchant
|
||||
)
|
||||
|
||||
puts "Response: #{response}"
|
||||
response.body
|
||||
# puts "Response: #{response}"
|
||||
JSON.parse(response.body)
|
||||
rescue HTTParty::Error => e
|
||||
raise PaymentError, "HTTP error: #{e.message}"
|
||||
{
|
||||
error: true,
|
||||
code: 'http_error',
|
||||
message: "HTTP error: #{e.message}",
|
||||
alert: "Payment service unavailable. Please try again later."
|
||||
}
|
||||
rescue SocketError => e
|
||||
raise PaymentError, "Network error: #{e.message}"
|
||||
{
|
||||
error: true,
|
||||
code: 'network_error',
|
||||
message: "Network error: #{e.message}",
|
||||
alert: "Network connection failed. Please check your internet."
|
||||
}
|
||||
rescue JSON::ParserError => e
|
||||
{
|
||||
error: true,
|
||||
code: 'invalid_response',
|
||||
message: "Invalid response format: #{e.message}",
|
||||
alert: "Received invalid payment response. Please contact support."
|
||||
}
|
||||
rescue StandardError => e
|
||||
{
|
||||
error: true,
|
||||
code: 'unexpected_error',
|
||||
message: "Unexpected error: #{e.message}",
|
||||
alert: "An unexpected error occurred. Please try again."
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def handle_response(response)
|
||||
json_response = JSON.parse(response)
|
||||
if json_response.dig('Response', 'result') == 'SUCCESS'
|
||||
json_response['Response']
|
||||
if response['error']
|
||||
{
|
||||
status: 'error',
|
||||
code: response['code'],
|
||||
message: response['message']
|
||||
}
|
||||
elsif response.dig('Response', 'result') == 'SUCCESS'
|
||||
{
|
||||
status: 'success',
|
||||
data: response['Response']
|
||||
}
|
||||
else
|
||||
raise PaymentError, "Payment failed: #{json_response['Response']['msg']}"
|
||||
error_code = response.dig('Response', 'code')
|
||||
error_message = response.dig('Response', 'msg')
|
||||
case error_code
|
||||
when 'OrderCenter.FAILED_CREATE_ORDER_FOR_DUPLICATED_MERCHANT_ORDER_ID'
|
||||
{
|
||||
status: 'failed',
|
||||
code: error_code,
|
||||
message: 'Duplicate order ID detected. Please use a unique reference ID.'
|
||||
}
|
||||
else
|
||||
{
|
||||
status: 'failed',
|
||||
code: error_code || 'unknown_error',
|
||||
message: error_message || 'Payment processing failed'
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user