module AlipayGlobal::Service::Reconciliation
Constants
- RECONCILIATION_ERROR_MESSAGES
- RECONCILIATION_REQUIRED_PARAMS
Public Class Methods
build_request(params)
click to toggle source
# File lib/alipay_global/service/reconciliation.rb, line 50 def self.build_request(params) AlipayGlobal::Service.check_required_params(params, RECONCILIATION_REQUIRED_PARAMS) params = AlipayGlobal::Utils.stringify_keys(params) params = { 'service' => 'forex_compare_file', 'partner' => AlipayGlobal.api_partner_id, }.merge(params) AlipayGlobal::Service.request_uri(params).to_s end
error_check(data)
click to toggle source
# File lib/alipay_global/service/reconciliation.rb, line 63 def self.error_check(data) RECONCILIATION_ERROR_MESSAGES.any? { |w| data =~ /#{w}/ } end
request(params)
click to toggle source
# File lib/alipay_global/service/reconciliation.rb, line 21 def self.request(params) reconciliation_resp = [] open(build_request(params)) do |data| results = data.read return false if results.include? "No balance account data in the period" raise ArgumentError, "#{results}" if error_check(results) results.each_line do |line| line = line.strip transaction = line.split("|") reconciliation_resp << { partner_transaction_id: transaction[0], amount: transaction[1], currency: transaction[2], transaction_time: valid_alipay_date(transaction[3]) ? DateTime.strptime(transaction[3],"%Y%m%d%H%M%S") : '', settlement_time: valid_alipay_date(transaction[4]) ? DateTime.strptime(transaction[4],"%Y%m%d%H%M%S") : '', transaction_type: transaction[5], service_charge: transaction[6], status: transaction[7], remarks: transaction[8] ? transaction[8] : '' } end end reconciliation_resp end
valid_alipay_date(raw_date)
click to toggle source
# File lib/alipay_global/service/reconciliation.rb, line 67 def self.valid_alipay_date(raw_date) raw_date && raw_date.length > 0 end