企业付款退款等重写
This commit is contained in:
@ -14,8 +14,9 @@ import co.yixiang.modules.shop.service.YxUserService;
|
||||
import co.yixiang.modules.shop.service.YxWechatUserService;
|
||||
import co.yixiang.modules.shop.service.dto.YxUserDTO;
|
||||
import co.yixiang.modules.shop.service.dto.YxWechatUserDTO;
|
||||
import co.yixiang.mp.config.WxPayConfiguration;
|
||||
import co.yixiang.mp.service.YxPayService;
|
||||
import co.yixiang.utils.OrderUtil;
|
||||
import co.yixiang.utils.RedisUtil;
|
||||
import com.github.binarywang.wxpay.bean.entpay.EntPayRequest;
|
||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
||||
import com.github.binarywang.wxpay.service.WxPayService;
|
||||
@ -42,17 +43,17 @@ public class UserExtractController {
|
||||
private final YxUserExtractService yxUserExtractService;
|
||||
private final YxUserService yxUserService;
|
||||
private final YxUserBillService yxUserBillService;
|
||||
private final WxPayService wxPayService;
|
||||
private final YxWechatUserService wechatUserService;
|
||||
private final YxPayService payService;
|
||||
|
||||
public UserExtractController(YxUserExtractService yxUserExtractService, YxUserService yxUserService,
|
||||
YxUserBillService yxUserBillService, WxPayService wxPayService,
|
||||
YxWechatUserService wechatUserService) {
|
||||
public UserExtractController(YxUserExtractService yxUserExtractService,YxUserService yxUserService,
|
||||
YxUserBillService yxUserBillService,YxWechatUserService wechatUserService,
|
||||
YxPayService payService) {
|
||||
this.yxUserExtractService = yxUserExtractService;
|
||||
this.yxUserService = yxUserService;
|
||||
this.yxUserBillService = yxUserBillService;
|
||||
this.wxPayService = wxPayService;
|
||||
this.wechatUserService = wechatUserService;
|
||||
this.payService = payService;
|
||||
}
|
||||
|
||||
@Log("查询")
|
||||
@ -110,27 +111,10 @@ public class UserExtractController {
|
||||
if(!isTest){
|
||||
YxWechatUserDTO wechatUser = wechatUserService.findById(resources.getUid());
|
||||
if(ObjectUtil.isNotNull(wechatUser)){
|
||||
String apiUrl = RedisUtil.get("api_url");
|
||||
if(StrUtil.isBlank(apiUrl)) throw new BadRequestException("请配置api地址");
|
||||
//读取redis配置
|
||||
String appId = RedisUtil.get("wxpay_appId");
|
||||
String mchId = RedisUtil.get("wxpay_mchId");
|
||||
if(StrUtil.isBlank(appId) || StrUtil.isBlank(mchId)){
|
||||
throw new BadRequestException("请配置微信支付");
|
||||
}
|
||||
EntPayRequest entPayRequest = new EntPayRequest();
|
||||
try {
|
||||
entPayRequest.setAppid(appId);
|
||||
entPayRequest.setMchId(mchId);
|
||||
entPayRequest.setOpenid(wechatUser.getOpenid());
|
||||
entPayRequest.setPartnerTradeNo(resources.getId().toString());
|
||||
entPayRequest.setCheckName("FORCE_CHECK");
|
||||
entPayRequest.setReUserName(resources.getRealName());
|
||||
entPayRequest.setAmount(resources.getExtractPrice()
|
||||
.multiply(new BigDecimal(100)).intValue());
|
||||
entPayRequest.setDescription("佣金提现");
|
||||
entPayRequest.setSpbillCreateIp("127.0.0.1");
|
||||
wxPayService.getEntPayService().entPay(entPayRequest);
|
||||
payService.entPay(wechatUser.getOpenid(),resources.getId().toString(),
|
||||
resources.getRealName(),
|
||||
resources.getExtractPrice().multiply(new BigDecimal(100)).intValue());
|
||||
} catch (WxPayException e) {
|
||||
throw new BadRequestException(e.getMessage());
|
||||
}
|
||||
|
@ -3,7 +3,6 @@ package co.yixiang.modules.shop.service.impl;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import co.yixiang.exception.BadRequestException;
|
||||
import co.yixiang.exception.EntityExistException;
|
||||
import co.yixiang.modules.activity.domain.YxStorePink;
|
||||
@ -21,15 +20,12 @@ import co.yixiang.modules.shop.service.YxUserBillService;
|
||||
import co.yixiang.modules.shop.service.YxUserService;
|
||||
import co.yixiang.modules.shop.service.dto.*;
|
||||
import co.yixiang.modules.shop.service.mapper.YxStoreOrderMapper;
|
||||
import co.yixiang.mp.service.YxPayService;
|
||||
import co.yixiang.utils.OrderUtil;
|
||||
import co.yixiang.utils.QueryHelp;
|
||||
import co.yixiang.utils.RedisUtil;
|
||||
import co.yixiang.utils.ValidationUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
|
||||
import com.github.binarywang.wxpay.config.WxPayConfig;
|
||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
||||
import com.github.binarywang.wxpay.service.WxPayService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
@ -59,11 +55,12 @@ public class YxStoreOrderServiceImpl implements YxStoreOrderService {
|
||||
private final YxUserBillService yxUserBillService;
|
||||
private final YxStoreOrderStatusService yxStoreOrderStatusService;
|
||||
private final YxUserService userService;
|
||||
private final WxPayService wxPayService;
|
||||
private final YxPayService payService;
|
||||
|
||||
public YxStoreOrderServiceImpl(YxStoreOrderRepository yxStoreOrderRepository, YxStoreOrderCartInfoRepository yxStoreOrderCartInfoRepository, YxUserRepository userRepository,
|
||||
YxStorePinkRepository storePinkRepository, YxStoreOrderMapper yxStoreOrderMapper, YxUserBillService yxUserBillService,
|
||||
YxStoreOrderStatusService yxStoreOrderStatusService, YxUserService userService, WxPayService wxPayService) {
|
||||
YxStoreOrderStatusService yxStoreOrderStatusService,
|
||||
YxUserService userService, YxPayService payService) {
|
||||
this.yxStoreOrderRepository = yxStoreOrderRepository;
|
||||
this.yxStoreOrderCartInfoRepository = yxStoreOrderCartInfoRepository;
|
||||
this.userRepository = userRepository;
|
||||
@ -72,7 +69,7 @@ public class YxStoreOrderServiceImpl implements YxStoreOrderService {
|
||||
this.yxUserBillService = yxUserBillService;
|
||||
this.yxStoreOrderStatusService = yxStoreOrderStatusService;
|
||||
this.userService = userService;
|
||||
this.wxPayService = wxPayService;
|
||||
this.payService = payService;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -155,40 +152,14 @@ public class YxStoreOrderServiceImpl implements YxStoreOrderService {
|
||||
|
||||
yxStoreOrderStatusService.create(storeOrderStatus);
|
||||
}else{
|
||||
String apiUrl = RedisUtil.get("api_url");
|
||||
if(StrUtil.isBlank(apiUrl)) throw new BadRequestException("请配置api地址");
|
||||
//读取redis配置
|
||||
String appId = RedisUtil.get("wxpay_appId");
|
||||
String mchId = RedisUtil.get("wxpay_mchId");
|
||||
String mchKey = RedisUtil.get("wxpay_mchKey");
|
||||
String keyPath = RedisUtil.get("wxpay_keyPath");
|
||||
|
||||
if(StrUtil.isBlank(appId) || StrUtil.isBlank(mchId) || StrUtil.isBlank(mchKey)){
|
||||
throw new BadRequestException("请配置微信支付");
|
||||
}
|
||||
if(StrUtil.isBlank(keyPath)){
|
||||
throw new BadRequestException("请配置微信支付证书");
|
||||
}
|
||||
WxPayRefundRequest wxPayRefundRequest = new WxPayRefundRequest();
|
||||
BigDecimal bigDecimal = new BigDecimal("100");
|
||||
wxPayRefundRequest.setTotalFee(bigDecimal.multiply(resources.getPayPrice()).intValue());//订单总金额
|
||||
wxPayRefundRequest.setOutTradeNo(resources.getOrderId());
|
||||
wxPayRefundRequest.setOutRefundNo(resources.getOrderId());
|
||||
wxPayRefundRequest.setRefundFee(bigDecimal.multiply(resources.getPayPrice()).intValue());//退款金额
|
||||
wxPayRefundRequest.setOpUserId(mchId); //操作人默认商户号当前
|
||||
wxPayRefundRequest.setNotifyUrl(apiUrl+"/api/notify/refund");
|
||||
|
||||
WxPayConfig wxPayConfig = new WxPayConfig();
|
||||
wxPayConfig.setAppId(appId);
|
||||
wxPayConfig.setMchId(mchId);
|
||||
wxPayConfig.setMchKey(mchKey);
|
||||
wxPayConfig.setKeyPath(keyPath);
|
||||
wxPayService.setConfig(wxPayConfig);
|
||||
try {
|
||||
wxPayService.refund(wxPayRefundRequest);
|
||||
payService.refundOrder(resources.getOrderId(),
|
||||
bigDecimal.multiply(resources.getPayPrice()).intValue());
|
||||
} catch (WxPayException e) {
|
||||
log.info("refund-error:{}",e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user