class UmfStringUtil
Public Instance Methods
getPlainSortByAnd(params)
click to toggle source
# File lib/UmfStringUtil.rb, line 12 def getPlainSortByAnd(params) arg = "" paramter = {} if params.size>0 keys = params.keys keys.each { |elem| if elem=="ret_url" || elem=="notify_url" params[elem] = CGI.escape(params[elem]) end paramter = paramter.merge({elem+"="+params[elem].to_s => elem+"="+params[elem].to_s}) } # 字母a到z排序后的数组 # [["amount=1", "amount=1"], ["amt_type=RMB", "amt_type=RMB"]...] paramter = sorted_hash(paramter) # print paramter paramter.each{ |elem| arg = arg + elem[0] + "&" } # 去掉最后一个&字符 arg = arg.chop return arg end end
getPlainSortByAndWithSignType(params)
click to toggle source
使用&符号组织签名明文串排序a-z 包含sign_type字段 做了urlencode
# File lib/UmfStringUtil.rb, line 67 def getPlainSortByAndWithSignType(params) arg = "" paramter = {} if params.size>0 keys = params.keys keys.each { |elem| paramter = paramter.merge({elem+"="+URI::encode(params[elem].to_s) => elem+"="+URI::encode(params[elem].to_s)}) } # 字母a到z排序后的数组 paramter = sorted_hash(paramter) paramter.each{ |elem| arg = arg + elem[0].to_s + "&" } arg = arg.chop puts arg return arg else UmfLogger.logInfoMsg("[UMF SDK]获取请求参数明文字符串失败:传入参数为空!") exit end end
getPlainSortByAndWithoutSignType(params)
click to toggle source
使用&符号组织签名明文串排序a-z 去除sign_type字段 不做urlencode
# File lib/UmfStringUtil.rb, line 39 def getPlainSortByAndWithoutSignType(params) arg = "" paramter = {} if params.size>0 keys = params.keys keys.each { |elem| # sign_type 不需要参与RAS签名 if "sign_type" != elem paramter = paramter.merge({elem+"="+params[elem].to_s => elem+"="+params[elem].to_s}) end } # 字母a到z排序后的数组 # [["amount=1", "amount=1"], ["amt_type=RMB", "amt_type=RMB"]...] paramter = sorted_hash(paramter) paramter.each{ |elem| arg = arg + elem[0].to_s + "&" } # 去掉最后一个&字符 arg = arg.chop return arg else UmfLogger.logInfoMsg("[UMF SDK]获取请求参数明文字符串失败:传入参数为空!") exit end end
rasEncryptedStrEscape(params)
click to toggle source
# File lib/UmfStringUtil.rb, line 90 def rasEncryptedStrEscape(params) chkKeys = [ "card_id", "valid_date", "cvv2", "pass_wd", "identity_code", "card_holder", "recv_account", "recv_user_name", "identity_holder", "identityCode", "cardHolder", "mer_cust_name", "account_name", "bank_account", "endDate", ] chkKeys.each{ |elem| value = params[elem] if value=="" || value==nil next end params[elem] = CGI.escape(value) } return params end
Private Instance Methods
sorted_hash(aHash)
click to toggle source
hash升序排列
# File lib/UmfStringUtil.rb, line 121 def sorted_hash(aHash) return aHash.sort{|a,b| a.to_s <=> b.to_s} end