Commit 65dd2bf8 authored by 黎博's avatar 黎博

Merge branch 'master' into automation

parents 88e47805 bf1c946b
package cn.qg.qaplatform.mock.controller;
import cn.qg.qaplatform.mock.service.MockService;
import cn.qg.qaplatform.utils.JsonResult;
import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.mock.entity.Mock;
import cn.qg.qaplatform.mock.mapper.MockMapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.qg.qaplatform.mock.service.MockService;
import cn.qg.qaplatform.utils.JsonResult;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......
......@@ -3,23 +3,19 @@ package cn.qg.qaplatform.mock.interceptor;
import cn.qg.qaplatform.config.SwitchDataSource;
import cn.qg.qaplatform.mock.encrypt.factory.EncryptConvertor;
import cn.qg.qaplatform.mock.encrypt.factory.EncryptFactory;
import cn.qg.qaplatform.mock.encrypt.paycenter.Aes;
import cn.qg.qaplatform.mock.encrypt.paycenter.Rsa;
import cn.qg.qaplatform.mock.entity.Mock;
import cn.qg.qaplatform.mock.mapper.MockMapper;
import cn.qg.qaplatform.mock.utils.BankCardUtils;
import cn.qg.qaplatform.utils.JsonTransUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.lang.Nullable;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
......@@ -34,19 +30,40 @@ public class PayInterceptor implements HandlerInterceptor {
private String namespace = "pre";
/**
* 获取HttpServletRequest的body
* @param request HttpServletRequest
* 将HttpServletRequest的parameterMap由Map<String, String[]>转换成Map<String, Object>
* @param parameterMap
* @return
* @throws IOException
*/
private String getRequestBody(HttpServletRequest request) throws IOException {
BufferedReader br = request.getReader();
String str;
StringBuilder wholeStr = new StringBuilder();
while((str = br.readLine()) != null){
wholeStr.append(str);
public Map<String, Object> requestMapTrans(Map<String, String[]> parameterMap) {
Map<String, Object> map = new HashMap<>();
for (Map.Entry<String, String[]> entry: parameterMap.entrySet()) {
String key = entry.getKey();
String value = entry.getValue()[0];
map.put(key, value);
}
return wholeStr.toString();
return map;
}
/**
* 接口/tzt-api/api/bankcard/check 请求的mock响应
* @param cardNo 银行卡号
* @param merchantno 商户号
* @return 响应Map
*/
public Map<String, Object> getBankcardCheckResponse(String cardNo, String merchantno) {
Map<String, Object> map = new HashMap<>();
String bankCode = BankCardUtils.getCardCode(cardNo);
String bankName = BankCardUtils.getBankName(bankCode);
map.put("bankCode", bankCode);
map.put("bankName", bankName);
map.put("cardTop", cardNo.substring(0, 5));
map.put("cardlast", cardNo.substring(cardNo.length()-4));
map.put("cardtype", "DEBIT");
map.put("errorcode", "");
map.put("errormsg", "");
map.put("isvalid", "VALID");
map.put("merchantno", merchantno);
return map;
}
@Override
......@@ -54,6 +71,8 @@ public class PayInterceptor implements HandlerInterceptor {
throws Exception {
SwitchDataSource.dataSourceSwitch(namespace, "qa");
String uri = request.getRequestURI().substring(5);
Map<String, String[]> parameterMap = request.getParameterMap();
log.info("打印请求参数:{}", parameterMap);
QueryWrapper<Mock> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("url", uri);
Mock mock = mockMapper.selectOne(queryWrapper);
......@@ -62,8 +81,15 @@ public class PayInterceptor implements HandlerInterceptor {
PrintWriter printWriter = response.getWriter();
// 对request进行解密
EncryptConvertor encryptConvertor = EncryptFactory.produce("yeebao");
Map<String, Object> requestMap = JsonTransUtils.strToMap(encryptConvertor.decrypt(getRequestBody(request)));
Map<String, Object> requestMap = JsonTransUtils.strToMap(encryptConvertor.decrypt(JsonTransUtils.mapToJson(requestMapTrans(parameterMap))));
Map<String, Object> responseMap = new HashMap<>();
if (uri.equals("/tzt-api/api/bankcard/check")) {
String cardNo = requestMap.get("cardno").toString();
String merchantno = requestMap.get("merchantno").toString();
responseMap = getBankcardCheckResponse(cardNo, merchantno);
printWriter.write(encryptConvertor.encrypt(JsonTransUtils.mapToJson(responseMap)));
return true;
}
if (mock.getFlag().equals(1)) {
responseMap = JsonTransUtils.strToMap(mock.getSuccess());
} else if (mock.getFlag().equals(0)) {
......
package cn.qg.qaplatform.mock.utils;
import cn.qg.qaplatform.utils.HttpClientUtils;
import com.alibaba.fastjson.JSONObject;
public class BankCardUtils {
public static String getCardCode(String cardNo) {
String url = "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=" + cardNo + "&cardBinCheck=true";
JSONObject resposne = HttpClientUtils.doGetReturnJson(url);
return resposne.get("bank").toString();
}
public static void main(String[] args) {
System.out.println(getBankName("CCB"));
}
public static String getBankName(String code){
int a = 0;
for (int i = 0; i < bankBin.length-165; i++) {
if(code.equals(bankBin[i+a])){
return bankBin[i+a+1];
}
a++;
}
return "";
}
private final static String[] bankBin = {
"SRCB", "深圳农村商业银行",
"BGB", "广西北部湾银行",
"SHRCB", "上海农村商业银行",
"BJBANK", "北京银行",
"WHCCB", "威海市商业银行",
"BOZK", "周口银行",
"KORLABANK", "库尔勒市商业银行",
"SPABANK", "平安银行",
"SDEB", "顺德农商银行",
"HURCB", "湖北省农村信用社",
"WRCB", "无锡农村商业银行",
"BOCY", "朝阳银行",
"CZBANK", "浙商银行",
"HDBANK", "邯郸银行",
"BOC", "中国银行",
"BOD", "东莞银行",
"CCB", "中国建设银行",
"ZYCBANK", "遵义市商业银行",
"SXCB", "绍兴银行",
"GZRCU", "贵州省农村信用社",
"ZJKCCB", "张家口市商业银行",
"BOJZ", "锦州银行",
"BOP", "平顶山银行",
"HKB", "汉口银行",
"SPDB", "上海浦东发展银行",
"NXRCU", "宁夏黄河农村商业银行",
"NYNB", "广东南粤银行",
"GRCB", "广州农商银行",
"BOSZ", "苏州银行",
"HZCB", "杭州银行",
"HSBK", "衡水银行",
"HBC", "湖北银行",
"JXBANK", "嘉兴银行",
"HRXJB", "华融湘江银行",
"BODD", "丹东银行",
"AYCB", "安阳银行",
"EGBANK", "恒丰银行",
"CDB", "国家开发银行",
"TCRCB", "江苏太仓农村商业银行",
"NJCB", "南京银行",
"ZZBANK", "郑州银行",
"DYCB", "德阳商业银行",
"YBCCB", "宜宾市商业银行",
"SCRCU", "四川省农村信用",
"KLB", "昆仑银行",
"LSBANK", "莱商银行",
"YDRCB", "尧都农商行",
"CCQTGB", "重庆三峡银行",
"FDB", "富滇银行",
"JSRCU", "江苏省农村信用联合社",
"JNBANK", "济宁银行",
"CMB", "招商银行",
"JINCHB", "晋城银行JCBANK",
"FXCB", "阜新银行",
"WHRCB", "武汉农村商业银行",
"HBYCBANK", "湖北银行宜昌分行",
"TZCB", "台州银行",
"TACCB", "泰安市商业银行",
"XCYH", "许昌银行",
"CEB", "中国光大银行",
"NXBANK", "宁夏银行",
"HSBANK", "徽商银行",
"JJBANK", "九江银行",
"NHQS", "农信银清算中心",
"MTBANK", "浙江民泰商业银行",
"LANGFB", "廊坊银行",
"ASCB", "鞍山银行",
"KSRB", "昆山农村商业银行",
"YXCCB", "玉溪市商业银行",
"DLB", "大连银行",
"DRCBCL", "东莞农村商业银行",
"GCB", "广州银行",
"NBBANK", "宁波银行",
"BOYK", "营口银行",
"SXRCCU", "陕西信合",
"GLBANK", "桂林银行",
"BOQH", "青海银行",
"CDRCB", "成都农商银行",
"QDCCB", "青岛银行",
"HKBEA", "东亚银行",
"HBHSBANK", "湖北银行黄石分行",
"WZCB", "温州银行",
"TRCB", "天津农商银行",
"QLBANK", "齐鲁银行",
"GDRCC", "广东省农村信用社联合社",
"ZJTLCB", "浙江泰隆商业银行",
"GZB", "赣州银行",
"GYCB", "贵阳市商业银行",
"CQBANK", "重庆银行",
"DAQINGB", "龙江银行",
"CGNB", "南充市商业银行",
"SCCB", "三门峡银行",
"CSRCB", "常熟农村商业银行",
"SHBANK", "上海银行",
"JLBANK", "吉林银行",
"CZRCB", "常州农村信用联社",
"BANKWF", "潍坊银行",
"ZRCBANK", "张家港农村商业银行",
"FJHXBC", "福建海峡银行",
"ZJNX", "浙江省农村信用社联合社",
"LZYH", "兰州银行",
"JSB", "晋商银行",
"BOHAIB", "渤海银行",
"CZCB", "浙江稠州商业银行",
"YQCCB", "阳泉银行",
"SJBANK", "盛京银行",
"XABANK", "西安银行",
"BSB", "包商银行",
"JSBANK", "江苏银行",
"FSCB", "抚顺银行",
"HNRCU", "河南省农村信用",
"COMM", "交通银行",
"XTB", "邢台银行",
"CITIC", "中信银行",
"HXBANK", "华夏银行",
"HNRCC", "湖南省农村信用社",
"DYCCB", "东营市商业银行",
"ORBANK", "鄂尔多斯银行",
"BJRCB", "北京农村商业银行",
"XYBANK", "信阳银行",
"ZGCCB", "自贡市商业银行",
"CDCB", "成都银行",
"HANABANK", "韩亚银行",
"CMBC", "中国民生银行",
"LYBANK", "洛阳银行",
"GDB", "广东发展银行",
"ZBCB", "齐商银行",
"CBKF", "开封市商业银行",
"H3CB", "内蒙古银行",
"CIB", "兴业银行",
"CRCBANK", "重庆农村商业银行",
"SZSBK", "石嘴山银行",
"DZBANK", "德州银行",
"SRBANK", "上饶银行",
"LSCCB", "乐山市商业银行",
"JXRCU", "江西省农村信用",
"ICBC", "中国工商银行",
"JZBANK", "晋中市商业银行",
"HZCCB", "湖州市商业银行",
"NHB", "南海农村信用联社",
"XXBANK", "新乡银行",
"JRCB", "江苏江阴农村商业银行",
"YNRCC", "云南省农村信用社",
"ABC", "中国农业银行",
"GXRCU", "广西省农村信用",
"PSBC", "中国邮政储蓄银行",
"BZMD", "驻马店银行",
"ARCU", "安徽省农村信用社",
"GSRCU", "甘肃省农村信用",
"LYCB", "辽阳市商业银行",
"JLRCU", "吉林农信",
"URMQCCB", "乌鲁木齐市商业银行",
"XLBANK", "中山小榄村镇银行",
"CSCB", "长沙银行",
"JHBANK", "金华银行",
"BHB", "河北银行",
"NBYZ", "鄞州银行",
"LSBC", "临商银行",
"BOCD", "承德银行",
"SDRCU", "山东农信",
"NCB", "南昌银行",
"TCCB", "天津银行",
"WJRCB", "吴江农商银行",
"CBBQS", "城市商业银行资金清算中心",
"HBRCU", "河北省农村信用社"
};
}
......@@ -17,10 +17,10 @@ import java.util.List;
import java.util.Map;
public class Xyqb {
public static String namespace = "vcc2";
public static String namespace = "vcc3";
public static Integer channelId = 1;
public static Integer fundId = 480;
public static String phone = "18300000120";
public static String phone = "13502760991";
public static String token = "";
public static String uuid = "";
public static Long userId;
......@@ -664,34 +664,34 @@ public class Xyqb {
public static void main(String[] args) throws Exception {
// 分配资金方
loginFundOP();
unblockLoan();
boolean result = assignFundOrNot();
if (!result) {
setFundPlan();
unblockLoan();
}
// 授信
login();
checkUserId();
// 如果是云信,则需要插入银行卡
if (fundId == 1040) {
insertBankCardOfYunxing();
}
syncSessionToXyqb();
creditSessionSync();
realNameVerified();
authBasicInfo();
enterAuthOcr();
uploadFrontOfIdCard();
uploadBackOfIdCard();
submitPhotoAuth();
credit();
submitAudit();
queryUserAuditRecord();
creditAuthNotify();
Thread.sleep(180000);
// loginFundOP();
// unblockLoan();
// boolean result = assignFundOrNot();
// if (!result) {
// setFundPlan();
// unblockLoan();
// }
//
//// 授信
// login();
// checkUserId();
// // 如果是云信,则需要插入银行卡
// if (fundId == 1040) {
// insertBankCardOfYunxing();
// }
// syncSessionToXyqb();
// creditSessionSync();
// realNameVerified();
// authBasicInfo();
// enterAuthOcr();
// uploadFrontOfIdCard();
// uploadBackOfIdCard();
// submitPhotoAuth();
// credit();
// submitAudit();
// queryUserAuditRecord();
// creditAuthNotify();
// Thread.sleep(180000);
// 绑卡提现
login();
......@@ -701,21 +701,21 @@ public class Xyqb {
getUserAccountId();
bindCard();
cardAuthSms();
cardAuthSmsConfirm();
getBindCardList();
createLoan();
externalQuotaOrderAuditNotify();
modifyContactStatus();
Thread.sleep(10000);
// 放款
loginOP();
checkWaitingFundingCorpOperatePeople();
modifyWaitingFundingCreatedAt();
Thread.sleep(10000);
fundsPlanLoanApply();
Thread.sleep(10000);
payNotify();
// cardAuthSmsConfirm();
// getBindCardList();
// createLoan();
// externalQuotaOrderAuditNotify();
// modifyContactStatus();
// Thread.sleep(10000);
// // 放款
// loginOP();
// checkWaitingFundingCorpOperatePeople();
// modifyWaitingFundingCreatedAt();
// Thread.sleep(10000);
// fundsPlanLoanApply();
// Thread.sleep(10000);
// payNotify();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment