class UmfCheckReqDataAndEncrypt
Public Instance Methods
doCheck(params)
click to toggle source
参数校验 service对应必填字段校验 & 正则校验
# File lib/UmfCheckReqDataAndEncrypt.rb, line 16 def doCheck(params) service = params["service"] serviceRuleMap = ServiceRule # service对应的必填字段校验 paramStr = serviceRuleMap[service] # 该service对应的必传字段数组 if paramStr!=nil && paramStr.length>0 arr = paramStr.split(',') arr.each{ |elem| if params[elem] == "" || params[elem] == nil UmfLogger.logInfoMsg("[UMF SDK]请求接口 service = " + service + " 的参数值 "+ elem + " 不能为空") UmfLogger.logInfoMsg("--------------------log end---------------------") exit end } # 历史订单查询接口mer_order_info_query # trade_no和order_id这两个字段必填字段传一个即可 if service=="mer_order_info_query" order_id = params["order_id"] trade_no = params["trade_no"] if (""==order_id||nil==order_id) && (""==trade_no||nil==trade_no) UmfLogger.logInfoMsg("[UMF SDK]请求接口 service = " + service + " 的参数值 " + "order_id 和 trade_no" + " 不能同时为空") UmfLogger.logInfoMsg("--------------------log end---------------------") exit end end end # 该service对应的字段正则校验 ruleMap = ReqRule ruleMapKeys = ruleMap.keys mapKeys = params.keys mapKeys.each{ |elem| value = params[elem] if !(ruleMapKeys.include?(elem)) next elsif ruleMapKeys.include?(elem) regex = ruleMap[elem] if value!="" && value!=nil && regex!="" && regex!=nil #TODO 存在正则校验不通过的情况 if regex.match(value) UmfLogger.logInfoMsg("[UMF SDK]请求接口 service = "+ service +" 的参数值 "+ elem +" 正则校验通过") else UmfLogger.logInfoMsg("[UMF SDK]请求接口 service = "+ service +" 的参数值 "+ elem +" 正则校验未通过,对应的正则表达式为 regex = " + regex) # UmfLogger.logInfoMsg("--------------------log end---------------------") # exit end end end } end
doEncrypt(params)
click to toggle source
敏感字段加密
# File lib/UmfCheckReqDataAndEncrypt.rb, line 69 def doEncrypt(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 UmfLogger.logInfoMsg("[UMF SDK]请求接口 service = " + params["service"] + " 的参数值 " + elem +" 是敏感字段需要进行RSA公钥加密") # utf8 --> gbk val = value.encode('gbk','utf-8') params[elem] = UmfRSACryptUtil.new.encrypt(val) } return params end