企业付款退款等重写

This commit is contained in:
hupeng
2020-03-01 21:09:59 +08:00
parent 3afc837079
commit c387151c74
7 changed files with 311 additions and 205 deletions

View File

@ -1,128 +1,128 @@
package co.yixiang.modules.order.service;
import cn.hutool.core.util.StrUtil;
import co.yixiang.exception.ErrorRequestException;
import co.yixiang.modules.shop.service.YxSystemConfigService;
import co.yixiang.mp.config.WxPayConfiguration;
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
import com.github.binarywang.wxpay.bean.order.WxPayMwebOrderResult;
import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.WxPayService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
/**
* @ClassName YxPayService
* @Author hupeng <610796224@qq.com>
* @Date 2020/3/1
**/
@Service
public class YxPayService {
@Autowired
private YxSystemConfigService systemConfigService;
/**
* 微信公众号支付/小程序支付
*
* @param orderId
* @param openId 公众号/小程序openid
* @param body
* @param totalFee
* @return
* @throws WxPayException
*/
public WxPayMpOrderResult wxPay(String orderId, String openId, String body,
Integer totalFee,int type) throws WxPayException {
String apiUrl = systemConfigService.getData("api_url");
if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
WxPayService wxPayService = WxPayConfiguration.getPayService();
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
orderRequest.setTradeType("JSAPI");
orderRequest.setOpenid(openId);
orderRequest.setBody(body);
orderRequest.setOutTradeNo(orderId);
orderRequest.setTotalFee(totalFee);
orderRequest.setSpbillCreateIp("127.0.0.1");
if(type == 2){
orderRequest.setNotifyUrl(apiUrl + "/api/wechat/renotify");
}else{
orderRequest.setNotifyUrl(apiUrl + "/api/wechat/notify");
}
WxPayMpOrderResult orderResult = wxPayService.createOrder(orderRequest);
return orderResult;
}
;
/**
* 微信H5支付
*
* @param orderId
* @param body
* @param totalFee
* @return
* @throws WxPayException
*/
public WxPayMwebOrderResult wxH5Pay(String orderId, String body,
Integer totalFee,int type) throws WxPayException {
String apiUrl = systemConfigService.getData("api_url");
if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
WxPayService wxPayService = WxPayConfiguration.getPayService();
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
orderRequest.setTradeType("MWEB");
orderRequest.setBody(body);
orderRequest.setOutTradeNo(orderId);
orderRequest.setTotalFee(totalFee);
orderRequest.setSpbillCreateIp("127.0.0.1");
if(type == 2){
orderRequest.setNotifyUrl(apiUrl + "/api/wechat/renotify");
}else{
orderRequest.setNotifyUrl(apiUrl + "/api/wechat/notify");
}
WxPayMwebOrderResult orderResult = wxPayService.createOrder(orderRequest);
return orderResult;
}
/**
* 退款
* @param orderId
* @param totalFee
* @throws WxPayException
*/
public void refundOrder(String orderId, Integer totalFee) throws WxPayException {
String apiUrl = systemConfigService.getData("api_url");
if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
WxPayService wxPayService = WxPayConfiguration.getPayService();
WxPayRefundRequest wxPayRefundRequest = new WxPayRefundRequest();
wxPayRefundRequest.setTotalFee(totalFee);//订单总金额
wxPayRefundRequest.setOutTradeNo(orderId);
wxPayRefundRequest.setOutRefundNo(orderId);
wxPayRefundRequest.setRefundFee(totalFee);//退款金额
wxPayRefundRequest.setNotifyUrl(apiUrl + "/api/notify/refund");
wxPayService.refund(wxPayRefundRequest);
}
}
//package co.yixiang.modules.order.service;
//
//import cn.hutool.core.util.StrUtil;
//import co.yixiang.exception.ErrorRequestException;
//import co.yixiang.modules.shop.service.YxSystemConfigService;
//import co.yixiang.mp.config.WxPayConfiguration;
//import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
//import com.github.binarywang.wxpay.bean.order.WxPayMwebOrderResult;
//import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
//import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
//import com.github.binarywang.wxpay.exception.WxPayException;
//import com.github.binarywang.wxpay.service.WxPayService;
//import lombok.AllArgsConstructor;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.math.BigDecimal;
//
///**
// * @ClassName YxPayService
// * @Author hupeng <610796224@qq.com>
// * @Date 2020/3/1
// **/
//@Service
//public class YxPayService {
//
// @Autowired
// private YxSystemConfigService systemConfigService;
//
//
// /**
// * 微信公众号支付/小程序支付
// *
// * @param orderId
// * @param openId 公众号/小程序openid
// * @param body
// * @param totalFee
// * @return
// * @throws WxPayException
// */
// public WxPayMpOrderResult wxPay(String orderId, String openId, String body,
// Integer totalFee,int type) throws WxPayException {
//
// String apiUrl = systemConfigService.getData("api_url");
// if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
//
// WxPayService wxPayService = WxPayConfiguration.getPayService();
// WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
//
// orderRequest.setTradeType("JSAPI");
// orderRequest.setOpenid(openId);
// orderRequest.setBody(body);
// orderRequest.setOutTradeNo(orderId);
// orderRequest.setTotalFee(totalFee);
// orderRequest.setSpbillCreateIp("127.0.0.1");
// if(type == 2){
// orderRequest.setNotifyUrl(apiUrl + "/api/wechat/renotify");
// }else{
// orderRequest.setNotifyUrl(apiUrl + "/api/wechat/notify");
// }
//
//
// WxPayMpOrderResult orderResult = wxPayService.createOrder(orderRequest);
//
// return orderResult;
//
// }
//
//
// /**
// * 微信H5支付
// *
// * @param orderId
// * @param body
// * @param totalFee
// * @return
// * @throws WxPayException
// */
// public WxPayMwebOrderResult wxH5Pay(String orderId, String body,
// Integer totalFee,int type) throws WxPayException {
//
// String apiUrl = systemConfigService.getData("api_url");
// if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
//
// WxPayService wxPayService = WxPayConfiguration.getPayService();
// WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
//
// orderRequest.setTradeType("MWEB");
// orderRequest.setBody(body);
// orderRequest.setOutTradeNo(orderId);
// orderRequest.setTotalFee(totalFee);
// orderRequest.setSpbillCreateIp("127.0.0.1");
// if(type == 2){
// orderRequest.setNotifyUrl(apiUrl + "/api/wechat/renotify");
// }else{
// orderRequest.setNotifyUrl(apiUrl + "/api/wechat/notify");
// }
//
// WxPayMwebOrderResult orderResult = wxPayService.createOrder(orderRequest);
//
// return orderResult;
//
// }
//
//
// /**
// * 退款
// * @param orderId
// * @param totalFee
// * @throws WxPayException
// */
// public void refundOrder(String orderId, Integer totalFee) throws WxPayException {
// String apiUrl = systemConfigService.getData("api_url");
// if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
//
// WxPayService wxPayService = WxPayConfiguration.getPayService();
// WxPayRefundRequest wxPayRefundRequest = new WxPayRefundRequest();
//
// wxPayRefundRequest.setTotalFee(totalFee);//订单总金额
// wxPayRefundRequest.setOutTradeNo(orderId);
// wxPayRefundRequest.setOutRefundNo(orderId);
// wxPayRefundRequest.setRefundFee(totalFee);//退款金额
// wxPayRefundRequest.setNotifyUrl(apiUrl + "/api/notify/refund");
//
// wxPayService.refund(wxPayRefundRequest);
// }
//
//}

