解决冲突
This commit is contained in:
@@ -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());
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -605,6 +605,7 @@ public class SxfMerchantAuditServiceImpl extends BaseMerchantAuditService {
|
||||
// 判断经营类型
|
||||
switch (sxfMccInfo.getFMccType()) {
|
||||
case "线上":
|
||||
//TODO 如果渠道判定魏线上则 onlineType onlineName为必填
|
||||
map.put("operationalType", "02");
|
||||
break;
|
||||
case "非盈利":
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user