Class: UmfCheckReqDataAndEncrypt
- Inherits:
-
Object
- Object
- UmfCheckReqDataAndEncrypt
- Defined in:
- lib/UmfCheckReqDataAndEncrypt.rb
Instance Method Summary collapse
-
#doCheck(params) ⇒ Object
参数校验 service对应必填字段校验 & 正则校验.
-
#doEncrypt(params) ⇒ Object
敏感字段加密.
Instance Method Details
#doCheck(params) ⇒ Object
参数校验service对应必填字段校验 & 正则校验
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# 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) ⇒ Object
敏感字段加密
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# 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 |