|
@@ -167,14 +167,8 @@ public class HeliPayNonOrderServiceImpl implements HeliPayNonOrderService {
|
|
|
// 公钥验签
|
|
|
String oriMessage = MyBeanUtils.getSigned(res, null);
|
|
|
String oriMessage1 = oriMessage + Constant.SPLIT + Constant.SAOMA;
|
|
|
- String oriMessage2 = oriMessage + Constant.SPLIT + Constant.FENZHANG;
|
|
|
- String oriMessage3 = oriMessage + Constant.SPLIT + Constant.XUNI;
|
|
|
- String oriMessage4 = oriMessage + Constant.SPLIT + Constant.WANGYIN;
|
|
|
String checkSign1 = Disguiser.disguiseMD5(oriMessage1.trim());
|
|
|
- String checkSign2 = Disguiser.disguiseMD5(oriMessage2.trim());
|
|
|
- String checkSign3 = Disguiser.disguiseMD5(oriMessage3.trim());
|
|
|
- String checkSign4 = Disguiser.disguiseMD5(oriMessage4.trim());
|
|
|
- boolean b = sign.equals(checkSign1) || sign.equals(checkSign2) || sign.equals(checkSign3) || sign.equals(checkSign4);
|
|
|
+ boolean b = sign.equals(checkSign1);
|
|
|
if (!b) {
|
|
|
return "验签失败!";
|
|
|
}
|
|
@@ -471,14 +465,8 @@ public class HeliPayNonOrderServiceImpl implements HeliPayNonOrderService {
|
|
|
// 公钥验签
|
|
|
String oriMessage = MyBeanUtils.getSigned(res, null);
|
|
|
String oriMessage1 = oriMessage + Constant.SPLIT + Constant.SAOMA;
|
|
|
- String oriMessage2 = oriMessage + Constant.SPLIT + Constant.FENZHANG;
|
|
|
- String oriMessage3 = oriMessage + Constant.SPLIT + Constant.XUNI;
|
|
|
- String oriMessage4 = oriMessage + Constant.SPLIT + Constant.WANGYIN;
|
|
|
String checkSign1 = Disguiser.disguiseMD5(oriMessage1.trim());
|
|
|
- String checkSign2 = Disguiser.disguiseMD5(oriMessage2.trim());
|
|
|
- String checkSign3 = Disguiser.disguiseMD5(oriMessage3.trim());
|
|
|
- String checkSign4 = Disguiser.disguiseMD5(oriMessage4.trim());
|
|
|
- boolean b = sign.equals(checkSign1) || sign.equals(checkSign2) || sign.equals(checkSign3) || sign.equals(checkSign4);
|
|
|
+ boolean b = sign.equals(checkSign1);
|
|
|
if (!b) {
|
|
|
return "验签失败!";
|
|
|
}
|
|
@@ -720,14 +708,8 @@ public class HeliPayNonOrderServiceImpl implements HeliPayNonOrderService {
|
|
|
// 公钥验签
|
|
|
String oriMessage = MyBeanUtils.getSigned(res, null);
|
|
|
String oriMessage1 = oriMessage + Constant.SPLIT + Constant.SAOMA;
|
|
|
- String oriMessage2 = oriMessage + Constant.SPLIT + Constant.FENZHANG;
|
|
|
- String oriMessage3 = oriMessage + Constant.SPLIT + Constant.XUNI;
|
|
|
- String oriMessage4 = oriMessage + Constant.SPLIT + Constant.WANGYIN;
|
|
|
String checkSign1 = Disguiser.disguiseMD5(oriMessage1.trim());
|
|
|
- String checkSign2 = Disguiser.disguiseMD5(oriMessage2.trim());
|
|
|
- String checkSign3 = Disguiser.disguiseMD5(oriMessage3.trim());
|
|
|
- String checkSign4 = Disguiser.disguiseMD5(oriMessage4.trim());
|
|
|
- boolean b = sign.equals(checkSign1) || sign.equals(checkSign2) || sign.equals(checkSign3) || sign.equals(checkSign4);
|
|
|
+ boolean b = sign.equals(checkSign1);
|
|
|
if (!b) {
|
|
|
return "验签失败!";
|
|
|
}
|
|
@@ -1004,15 +986,9 @@ public class HeliPayNonOrderServiceImpl implements HeliPayNonOrderService {
|
|
|
log.info("回调签名" + sign);
|
|
|
// 公钥验签
|
|
|
String oriMessage = MyBeanUtils.getSigned(data, null);
|
|
|
- String oriMessage1 = oriMessage + Constant.SPLIT + Constant.SAOMA;
|
|
|
- String oriMessage2 = oriMessage + Constant.SPLIT + Constant.FENZHANG;
|
|
|
- String oriMessage3 = oriMessage + Constant.SPLIT + Constant.XUNI;
|
|
|
String oriMessage4 = oriMessage + Constant.SPLIT + Constant.WANGYIN;
|
|
|
- String checkSign1 = Disguiser.disguiseMD5(oriMessage1.trim());
|
|
|
- String checkSign2 = Disguiser.disguiseMD5(oriMessage2.trim());
|
|
|
- String checkSign3 = Disguiser.disguiseMD5(oriMessage3.trim());
|
|
|
String checkSign4 = Disguiser.disguiseMD5(oriMessage4.trim());
|
|
|
- boolean b = sign.equals(checkSign1) || sign.equals(checkSign2) || sign.equals(checkSign3) || sign.equals(checkSign4);
|
|
|
+ boolean b = sign.equals(checkSign4);
|
|
|
if (!b) {
|
|
|
return "验签失败!";
|
|
|
}
|
|
@@ -1135,20 +1111,7 @@ public class HeliPayNonOrderServiceImpl implements HeliPayNonOrderService {
|
|
|
}
|
|
|
}
|
|
|
//修改分账付款状态
|
|
|
- //合利宝无立即回调,这里用唯一订单id查,然后把真实mborderid存进去
|
|
|
- BigDecimal totalAmount = BigDecimal.ZERO;
|
|
|
- //12企业17个人
|
|
|
- if ("12".equals(payType)) {
|
|
|
- //vipprice-(vipprice-10手续费)*(1-0.1%)分账手续费
|
|
|
- totalAmount = MathUtil.mul(MathUtil.sub(amount, 10), 0.999);
|
|
|
- } else if ("17".equals(payType)) {
|
|
|
- //vipprice-(vipprice-0.2%*vipprice手续费)*(1-0.1%)
|
|
|
- totalAmount = MathUtil.mul(MathUtil.mul(amount, 0.998), 0.999);
|
|
|
- } else {
|
|
|
- log.info("二手网银分账类型参数payType错误======================》" + payType);
|
|
|
- return "SUCCESS";
|
|
|
- }
|
|
|
-// split(data.getRt5_orderId(), totalAmount);
|
|
|
+ payOrderMapper.updateSplitAccount(mbOrderId,orderRequestNo);
|
|
|
return "SUCCESS";
|
|
|
}
|
|
|
|
|
@@ -1159,15 +1122,9 @@ public class HeliPayNonOrderServiceImpl implements HeliPayNonOrderService {
|
|
|
log.info("回调签名" + sign);
|
|
|
// 公钥验签
|
|
|
String oriMessage = MyBeanUtils.getSigned(res, null);
|
|
|
- String oriMessage1 = oriMessage + Constant.SPLIT + Constant.SAOMA;
|
|
|
- String oriMessage2 = oriMessage + Constant.SPLIT + Constant.FENZHANG;
|
|
|
- String oriMessage3 = oriMessage + Constant.SPLIT + Constant.XUNI;
|
|
|
String oriMessage4 = oriMessage + Constant.SPLIT + Constant.WANGYIN;
|
|
|
- String checkSign1 = Disguiser.disguiseMD5(oriMessage1.trim());
|
|
|
- String checkSign2 = Disguiser.disguiseMD5(oriMessage2.trim());
|
|
|
- String checkSign3 = Disguiser.disguiseMD5(oriMessage3.trim());
|
|
|
String checkSign4 = Disguiser.disguiseMD5(oriMessage4.trim());
|
|
|
- boolean b = sign.equals(checkSign1) || sign.equals(checkSign2) || sign.equals(checkSign3) || sign.equals(checkSign4);
|
|
|
+ boolean b = sign.equals(checkSign4);
|
|
|
if (!b) {
|
|
|
return "验签失败!";
|
|
|
}
|
|
@@ -1225,20 +1182,7 @@ public class HeliPayNonOrderServiceImpl implements HeliPayNonOrderService {
|
|
|
// 保存 收款项和订单关系
|
|
|
baseMapper.insertOrderReceiptRelation(relation);
|
|
|
//修改分账付款状态
|
|
|
- //合利宝无立即回调,这里用唯一订单id查,然后把真实mborderid存进去
|
|
|
- BigDecimal totalAmount = BigDecimal.ZERO;
|
|
|
- //12企业17个人
|
|
|
- if ("12".equals(payType)) {
|
|
|
- //100-(100-10手续费)*0.1%分账手续费
|
|
|
- totalAmount = MathUtil.mul(90, 0.999);
|
|
|
- } else if ("17".equals(payType)) {
|
|
|
- //100-(100-0.2%*100手续费)*0.1%
|
|
|
- totalAmount = MathUtil.mul(99.8, 0.999);
|
|
|
- } else {
|
|
|
- log.info("二手网银分账类型参数payType错误======================》" + payType);
|
|
|
- return "SUCCESS";
|
|
|
- }
|
|
|
-// split(res.getRt5_orderId(), totalAmount);
|
|
|
+ payOrderMapper.updateSplitAccount(mbOrderId,res.getRt5_orderId());
|
|
|
return "SUCCESS";
|
|
|
}
|
|
|
|
|
@@ -1477,58 +1421,18 @@ public class HeliPayNonOrderServiceImpl implements HeliPayNonOrderService {
|
|
|
baseMapper.insertOrderReceiptRelation(relation);
|
|
|
log.info("【购买优惠券异步回调】>>>>>>>>>>>收款项和购买历史关系(insert[cm_receipt_order_relation])id:" + relation.getId() + ",couponRecordId:" + recordId);
|
|
|
//修改分账付款状态
|
|
|
- payOrderMapper.updateSplitAccountByPay(mbOrderId);
|
|
|
+ payOrderMapper.updateSplitAccount(mbOrderId,orderRequestNo);
|
|
|
return "SUCCESS";
|
|
|
}
|
|
|
|
|
|
- void split(String orderId, BigDecimal totalAmount) {
|
|
|
- log.info("超级会员/二手发布网银支付回调分账开始================================分账金额 》 " + totalAmount);
|
|
|
- try {
|
|
|
- AccountPayOrder accountPayOrder = new AccountPayOrder();
|
|
|
- accountPayOrder.setP1_bizType("AccountPaySub");
|
|
|
- accountPayOrder.setP2_signType("MD5");
|
|
|
- accountPayOrder.setP3_timestamp(new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss.SSS").format(new Date()));
|
|
|
- // fz+原唯一订单号
|
|
|
- accountPayOrder.setP4_orderId("FZ" + orderId);
|
|
|
- //付款账户商编
|
|
|
- accountPayOrder.setP5_customerNumber(Constant.CUSTOMERNUM2);
|
|
|
- AccountPayOrder.AccountPayOrderExt accountPayOrderExt = new AccountPayOrder.AccountPayOrderExt();
|
|
|
- //收款账户商编
|
|
|
- accountPayOrderExt.setInMerchantNo(Constant.CUSTOMERNUM);
|
|
|
- accountPayOrderExt.setOrderType(AccountPayOrderType.TRANSFER);
|
|
|
- accountPayOrderExt.setAmount(totalAmount);
|
|
|
- //todo 二手/vip的网银支付无法立即分账,这里放在支付回调里面分账,暂不设置回调
|
|
|
- //accountPayOrderExt.setServerCallbackUrl(callUrl);
|
|
|
- accountPayOrderExt.setGoodsName("分账");
|
|
|
- String ext = JSON.toJSONString(accountPayOrderExt);
|
|
|
- accountPayOrder.setP6_ext(ext);
|
|
|
- // 生成签名
|
|
|
- StringBuilder builder = new StringBuilder();
|
|
|
- builder.append(SPLIT)
|
|
|
- .append(accountPayOrder.getP1_bizType()).append(SPLIT)
|
|
|
- .append(accountPayOrder.getP2_signType()).append(SPLIT)
|
|
|
- .append(accountPayOrder.getP3_timestamp()).append(SPLIT)
|
|
|
- .append(accountPayOrder.getP4_orderId()).append(SPLIT)
|
|
|
- .append(accountPayOrder.getP5_customerNumber()).append(SPLIT)
|
|
|
- .append(accountPayOrder.getP6_ext()).append(SPLIT)
|
|
|
- .append(Constant.FENZHANG);
|
|
|
- String sign = Disguiser.disguiseMD5(builder.toString());
|
|
|
- Map<String, String> bean = HeliPayServiceImpl.convertBean(accountPayOrder);
|
|
|
- Map<String, String> map = HeliPayServiceImpl.postForm(bean, Constant.FZ, sign, Map.class);
|
|
|
- if (map != null) {
|
|
|
- String code = map.get("rt5_retCode");
|
|
|
- if (!"0000".equals(code)) {
|
|
|
- String msg = map.get("rt6_retMsg");
|
|
|
- log.info("【二手/vip网银立即分账失败】>>>>>>>>>>立即分账失败>>>>>>>msg:" + msg);
|
|
|
- } else {
|
|
|
- //分账成功改变分账状态
|
|
|
- payOrderMapper.updateSplitAccount(map.get("rt9_serialNumber"), orderId);
|
|
|
- log.info("【二手/vip网银立即分账成功】>>>>>>>>>>此订单分账结束");
|
|
|
- }
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("【二手/vip网银立即分账失败】>>>>>>>>>>错误信息", e);
|
|
|
+ @Override
|
|
|
+ public ResponseJson couponCheck(Integer couponRecordId) {
|
|
|
+ Integer status = payOrderMapper.findPayStatus(couponRecordId);
|
|
|
+ if (null != status && 1 == status) {
|
|
|
+ return ResponseJson.success("支付成功", null);
|
|
|
}
|
|
|
+ return ResponseJson.error("支付失败", null);
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|