class ECpayInvoice::InvoiceClientECPay
Public Class Methods
new()
click to toggle source
# File lib/ecpay_invoice/invoice_client.rb, line 24 def initialize @helper = APIHelper.new end
Public Instance Methods
ecpay_invoice_allowance(param)
click to toggle source
# File lib/ecpay_invoice/invoice_client.rb, line 60 def ecpay_invoice_allowance(param) invoice_base_proc!(params: param) unix_time = get_curr_unix_time() - 120 param['TimeStamp'] = unix_time.to_s p param['TimeStamp'] res = invoice_pos_proc!(params: param, apiname: 'InvoiceAllowance') return res end
ecpay_invoice_allowance_invalid(param)
click to toggle source
# File lib/ecpay_invoice/invoice_client.rb, line 78 def ecpay_invoice_allowance_invalid(param) invoice_base_proc!(params: param) unix_time = get_curr_unix_time() - 120 param['TimeStamp'] = unix_time.to_s p param['TimeStamp'] res = invoice_pos_proc!(params: param, apiname: 'InvoiceAllowanceInvalid') return res end
ecpay_invoice_delay(param)
click to toggle source
# File lib/ecpay_invoice/invoice_client.rb, line 38 def ecpay_invoice_delay(param) invoice_base_proc!(params: param) unix_time = get_curr_unix_time() - 120 param['TimeStamp'] = unix_time.to_s param['CarruerNum'] = param['CarruerNum'].to_s.gsub('+', ' ') param['PayType'] = '2' param['PayAct'] = 'ECPAY' p param['TimeStamp'] res = invoice_pos_proc!(params: param, apiname: 'InvoiceDelayIssue') return res end
ecpay_invoice_issue(param)
click to toggle source
# File lib/ecpay_invoice/invoice_client.rb, line 28 def ecpay_invoice_issue(param) invoice_base_proc!(params: param) unix_time = get_curr_unix_time() - 120 param['TimeStamp'] = unix_time.to_s param['CarruerNum'] = param['CarruerNum'].to_s.gsub('+', ' ') p param['TimeStamp'] res = invoice_pos_proc!(params: param, apiname: 'InvoiceIssue') return res end
ecpay_invoice_issue_invalid(param)
click to toggle source
# File lib/ecpay_invoice/invoice_client.rb, line 69 def ecpay_invoice_issue_invalid(param) invoice_base_proc!(params: param) unix_time = get_curr_unix_time() - 120 param['TimeStamp'] = unix_time.to_s p param['TimeStamp'] res = invoice_pos_proc!(params: param, apiname: 'InvoiceIssueInvalid') return res end
ecpay_invoice_trigger(param)
click to toggle source
# File lib/ecpay_invoice/invoice_client.rb, line 50 def ecpay_invoice_trigger(param) invoice_base_proc!(params: param) unix_time = get_curr_unix_time() - 120 param['TimeStamp'] = unix_time.to_s param['PayType'] = '2' p param['TimeStamp'] res = invoice_pos_proc!(params: param, apiname: 'InvoiceTriggerIssue') return res end
Private Instance Methods
get_curr_unix_time()
click to toggle source
Private method definition start ###
# File lib/ecpay_invoice/invoice_client.rb, line 90 def get_curr_unix_time() return Time.now.to_i end
invoice_base_proc!(params:)
click to toggle source
# File lib/ecpay_invoice/invoice_client.rb, line 94 def invoice_base_proc!(params:) if params.is_a?(Hash) # Transform param key to string params.stringify_keys() params['MerchantID'] = @helper.get_mercid #gem_uid = SecureRandom::hex #p gem_uid.to_s[0, 30] #params['RelateNumber'] = gem_uid.to_s[0, 30] else raise ECpayInvalidParam, "Recieved parameter object must be a Hash" end end
invoice_pos_proc!(params:, apiname:)
click to toggle source
# File lib/ecpay_invoice/invoice_client.rb, line 110 def invoice_pos_proc!(params:, apiname:) verify_query_api = ECpayInvoice::InvoiceParamVerify.new(apiname) if apiname == 'InvoiceIssue' exclusive_list = ['InvoiceRemark', 'ItemName', 'ItemRemark', 'ItemWord'] verify_query_api.verify_inv_issue_param(params) elsif apiname == 'InvoiceDelayIssue' exclusive_list = ['InvoiceRemark', 'ItemName', 'ItemRemark', 'ItemWord'] verify_query_api.verify_inv_delay_param(params) elsif apiname == 'InvoiceTriggerIssue' exclusive_list = [] verify_query_api.verify_inv_trigger_param(params) elsif apiname == 'InvoiceAllowance' exclusive_list = ['ItemName', 'ItemWord'] verify_query_api.verify_inv_allowance_param(params) elsif apiname == 'InvoiceIssueInvalid' exclusive_list = ['Reason'] verify_query_api.verify_inv_issue_invalid_param(params) elsif apiname == 'InvoiceAllowanceInvalid' exclusive_list = ['Reason'] verify_query_api.verify_inv_allowance_invalid_param(params) end #encode special param sp_param = verify_query_api.get_special_encode_param(apiname) @helper.encode_special_param!(params, sp_param) exclusive_ele = {} for param in exclusive_list exclusive_ele[param] = params[param] params.delete(param) end # Insert chkmacval chkmac = @helper.gen_chk_mac_value(params, mode: 0) params['CheckMacValue'] = chkmac for param in exclusive_list params[param] = exclusive_ele[param] end sp_param.each do |key| params[key] = CGI::unescape(params[key]) end # gen post html api_url = verify_query_api.get_svc_url(apiname, @helper.get_op_mode) #post from server resp = @helper.http_request(method: 'POST', url: api_url, payload: params) # return post response return resp end