解决冲突

This commit is contained in:
zhujunshuai
2023-02-02 16:50:59 +08:00
21 changed files with 244 additions and 534 deletions

View File

@@ -142,11 +142,12 @@ public class BaiduFaceDetectServiceImpl implements BaiduFaceDetectService {
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try {
Thumbnails.of(bais).size(1920, 1080).toOutputStream(baos);
} catch (IOException e) {
throw new RuntimeException(e);
}
//TODO 图片压缩 暂时注释
// try {
// Thumbnails.of(bais).size(1920, 1080).toOutputStream(baos);
// } catch (IOException e) {
// throw new RuntimeException(e);
// }
dist = DatatypeConverter.printBase64Binary(baos.toByteArray());

View File

@@ -18,6 +18,15 @@ public interface AliyunService extends IpLocationService {
* @return 校验结果
*/
void checkBankCorrect(String phone, String bankCardNo, String certNo, String realName);
/**
* 银行卡四要素(新)
* @param phone 手机号
* @param bankCardNo 银行卡号
* @param certNo 身份证号
* @param realName 姓名
* @return 校验结果
*/
void checkBankCorrectNow(String phone, String bankCardNo, String certNo, String realName);
/**
* 银行卡四要素
@@ -28,6 +37,15 @@ public interface AliyunService extends IpLocationService {
* @return 校验结果
*/
void checkBankCorrect(String phone, String bankCardNo, String certNo, String realName, String errorMsg);
/**
* 银行卡四要素(新)
* @param phone 手机号
* @param bankCardNo 银行卡号
* @param certNo 身份证号
* @param realName 姓名
* @return 校验结果
*/
void checkBankCorrectNow(String phone, String bankCardNo, String certNo, String realName,String errorMsg);
AssumeRoleResponse.Credentials stsToken(String userId);
}

View File

@@ -10,6 +10,7 @@ import cn.pluss.platform.util.HttpResult;
import cn.pluss.platform.util.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aliyun.cloudauth20200618.models.VerifyBankElementResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.auth.sts.AssumeRoleRequest;
@@ -29,6 +30,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import com.aliyun.tea.*;
import com.aliyun.cloudauth20200618.Client;
import java.util.*;
@@ -49,6 +52,21 @@ public class AliyunServiceImpl implements AliyunService {
@Value("${aliyun.bankcard.bank-url}")
private String bankCheckUrl;
/**
*场景id
*/
@Value("${aliyun.bankcard.SceneId}")
private Long SceneId;
/**
* 阿里云key
*/
@Value("${aliyun.keyid}")
private String ACCESSKEYID;
/**
* 阿里云secret
*/
@Value("${aliyun.keysecret}")
private String ACCESSKEYSECRET;
/**
* 不好用
@@ -104,15 +122,23 @@ public class AliyunServiceImpl implements AliyunService {
// 调用阿里云银行卡认证接口
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "APPCODE " + appCode);
// headers.put("Authorization", "APPCODE " + appCode);
Map<String, Object> querys = new HashMap<>();
querys.put("Mobile", phone);
querys.put("bankcard", bankCardNo);
querys.put("cardNo", certNo);
querys.put("realName", realName);
// querys.put("bankcard", BankCardNo);
//querys.put("cardNo", certNo);
// querys.put("realName", realName);
querys.put("Mode", "VERIFY_BANK_CARD");
querys.put("OuterOrderNo", appCode);
querys.put("BankCardNo", bankCardNo);
querys.put("IdName", realName);
querys.put("IdNo", certNo);
querys.put("SceneId", SceneId);
HttpResult response = null;
try {
response = HttpUtil.doGet(bankCheckUrl, headers, querys);
// response = HttpUtil.doGet(bankCheckUrl, querys);
response = HttpUtil.doGet(bankCheckUrl, headers, querys);
log.info(response.toString());
} catch (Exception e) {
e.printStackTrace();
@@ -135,7 +161,6 @@ public class AliyunServiceImpl implements AliyunService {
log.error("银行卡四要素检查:" + jsonObject.getString("reason"));
bank4Cache.setRemark(jsonObject.getString("reason"));
bank4Cache.setStatus(Bank4Cache.STATUS_FAIL);
bank4CacheService.save(bank4Cache);
throw new MsgException("身份证、银行卡或预留手机号信息不正确");
} else {
bank4Cache.setStatus(Bank4Cache.STATUS_PASS);
@@ -143,6 +168,8 @@ public class AliyunServiceImpl implements AliyunService {
}
}
@Override
public void checkBankCorrect(String phone, String bankCardNo, String certNo, String realName, String errorMsg) {
try {
@@ -152,6 +179,15 @@ public class AliyunServiceImpl implements AliyunService {
}
}
@Override
public void checkBankCorrectNow(String phone, String bankCardNo, String certNo, String realName, String errorMsg) {
try {
checkBankCorrectNow(phone, bankCardNo, certNo, realName);
} catch (Exception e) {
throw new MsgException(errorMsg);
}
}
@Override
public AssumeRoleResponse.Credentials stsToken(String userId) {
String endpoint = stsConfig.getEndpoint().replace("https://", "");
@@ -194,4 +230,71 @@ public class AliyunServiceImpl implements AliyunService {
throw new MsgException("无法获取oss上传凭证");
}
}
public static com.aliyun.cloudauth20200618.Client createClient(String accessKeyId, String accessKeySecret) throws Exception{
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// 必填,您的 AccessKey ID
.setAccessKeyId(accessKeyId)
// 必填,您的 AccessKey Secret
.setAccessKeySecret(accessKeySecret);
// 访问的域名
config.endpoint = "cloudauth.aliyuncs.com";
return new com.aliyun.cloudauth20200618.Client(config);
}
@Override
public void checkBankCorrectNow(String phone, String bankCardNo, String certNo, String realName) {
// java.util.List<String> args = java.util.Arrays.asList(args_);
//com.aliyun.cloudauth20200618.Client client = Sample.createClient("accessKeyId", "accessKeySecret");
Client client = null;
try {
client = createClient(ACCESSKEYID,ACCESSKEYSECRET);
} catch (Exception e) {
e.printStackTrace();
}
com.aliyun.cloudauth20200618.models.VerifyBankElementRequest verifyBankElementRequest = new com.aliyun.cloudauth20200618.models.VerifyBankElementRequest()
.setMode("VERIFY_BANK_CARD")
.setBankCardNo(bankCardNo)
.setIdNo(certNo)
.setIdName(realName)
.setMobile(phone)
.setSceneId(SceneId)
.setOuterOrderNo(appCode);
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
try {
// 复制代码运行请自行打印 API 的返回值
assert client != null;
VerifyBankElementResponse verifyBankElementResponse = client.verifyBankElementWithOptions(verifyBankElementRequest, runtime);
} catch (TeaException error) {
// 如有需要,请打印 error
com.aliyun.teautil.Common.assertAsString(error.message);
throw new MsgException("银行卡认证失败");
} catch (Exception _error) {
TeaException error = new TeaException(_error.getMessage(), _error);
// 如有需要,请打印 error
com.aliyun.teautil.Common.assertAsString(error.message);
throw new MsgException("银行卡认证失败");
}
// if (200 != response.getCode()) {
// if (403 == response.getCode()) {
// throw new MsgException("银行卡认证接口已欠费,请联系平台");
// } else {
// throw new MsgException("银行卡认证失败");
// }
// }
// if (!"0".equalsIgnoreCase(jsonObject.getString("error_code"))) {
// log.error("银行卡四要素检查:" + jsonObject.getString("reason"));
// bank4Cache.setRemark(jsonObject.getString("reason"));
// bank4Cache.setStatus(Bank4Cache.STATUS_FAIL);
// throw new MsgException("身份证、银行卡或预留手机号信息不正确");
// } else {
// bank4Cache.setStatus(Bank4Cache.STATUS_PASS);
// bank4CacheService.save(bank4Cache);
// }
}
}

View File

@@ -381,7 +381,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
if (checkFlag && !(settleTypeFlag)) {
// 执行银行卡四要素校验
aliyunService.checkBankCorrect(accountDTO.getBankCard().getPhone(), accountDTO.getBankCard().getBankCardNo()
aliyunService.checkBankCorrectNow(accountDTO.getBankCard().getPhone(), accountDTO.getBankCard().getBankCardNo()
, accountDTO.getIdcard().getCertNo()
, accountDTO.getBankCard().getBankHolder(), "结算人与结算银行卡不匹配,请核对结算信息");
}
@@ -1251,8 +1251,9 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
}
Notice notice = new Notice(1, 5, userApp);
//TODO 银行卡认证先绕过四要素检测
try {
aliyunService.checkBankCorrect(bankInfoDTO.getPhone(), bankInfoDTO.getBankCardNo(), idCard.getCertNo(), idCard.getCertName());
aliyunService.checkBankCorrectNow(bankInfoDTO.getPhone(), bankInfoDTO.getBankCardNo(), idCard.getCertNo(), idCard.getCertName());
} catch (MsgException e) {
notice = new Notice(1, 5, userApp);
notice.setConrtent("很遗憾你的银行卡认证未通过,请您核对信息后重新提交审核!");
@@ -1303,9 +1304,9 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
uaService.updateById(userApp);
// 调用极光通知推送
List<String> alias = new ArrayList<>();
alias.add(userApp.getUserId().toString());
generalPushUtil.sendAllPlatByAlias(alias, "银行卡认证通知", "审核通过", "1");
// List<String> alias = new ArrayList<>();
// alias.add(userApp.getUserId().toString());
// generalPushUtil.sendAllPlatByAlias(alias, "银行卡认证通知", "审核通过", "1");
}
@Override

View File

@@ -605,6 +605,7 @@ public class SxfMerchantAuditServiceImpl extends BaseMerchantAuditService {
// 判断经营类型
switch (sxfMccInfo.getFMccType()) {
case "线上":
//TODO 如果渠道判定魏线上则 onlineType onlineName为必填
map.put("operationalType", "02");
break;
case "非盈利":

View File

@@ -40,14 +40,16 @@ import java.util.Map;
public class WxTalkServiceImpl implements WxTalkService {
/**
* 企业微信审核机器人的链接
* 企业微信审核机器人的链接 https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=eba1e093-4cae-424d-be52-7013411194cc
*/
private static final String WX_TALK_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=eba1e093-4cae-424d-be52-7013411194cc";
//TODO 后面需要换成我们自己的
private static final String WX_TALK_URL = "";
/**
* 企业微信上市机器人的链接
* 企业微信上市机器人的链接 https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=d89ed4ad-d723-4dce-a80b-bbf370c91943
*/
public static final String WX_GO_PUBLIC_TALK_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=d89ed4ad-d723-4dce-a80b-bbf370c91943";
//TODO 后面需要换成我们自己的
public static final String WX_GO_PUBLIC_TALK_URL = "";
private final RestTemplate restTemplate;