|
@@ -11,6 +11,7 @@ import com.caimei365.order.mapper.OrderCommonMapper;
|
|
|
import com.caimei365.order.mapper.PayOrderMapper;
|
|
|
import com.caimei365.order.model.ResponseJson;
|
|
|
import com.caimei365.order.model.bo.PayParamBo;
|
|
|
+import com.caimei365.order.model.dto.BankListDto;
|
|
|
import com.caimei365.order.model.dto.HeliDto;
|
|
|
import com.caimei365.order.model.enums.AccountPayOrderType;
|
|
|
import com.caimei365.order.model.enums.AppPayType;
|
|
@@ -1278,7 +1279,7 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public ResponseJson quickPay(HeliDto heliDto, HttpHeaders headers) {
|
|
|
+ public ResponseJson<Map<String, String>> quickPay(HeliDto heliDto, HttpHeaders headers) {
|
|
|
FirstQuickPayVo firstQuickPayVo = new FirstQuickPayVo();
|
|
|
heliPayUtil.setQuickValue(heliDto, firstQuickPayVo, headers);
|
|
|
Map reqestMap = null;
|
|
@@ -1302,7 +1303,9 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
log.info("交易失败-------------->" + responseVo.getRt3_retMsg());
|
|
|
return ResponseJson.error(responseVo.getRt3_retMsg());
|
|
|
}
|
|
|
- return ResponseJson.success();
|
|
|
+ HashMap<String, String> map = new HashMap<>();
|
|
|
+ map.put("customer", responseVo.getRt4_customerNumber());
|
|
|
+ return ResponseJson.success(map);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
@@ -1345,7 +1348,8 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public ResponseJson bindBankCard(HeliDto heliDto) {
|
|
|
+ public ResponseJson<Map<String, String>> bindBankCard(HeliDto heliDto) {
|
|
|
+ log.info("helidto-------------" + heliDto);
|
|
|
QuickPayBindCardPreOrderVo confirmBindCardVo = new QuickPayBindCardPreOrderVo();
|
|
|
String time = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
|
|
|
String orderId = "bd_" + heliDto.getUserId() + "_" + time;
|
|
@@ -1359,11 +1363,20 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
confirmBindCardVo.setP7_idCardType("IDCARD");
|
|
|
confirmBindCardVo.setP8_idCardNo(heliDto.getIdCard());
|
|
|
confirmBindCardVo.setP9_cardNo(heliDto.getQuickPayBankNumber());
|
|
|
+ if (StringUtils.isNotBlank(heliDto.getQuickPayBankExpireTime())) {
|
|
|
+ String[] split = heliDto.getQuickPayBankExpireTime().split("-");
|
|
|
+ confirmBindCardVo.setP10_year(split[0]);
|
|
|
+ confirmBindCardVo.setP11_month(split[1]);
|
|
|
+ confirmBindCardVo.setP12_cvv2(heliDto.getCvvCode());
|
|
|
+ }
|
|
|
confirmBindCardVo.setP13_phone(heliDto.getQuickPayMobile());
|
|
|
confirmBindCardVo.setProtocolType("protocol");
|
|
|
confirmBindCardVo.setSendValidateCode("true");
|
|
|
confirmBindCardVo.setSignatureType("SM3WITHSM2");
|
|
|
+
|
|
|
+ QuickInfoVo quickInfoVo = new QuickInfoVo();
|
|
|
Map reqestMap = null;
|
|
|
+ Map<String, String> map = new HashMap<>();
|
|
|
try {
|
|
|
reqestMap = MessageHandle.getReqestMap(confirmBindCardVo);
|
|
|
Map<String, Object> resultMap = HttpClientService.getHttpResp(reqestMap, Constant.REQUEST_URL_QUICKPAY);
|
|
@@ -1372,28 +1385,52 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
log.info("请求失败--------------------");
|
|
|
return ResponseJson.error("请求失败!");
|
|
|
}
|
|
|
-
|
|
|
String resultMsg = (String) resultMap.get("response");
|
|
|
BindCardPreOrderResponseVo responseVo = JSONObject.parseObject(resultMsg, BindCardPreOrderResponseVo.class);
|
|
|
if (!MessageHandle.checkSign(responseVo)) {
|
|
|
log.info("验签失败");
|
|
|
return ResponseJson.error("验签失败!");
|
|
|
}
|
|
|
- if (!"SUCCESS".equals(responseVo.getSmsMsg())) {
|
|
|
+ if (!"0000".equals(responseVo.getRt2_retCode())) {
|
|
|
log.info("短信发送失败------------------------");
|
|
|
return ResponseJson.error("短信发送失败!");
|
|
|
}
|
|
|
+ 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 {
|
|
|
+ //绑定成功,存卡
|
|
|
+ quickInfoVo.setBankNumber(heliDto.getQuickPayBankNumber());
|
|
|
+ quickInfoVo.setBindMobile(heliDto.getQuickPayMobile());
|
|
|
+ quickInfoVo.setUserId(heliDto.getUserId());
|
|
|
+ quickInfoVo.setQuickPayUserId("U" + heliDto.getUserId());
|
|
|
+ quickInfoVo.setIdCard(heliDto.getIdCard());
|
|
|
+ quickInfoVo.setBankUserName(heliDto.getQuickPayUserName());
|
|
|
+ if (null != heliDto.getQuickPayBankExpireTime()) {
|
|
|
+ quickInfoVo.setBankCvvCode(heliDto.getCvvCode());
|
|
|
+ quickInfoVo.setBankExpireTime(heliDto.getQuickPayBankExpireTime());
|
|
|
+ }
|
|
|
+ payOrderMapper.insertQuickPayInfo(quickInfoVo);
|
|
|
+ }
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
- return ResponseJson.success(orderId);
|
|
|
+ map.put("orderId", orderId);
|
|
|
+ map.put("infoId", quickInfoVo.getId().toString());
|
|
|
+ return ResponseJson.success(map);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public ResponseJson bindByCode(String bindCode, String orderId) {
|
|
|
+ public ResponseJson bindByCode(String bindCode, String orderId, String infoId, String customer) {
|
|
|
ConfirmBindCardVo confirmBindCardVo = new ConfirmBindCardVo();
|
|
|
confirmBindCardVo.setP1_bizType("ConfirmBindCard");
|
|
|
confirmBindCardVo.setP2_customerNumber(Constant.CUSTOMERNUM2);
|
|
|
+ if (StringUtils.isNotBlank(customer)) {
|
|
|
+ //下单
|
|
|
+ confirmBindCardVo.setP2_customerNumber(customer);
|
|
|
+ }
|
|
|
confirmBindCardVo.setP3_orderId(orderId);
|
|
|
String[] s = orderId.split("_");
|
|
|
confirmBindCardVo.setP4_timestamp(s[2]);
|
|
@@ -1405,18 +1442,32 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
Map<String, Object> resultMap = HttpClientService.getHttpResp(reqestMap, Constant.REQUEST_URL_QUICKPAY);
|
|
|
log.info("响应结果:" + resultMap);
|
|
|
if ((Integer) resultMap.get("statusCode") != org.apache.commons.httpclient.HttpStatus.SC_OK) {
|
|
|
- log.info("请求失败");
|
|
|
+ log.info("--------------请求失败----------------");
|
|
|
+ //失败删除info
|
|
|
+ payOrderMapper.delQuickInfo(infoId);
|
|
|
return ResponseJson.error("请求失败");
|
|
|
}
|
|
|
String resultMsg = (String) resultMap.get("response");
|
|
|
ConfirmBindCardResponseVo responseVo = JSONObject.parseObject(resultMsg, ConfirmBindCardResponseVo.class);
|
|
|
if (!MessageHandle.checkSign(responseVo)) {
|
|
|
+ //失败删除info
|
|
|
+ payOrderMapper.delQuickInfo(infoId);
|
|
|
+ log.info("------------验签失败---------------");
|
|
|
return ResponseJson.error("验签失败!");
|
|
|
}
|
|
|
- if (!"SUCCESS".equals(responseVo.getRt7_bindStatus())) {
|
|
|
+ if (!"0000".equals(responseVo.getRt2_retCode())) {
|
|
|
+ //失败删除info
|
|
|
+ payOrderMapper.delQuickInfo(infoId);
|
|
|
+ log.info("------------绑定失败---------------");
|
|
|
return ResponseJson.error("绑定失败!");
|
|
|
}
|
|
|
-
|
|
|
+ if (StringUtils.isNotBlank(infoId)) {
|
|
|
+ /** 绑定成功 保存合利宝bindId
|
|
|
+ * 传infoId是绑卡,传customer是付款
|
|
|
+ **/
|
|
|
+ payOrderMapper.updateQuickInfo(responseVo.getRt8_bankId(), null, Integer.valueOf(infoId));
|
|
|
+ payOrderMapper.insertBindId(responseVo.getRt10_bindId(), responseVo.getRt4_customerNumber(), responseVo.getRt5_userId().substring(1), Integer.valueOf(infoId));
|
|
|
+ }
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
@@ -1424,8 +1475,16 @@ public class HeliPayServiceImpl implements HeliPayService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public ResponseJson<List<QuickBankVo>> bankInfos(Integer cardType) {
|
|
|
- return ResponseJson.success(payOrderMapper.findQuickBank(cardType));
|
|
|
+ public ResponseJson<List<BankListDto>> bankInfos(Integer cardType) {
|
|
|
+ List<String> ins = payOrderMapper.findQuickBankInitial(cardType);
|
|
|
+ List<BankListDto> bankList = new ArrayList<>();
|
|
|
+ ins.forEach(i -> {
|
|
|
+ BankListDto bankListDto = new BankListDto();
|
|
|
+ bankListDto.setInitial(i);
|
|
|
+ bankListDto.setBanks(payOrderMapper.findQuickBank(cardType, i));
|
|
|
+ bankList.add(bankListDto);
|
|
|
+ });
|
|
|
+ return ResponseJson.success(bankList);
|
|
|
}
|
|
|
|
|
|
@Override
|