|
@@ -175,27 +175,7 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
|
|
|
// 时间戳
|
|
|
long time = System.currentTimeMillis() / 1000;
|
|
|
// 用户IP地址
|
|
|
- String userIp = headers.getFirst("X-CLIENT-IP");
|
|
|
- JSONObject json = new JSONObject();
|
|
|
- json.put("merAccount", PayUtil.merAccount);
|
|
|
- json.put("merNo", PayUtil.merNo);
|
|
|
- json.put("time", time);
|
|
|
- //支付金额
|
|
|
- json.put("amount", payParam.getPayAmount());
|
|
|
- json.put("payWay", payParam.getPayWay());
|
|
|
- json.put("payType", payParam.getPayType());
|
|
|
- json.put("userIp", userIp);
|
|
|
- json.put("returnUrl", payParam.getReturnUrl());
|
|
|
- json.put("notifyUrl", payParam.getNotifyUrl());
|
|
|
- if (StringUtils.isNotBlank(payParam.getBankCode())) {
|
|
|
- json.put("bankCode", payParam.getBankCode());
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(payParam.getUserType())) {
|
|
|
- json.put("userType", payParam.getUserType());
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(payParam.getOpenId())) {
|
|
|
- json.put("openId", payParam.getOpenId());
|
|
|
- }
|
|
|
+ JSONObject json = getPayJsonObject(payParam, headers, time);
|
|
|
String environment = "";
|
|
|
if (payParam.getNotifyUrl().contains("18002")) {
|
|
|
environment = "DEV";
|
|
@@ -299,6 +279,34 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
|
|
|
return "SUCCESS";
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 设置支付基础参数
|
|
|
+ */
|
|
|
+ private JSONObject getPayJsonObject(PayParamBo payParam, HttpHeaders headers, long time) {
|
|
|
+ // 用户IP地址
|
|
|
+ String userIp = headers.getFirst("X-CLIENT-IP");
|
|
|
+ JSONObject json = new JSONObject();
|
|
|
+ json.put("merAccount", PayUtil.merAccount);
|
|
|
+ json.put("merNo", PayUtil.merNo);
|
|
|
+ json.put("time", time);
|
|
|
+ //支付金额
|
|
|
+ json.put("amount", payParam.getPayAmount());
|
|
|
+ json.put("payWay", payParam.getPayWay());
|
|
|
+ json.put("payType", payParam.getPayType());
|
|
|
+ json.put("userIp", userIp);
|
|
|
+ json.put("returnUrl", payParam.getReturnUrl());
|
|
|
+ json.put("notifyUrl", payParam.getNotifyUrl());
|
|
|
+ if (StringUtils.isNotBlank(payParam.getBankCode())) {
|
|
|
+ json.put("bankCode", payParam.getBankCode());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(payParam.getUserType())) {
|
|
|
+ json.put("userType", payParam.getUserType());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(payParam.getOpenId())) {
|
|
|
+ json.put("openId", payParam.getOpenId());
|
|
|
+ }
|
|
|
+ return json;
|
|
|
+ }
|
|
|
/**
|
|
|
* 升级超级会员-微信线上支付
|
|
|
*
|
|
@@ -393,28 +401,9 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
|
|
|
try {
|
|
|
// 时间戳
|
|
|
long time = System.currentTimeMillis() / 1000;
|
|
|
- // 用户IP地址
|
|
|
- String userIp = headers.getFirst("X-CLIENT-IP");
|
|
|
- JSONObject json = new JSONObject();
|
|
|
- json.put("merAccount", PayUtil.merAccount);
|
|
|
- json.put("merNo", PayUtil.merNo);
|
|
|
- json.put("time", time);
|
|
|
- //支付金额
|
|
|
- json.put("amount", payParam.getPayAmount());
|
|
|
- json.put("payWay", payParam.getPayWay());
|
|
|
- json.put("payType", payParam.getPayType());
|
|
|
- json.put("userIp", userIp);
|
|
|
- json.put("returnUrl", payParam.getReturnUrl());
|
|
|
- json.put("notifyUrl", payParam.getNotifyUrl());
|
|
|
- if (StringUtils.isNotBlank(payParam.getBankCode())) {
|
|
|
- json.put("bankCode", payParam.getBankCode());
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(payParam.getUserType())) {
|
|
|
- json.put("userType", payParam.getUserType());
|
|
|
- }
|
|
|
- if (StringUtils.isNotBlank(payParam.getOpenId())) {
|
|
|
- json.put("openId", payParam.getOpenId());
|
|
|
- }
|
|
|
+ // 设置支付基础参数
|
|
|
+ JSONObject json = getPayJsonObject(payParam, headers, time);
|
|
|
+ // 支付环境
|
|
|
String environment = "";
|
|
|
if (payParam.getNotifyUrl().contains("18002")) {
|
|
|
environment = "DEV";
|
|
@@ -429,11 +418,13 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
|
|
|
json.put("product", product);
|
|
|
String attach = payParam.getProductId() + "," + payParam.getPayType();
|
|
|
json.put("attach", attach);
|
|
|
- // 升级超级会员默认私账
|
|
|
+ // 升级超级会员默认公账
|
|
|
List<Map<String, String>> list = new ArrayList<>();
|
|
|
Map<String, String> map = new HashMap<>(3);
|
|
|
- map.put("subUserNo", PayUtil.privateAccountNo);
|
|
|
+ map.put("subUserNo", PayUtil.publicAccountNo);
|
|
|
+ // 1按比例分账
|
|
|
map.put("splitBillType", "1");
|
|
|
+ // 1比例值总额
|
|
|
map.put("splitBillValue", "1");
|
|
|
list.add(map);
|
|
|
String splitBillDetail = JSONObject.toJSONString(list);
|
|
@@ -454,25 +445,32 @@ public class PayNonOrderServiceImpl implements PayNonOrderService {
|
|
|
log.info("第三方支付失败>>>>>>>msg:" + msg);
|
|
|
return ResponseJson.error(msg, null);
|
|
|
}
|
|
|
-// // 保存二手发布分账参数
|
|
|
-// SplitAccountPo splitAccount = new SplitAccountPo();
|
|
|
-// splitAccount.setOrderId(payParam.getOrderId());
|
|
|
-// splitAccount.setProductId(payParam.getProductId());
|
|
|
-// // 二手交易供应商
|
|
|
-// splitAccount.setShopId(1252);
|
|
|
-// splitAccount.setProductType(4);
|
|
|
-// splitAccount.setType(2);
|
|
|
-// if ("UNIONPAY".equals(payParam.getPayWay())) {
|
|
|
-// splitAccount.setSplitAccount(92.00);
|
|
|
-// } else {
|
|
|
-// splitAccount.setSplitAccount(99.62);
|
|
|
-// }
|
|
|
-// JSONObject data = result.getJSONObject("data");
|
|
|
-// splitAccount.setMbOrderId(data.getString("mbOrderId"));
|
|
|
-// splitAccount.setOrderRequestNo(data.getString("orderId"));
|
|
|
-// splitAccount.setPayStatus(0);
|
|
|
-// // 保存分账详情
|
|
|
-// payOrderMapper.insertSplitAccount(splitAccount);
|
|
|
+ // 保存升级超级会员分账参数
|
|
|
+ JSONObject data = result.getJSONObject("data");
|
|
|
+ SplitAccountPo splitAccount = new SplitAccountPo();
|
|
|
+ splitAccount.setVipPackageId(payParam.getVipId());
|
|
|
+ // 超级会员 公账-专票
|
|
|
+ splitAccount.setType(1);
|
|
|
+ // 待分账总金额
|
|
|
+ double splitAmount = MathUtil.div(payParam.getPayAmount(), 100).doubleValue();
|
|
|
+ // 总手续费
|
|
|
+ double procedureFee;
|
|
|
+ if ("UNIONPAY".equals(payParam.getPayWay())) {
|
|
|
+ procedureFee = 8.00;
|
|
|
+ } else {
|
|
|
+ //手续费
|
|
|
+ procedureFee = MathUtil.mul(splitAmount, 0.0038, 2).doubleValue();
|
|
|
+ if (MathUtil.compare(procedureFee, 0) == 0) {
|
|
|
+ procedureFee = 0.01;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ splitAmount = MathUtil.sub(splitAmount, procedureFee).doubleValue();
|
|
|
+ splitAccount.setSplitAccount(splitAmount);
|
|
|
+ splitAccount.setMbOrderId(data.getString("mbOrderId"));
|
|
|
+ splitAccount.setOrderRequestNo(data.getString("orderId"));
|
|
|
+ splitAccount.setPayStatus(0);
|
|
|
+ // 保存分账详情
|
|
|
+ payOrderMapper.insertSplitAccount(splitAccount);
|
|
|
|
|
|
return ResponseJson.success(result);
|
|
|
}
|