View File

@ -13,10 +13,9 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
//import co.yixiang.common.rocketmq.MqProducer;
import co.yixiang.constant.ShopConstants;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.common.web.vo.Paging;
import co.yixiang.constant.ShopConstants;
import co.yixiang.domain.AlipayConfig;
import co.yixiang.domain.vo.TradeVo;
import co.yixiang.enums.BillEnum;
@ -36,7 +35,6 @@ import co.yixiang.modules.order.entity.YxStoreOrder;
import co.yixiang.modules.order.entity.YxStoreOrderCartInfo;
import co.yixiang.modules.order.mapper.YxStoreOrderMapper;
import co.yixiang.modules.order.mapping.OrderMap;
import co.yixiang.modules.order.service.YxPayService;
import co.yixiang.modules.order.service.YxStoreOrderCartInfoService;
import co.yixiang.modules.order.service.YxStoreOrderService;
import co.yixiang.modules.order.service.YxStoreOrderStatusService;
@ -66,8 +64,8 @@ import co.yixiang.modules.user.web.vo.YxUserQueryVo;
import co.yixiang.modules.user.web.vo.YxWechatUserQueryVo;
import co.yixiang.modules.wechat.entity.YxWechatTemplate;
import co.yixiang.modules.wechat.service.YxWechatTemplateService;
import co.yixiang.mp.config.WxPayConfiguration;
import co.yixiang.mp.service.WxMpTemplateMessageService;
import co.yixiang.mp.service.YxPayService;
import co.yixiang.service.AlipayService;
import co.yixiang.utils.OrderUtil;
import co.yixiang.utils.RedisUtil;
@ -79,11 +77,7 @@ import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
import com.github.binarywang.wxpay.bean.order.WxPayMwebOrderResult;
import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
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.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
@ -95,6 +89,9 @@ import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.TimeUnit;
//import co.yixiang.common.rocketmq.MqProducer;
;
/**
* <p>

View File

@ -15,7 +15,6 @@ import cn.hutool.core.util.StrUtil;
import co.yixiang.common.api.ApiResult;
import co.yixiang.common.web.controller.BaseController;
import co.yixiang.exception.ErrorRequestException;
import co.yixiang.modules.order.service.YxPayService;
import co.yixiang.modules.shop.service.YxSystemConfigService;
import co.yixiang.modules.user.entity.YxUser;
import co.yixiang.modules.user.entity.YxWechatUser;
@ -23,6 +22,7 @@ import co.yixiang.modules.user.service.YxUserRechargeService;
import co.yixiang.modules.user.service.YxUserService;
import co.yixiang.modules.user.service.YxWechatUserService;
import co.yixiang.modules.user.web.param.RechargeParam;
import co.yixiang.mp.service.YxPayService;
import co.yixiang.utils.SecurityUtils;
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
import com.github.binarywang.wxpay.bean.order.WxPayMwebOrderResult;

View File

@ -0,0 +1,154 @@
package co.yixiang.mp.service;
import cn.hutool.core.util.StrUtil;
import co.yixiang.exception.BadRequestException;
import co.yixiang.exception.ErrorRequestException;
import co.yixiang.mp.config.WxPayConfiguration;
import co.yixiang.mp.handler.RedisHandler;
import com.github.binarywang.wxpay.bean.entpay.EntPayRequest;
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
import com.github.binarywang.wxpay.bean.order.WxPayMwebOrderResult;
import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.WxPayService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
/**
* @ClassName YxPayService
* @Author hupeng <610796224@qq.com>
* @Date 2020/3/1
**/
@Service
@AllArgsConstructor
public class YxPayService {
private final RedisHandler redisHandler;
/**
* 微信公众号支付/小程序支付
*
* @param orderId
* @param openId 公众号/小程序openid
* @param body
* @param totalFee
* @return
* @throws WxPayException
*/
public WxPayMpOrderResult wxPay(String orderId, String openId, String body,
Integer totalFee,int type) throws WxPayException {
String apiUrl = redisHandler.getVal("api_url");
if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
WxPayService wxPayService = WxPayConfiguration.getPayService();
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
orderRequest.setTradeType("JSAPI");
orderRequest.setOpenid(openId);
orderRequest.setBody(body);
orderRequest.setOutTradeNo(orderId);
orderRequest.setTotalFee(totalFee);
orderRequest.setSpbillCreateIp("127.0.0.1");
if(type == 2){
orderRequest.setNotifyUrl(apiUrl + "/api/wechat/renotify");
}else{
orderRequest.setNotifyUrl(apiUrl + "/api/wechat/notify");
}
WxPayMpOrderResult orderResult = wxPayService.createOrder(orderRequest);
return orderResult;
}
/**
* 微信H5支付
*
* @param orderId
* @param body
* @param totalFee
* @return
* @throws WxPayException
*/
public WxPayMwebOrderResult wxH5Pay(String orderId, String body,
Integer totalFee,int type) throws WxPayException {
String apiUrl = redisHandler.getVal("api_url");
if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
WxPayService wxPayService = WxPayConfiguration.getPayService();
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
orderRequest.setTradeType("MWEB");
orderRequest.setBody(body);
orderRequest.setOutTradeNo(orderId);
orderRequest.setTotalFee(totalFee);
orderRequest.setSpbillCreateIp("127.0.0.1");
if(type == 2){
orderRequest.setNotifyUrl(apiUrl + "/api/wechat/renotify");
}else{
orderRequest.setNotifyUrl(apiUrl + "/api/wechat/notify");
}
WxPayMwebOrderResult orderResult = wxPayService.createOrder(orderRequest);
return orderResult;
}
/**
* 退款
* @param orderId
* @param totalFee
* @throws WxPayException
*/
public void refundOrder(String orderId, Integer totalFee) throws WxPayException {
String apiUrl = redisHandler.getVal("api_url");
if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
WxPayService wxPayService = WxPayConfiguration.getPayService();
WxPayRefundRequest wxPayRefundRequest = new WxPayRefundRequest();
wxPayRefundRequest.setTotalFee(totalFee);//订单总金额
wxPayRefundRequest.setOutTradeNo(orderId);
wxPayRefundRequest.setOutRefundNo(orderId);
wxPayRefundRequest.setRefundFee(totalFee);//退款金额
wxPayRefundRequest.setNotifyUrl(apiUrl + "/api/notify/refund");
wxPayService.refund(wxPayRefundRequest);
}
/**
* 企业打款
* @param openid
* @param no
* @param userName
* @param amount
* @throws WxPayException
*/
public void entPay(String openid,String no,String userName,Integer amount) throws WxPayException{
WxPayService wxPayService = WxPayConfiguration.getPayService();
EntPayRequest entPayRequest = new EntPayRequest();
entPayRequest.setOpenid(openid);
entPayRequest.setPartnerTradeNo(no);
entPayRequest.setCheckName("FORCE_CHECK");
entPayRequest.setReUserName(userName);
entPayRequest.setAmount(amount);
entPayRequest.setDescription("提现");
entPayRequest.setSpbillCreateIp("127.0.0.1");
wxPayService.getEntPayService().entPay(entPayRequest);
}
}

View File

@ -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());
}

View File

@ -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());
}
}

View File

@ -5,13 +5,13 @@ import ${package}.domain.${className};
<#list columns as column>
<#if column.columnKey = 'UNI'>
<#if column_index = 1>
import EntityExistException;
import co.yixiang.exception.EntityExistException;
</#if>
</#if>
</#list>
</#if>
import ValidationUtil;
import FileUtil;
import co.yixiang.utils.ValidationUtil;
import co.yixiang.utils.FileUtil;
import ${package}.repository.${className}Repository;
import ${package}.service.${className}Service;
import ${package}.service.dto.${className}Dto;
@ -33,8 +33,8 @@ import cn.hutool.core.util.IdUtil;
//import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import PageUtil;
import QueryHelp;
import co.yixiang.utils.PageUtil;
import co.yixiang.utils.QueryHelp;
import java.util.List;
import java.util.Map;
import java.io.IOException;