xhxu 3 лет назад
Родитель
Сommit
bd712ad9ab
2 измененных файлов: 32 добавлений и 11 удалений
  1. +31
    -8
      mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java
  2. +1
    -3
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java

+ 31
- 8
mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java Просмотреть файл

@@ -54,6 +54,9 @@ public class WxMicroPayController extends BaseController {
@Autowired
WxAppinfoService wxAppinfoService;

@Autowired
WxPayAccountService wxPayAccountService;

@Autowired
WxCouponOrderService wxCouponOrderService;

@@ -70,14 +73,15 @@ public class WxMicroPayController extends BaseController {
@PostMapping("order_create")
public ResultData saveMicopayOrder(@RequestBody Map<String, String> paramMap, HttpServletRequest request) {
logger.info("saveMicopayOrder: " + paramMap.toString());
String ipStr = IPUtil.getIpAddr(request);
//Assert.notNull(wxOrders.getName(), "角色名不能为空");
//Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名");
String authCode = paramMap.get("authCode");
String totalFeeStr = paramMap.get("totalFee");
return saveMicopayOrder(authCode, totalFeeStr, EnumPayWay.PAY_WAY_WECHAT_MA,EnumPayVersion.WX_PAY_V2, request);
return saveMicopayOrder(authCode, totalFeeStr, EnumPayWay.PAY_WAY_WECHAT_MA, ipStr);
}

private ResultData saveMicopayOrder(String authCode,String totalFeeStr,EnumPayWay payWay,EnumPayVersion payVersion,HttpServletRequest request) {
private ResultData saveMicopayOrder(String authCode,String totalFeeStr,EnumPayWay payWay,String ipStr) {
if (StringUtils.isBlank(authCode)) {
logger.error("authCode不能为空");
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "authCode不能为空");
@@ -90,11 +94,18 @@ public class WxMicroPayController extends BaseController {
logger.error("totalFee不能为空");
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "totalFee不能为空");
}
String ipStr = IPUtil.getIpAddr(request);

WxMerchantBUser user = getLoginBUser();

WxPayAccount payAccount = wxPayAccountService.getPayAccount(user, payWay.getPlat());
if(payAccount == null){
return new ResultData(ErrorCode.API_KEY_NOT_FOUND.getCode(), "未找到支付配置");
}
EnumPayVersion payVersion = EnumPayVersion.getEnum(payAccount.getPayVersion());
if(payVersion == null){
return new ResultData(ErrorCode.MCH_INFO_NOT_EQUAL.getCode(), "支付配置错误");
}

WxOrder order = null;
try {
order = wxOrderService.saveMicroPayOrder(user, totalFeeStr,payWay,payVersion);
@@ -382,16 +393,18 @@ public class WxMicroPayController extends BaseController {
@PostMapping("pay_order_create_v2")
public ResultData saveMicopayPayOrder(@RequestBody Map<String, String> paramMap, HttpServletRequest request) {
logger.info("saveMicopayPayOrder: " + paramMap.toString());
String ipStr = IPUtil.getIpAddr(request);

String orderIdStr = paramMap.get("orderId");
String couponOrderIdStr = paramMap.get("couponOrderId");
String authCode = paramMap.get("authCode");
String payPriceStr = paramMap.get("payPrice");
return saveMicopayPayOrder(orderIdStr, couponOrderIdStr, authCode, payPriceStr, EnumPayWay.PAY_WAY_WECHAT_MA,EnumPayVersion.WX_PAY_V2, request);
return saveMicopayPayOrder(orderIdStr, couponOrderIdStr, authCode, payPriceStr, EnumPayWay.PAY_WAY_WECHAT_MA,ipStr);
}

private ResultData saveMicopayPayOrder(String orderIdStr,String couponOrderIdStr,String authCode,String payPriceStr,
EnumPayWay payWay,EnumPayVersion payVersion, HttpServletRequest request) {
WxMerchantBUser user = getLoginBUser();
EnumPayWay payWay,String ipStr) {
if (StringUtils.isBlank(orderIdStr)) {
logger.error("orderId不能为空");
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "orderId不能为空");
@@ -407,12 +420,22 @@ public class WxMicroPayController extends BaseController {
return new ResultData(ErrorCode.MICRO_PAY_ERR_AUTHCODE.getCode(), "请扫描微信收款码");
}
}
WxMerchantBUser user = getLoginBUser();

WxPayAccount payAccount = wxPayAccountService.getPayAccount(user, payWay.getPlat());
if(payAccount == null){
return new ResultData(ErrorCode.API_KEY_NOT_FOUND.getCode(), "未找到支付配置");
}
EnumPayVersion payVersion = EnumPayVersion.getEnum(payAccount.getPayVersion());
if(payVersion == null){
return new ResultData(ErrorCode.MCH_INFO_NOT_EQUAL.getCode(), "支付配置错误");
}

BigDecimal totalFee = new BigDecimal(payPriceStr);
totalFee.setScale(2, BigDecimal.ROUND_HALF_UP); // 第一个变量是小数位数,第二个变量是取舍方法(四舍五入)
Integer payPrice = totalFee.multiply(new BigDecimal(100)).intValue();

String ipStr = IPUtil.getIpAddr(request);

WxMerchantBUser wxMerchantBUser = wxMerchantBUserService.getById(user.getId());
if (wxMerchantBUser == null) {


+ 1
- 3
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Просмотреть файл

@@ -1121,8 +1121,7 @@ public class WxOrderServiceImpl implements WxOrderService {
order.setOrderType(EnumComposeOrder.SINGLE.getCode());
order.setCreateDate(new Date());
wxBatchOrderMapper.insert(order);
Long orderNumber = idWorker.nextId();

@@ -1148,7 +1147,6 @@ public class WxOrderServiceImpl implements WxOrderService {
record.setComposeOrderType(EnumComposeOrder.SINGLE.getCode());
record.setCouponNumber(1);

try {
// 保存订单
wxOrderMapper.insert(record);


Загрузка…
Отмена
Сохранить