|
@@ -238,6 +238,7 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
Integer orderId = null;
|
|
|
String payType = "";
|
|
|
Integer shopOrderId = null;
|
|
|
+ Integer infoId = null;
|
|
|
if (1 == status) {
|
|
|
NotifyResponseVo res = (NotifyResponseVo) o;
|
|
|
mbOrderId = res.getRt3_systemSerial();
|
|
@@ -262,12 +263,14 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
orderId = Integer.valueOf(s[1]);
|
|
|
shopOrderId = Integer.valueOf(s[2]);
|
|
|
//infoId
|
|
|
- Integer infoId = Integer.valueOf(s[3]);
|
|
|
+ infoId = Integer.valueOf(s[3]);
|
|
|
String bankCode = res.getRt11_bankId();
|
|
|
Integer bankType = "DEBIT".equals(res.getRt12_onlineCardType()) ? 1 : 2;
|
|
|
+ payOrderMapper.updateQuickInfo(bankCode, bankType, infoId);
|
|
|
String userId = res.getRt14_userId().substring(1);
|
|
|
// 快捷支付借记卡支付28,快捷支付贷记卡支付29
|
|
|
payType = 1 == bankType ? "28" : "29";
|
|
|
+ payOrderMapper.insertBindId(res.getRt10_bindId(), res.getRt4_customerNumber(), userId, infoId);
|
|
|
}
|
|
|
// 订单信息
|
|
|
OrderVo order = orderCommonMapper.getOrderByOrderId(orderId);
|
|
@@ -360,6 +363,10 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
discernReceipt.setReviewDate(curDateStr);
|
|
|
discernReceipt.setUpdateDate(curDateStr);
|
|
|
discernReceipt.setDelFlag(0);
|
|
|
+ if (2 == status) {
|
|
|
+ //快捷支付回调,存入支付银行卡信息infoId
|
|
|
+ discernReceipt.setInfoId(infoId);
|
|
|
+ }
|
|
|
// 保存 收款记录
|
|
|
baseMapper.insertDiscernReceipt(discernReceipt);
|
|
|
log.info("【支付异步回调】>>>>>>>>>>>保存识别款项(insert[cm_discern_receipt])id:" + discernReceipt.getId() + ",orderId:" + orderId);
|
|
@@ -1357,10 +1364,12 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
return "SUCCESS";
|
|
|
}
|
|
|
} else {
|
|
|
+ // 支付验证码校验失败删除银行卡信息
|
|
|
log.info("快捷支付付款状态异常============================> res:" + res);
|
|
|
delQuickInfo(res);
|
|
|
}
|
|
|
} else {
|
|
|
+ // 支付验证码校验失败删除银行卡信息
|
|
|
log.info("快捷支付回调验签失败=========================> res:" + res);
|
|
|
delQuickInfo(res);
|
|
|
}
|
|
@@ -1379,6 +1388,11 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
|
|
|
@Override
|
|
|
public ResponseJson<Map<String, String>> bindBankCard(HeliDto heliDto) {
|
|
|
+ // 校验是否已绑
|
|
|
+ QuickInfoVo infoByBankNumber = payOrderMapper.findInfoByBankNumber(heliDto.getQuickPayBankNumber());
|
|
|
+ if (null != infoByBankNumber && null != infoByBankNumber.getId()) {
|
|
|
+ return ResponseJson.error("卡已绑定!");
|
|
|
+ }
|
|
|
log.info("helidto-------------" + heliDto);
|
|
|
QuickPayBindCardPreOrderVo confirmBindCardVo = new QuickPayBindCardPreOrderVo();
|
|
|
String time = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
|
|
@@ -1424,25 +1438,18 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
log.info("短信发送失败------------------------");
|
|
|
return ResponseJson.error("短信发送失败!");
|
|
|
}
|
|
|
- QuickInfoVo quickInfoVo = payOrderMapper.findInfoByBankNumber(heliDto.getQuickPayBankNumber());
|
|
|
- if (null != quickInfoVo && null != quickInfoVo.getId()) {
|
|
|
- map.put("orderId", orderId);
|
|
|
- map.put("infoId", quickInfoVo.getId().toString());
|
|
|
- return ResponseJson.success(map);
|
|
|
- } else {
|
|
|
- //绑定成功,存卡
|
|
|
- quick.setBankNumber(heliDto.getQuickPayBankNumber());
|
|
|
- quick.setBindMobile(heliDto.getQuickPayMobile());
|
|
|
- quick.setUserId(heliDto.getUserId());
|
|
|
- quick.setQuickPayUserId("U" + heliDto.getUserId());
|
|
|
- quick.setIdCard(heliDto.getIdCard());
|
|
|
- quick.setBankUserName(heliDto.getQuickPayUserName());
|
|
|
- if (null != heliDto.getQuickPayBankExpireTime()) {
|
|
|
- quick.setBankCvvCode(heliDto.getCvvCode());
|
|
|
- quick.setBankExpireTime(heliDto.getQuickPayBankExpireTime());
|
|
|
- }
|
|
|
- payOrderMapper.insertQuickPayInfo(quick);
|
|
|
+ //绑定成功,存卡
|
|
|
+ quick.setBankNumber(heliDto.getQuickPayBankNumber());
|
|
|
+ quick.setBindMobile(heliDto.getQuickPayMobile());
|
|
|
+ quick.setUserId(heliDto.getUserId());
|
|
|
+ quick.setQuickPayUserId("U" + heliDto.getUserId());
|
|
|
+ quick.setIdCard(heliDto.getIdCard());
|
|
|
+ quick.setBankUserName(heliDto.getQuickPayUserName());
|
|
|
+ if (null != heliDto.getQuickPayBankExpireTime()) {
|
|
|
+ quick.setBankCvvCode(heliDto.getCvvCode());
|
|
|
+ quick.setBankExpireTime(heliDto.getQuickPayBankExpireTime());
|
|
|
}
|
|
|
+ payOrderMapper.insertQuickPayInfo(quick);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
@@ -1497,7 +1504,10 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
}
|
|
|
if (1 == flag) {
|
|
|
ConfirmBindCardResponseVo res = (ConfirmBindCardResponseVo) response;
|
|
|
- if (!"0000".equals(res.getRt2_retCode())) {
|
|
|
+ // 8015短信验证码错误或已过期
|
|
|
+ if ("8015".equals(res.getRt2_retCode())) {
|
|
|
+ return ResponseJson.error(-2, res.getRt3_retMsg());
|
|
|
+ } else if (!"0000".equals(res.getRt2_retCode())) {
|
|
|
//失败删除info
|
|
|
payOrderMapper.delQuickInfo(infoId);
|
|
|
log.info("------------绑定失败---------------");
|
|
@@ -1527,17 +1537,14 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
payOrderMapper.insertBindId(res.getRt10_bindId(), res.getRt4_customerNumber(), res.getRt5_userId().substring(1), Integer.valueOf(infoId));
|
|
|
} else {
|
|
|
QuickPayConfirmPayResponseVo res = (QuickPayConfirmPayResponseVo) response;
|
|
|
- if (!"0000".equals(res.getRt2_retCode())) {
|
|
|
- //失败删除info
|
|
|
- payOrderMapper.delQuickInfo(infoId);
|
|
|
- log.info("------------绑定失败---------------");
|
|
|
+ // 8015短信验证码错误或已过期
|
|
|
+ if ("8015".equals(res.getRt2_retCode())) {
|
|
|
+ return ResponseJson.error(-2, res.getRt3_retMsg());
|
|
|
+ } else if (!"0000".equals(res.getRt2_retCode())) {
|
|
|
+ // 下单支付在回调中修改绑卡信息
|
|
|
+ log.info("------------下单支付验证码校验失败---------------");
|
|
|
return ResponseJson.error(res.getRt3_retMsg());
|
|
|
}
|
|
|
- String bankCode = res.getRt11_bankId();
|
|
|
- Integer bankType = "DEBIT".equals(res.getRt12_onlineCardType()) ? 1 : 2;
|
|
|
- payOrderMapper.updateQuickInfo(bankCode, bankType, Integer.valueOf(infoId));
|
|
|
- String userId = res.getRt14_userId().substring(1);
|
|
|
- payOrderMapper.insertBindId(res.getRt10_bindId(), res.getRt4_customerNumber(), userId, Integer.valueOf(infoId));
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|