企业付款退款等重写
This commit is contained in:
@ -1,128 +1,128 @@
|
|||||||
package co.yixiang.modules.order.service;
|
//package co.yixiang.modules.order.service;
|
||||||
|
//
|
||||||
import cn.hutool.core.util.StrUtil;
|
//import cn.hutool.core.util.StrUtil;
|
||||||
import co.yixiang.exception.ErrorRequestException;
|
//import co.yixiang.exception.ErrorRequestException;
|
||||||
import co.yixiang.modules.shop.service.YxSystemConfigService;
|
//import co.yixiang.modules.shop.service.YxSystemConfigService;
|
||||||
import co.yixiang.mp.config.WxPayConfiguration;
|
//import co.yixiang.mp.config.WxPayConfiguration;
|
||||||
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
|
//import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
|
||||||
import com.github.binarywang.wxpay.bean.order.WxPayMwebOrderResult;
|
//import com.github.binarywang.wxpay.bean.order.WxPayMwebOrderResult;
|
||||||
import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
|
//import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
|
||||||
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
|
//import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
|
||||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
//import com.github.binarywang.wxpay.exception.WxPayException;
|
||||||
import com.github.binarywang.wxpay.service.WxPayService;
|
//import com.github.binarywang.wxpay.service.WxPayService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
//import lombok.AllArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
//import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
//import org.springframework.stereotype.Service;
|
||||||
import java.math.BigDecimal;
|
//
|
||||||
|
//import java.math.BigDecimal;
|
||||||
/**
|
//
|
||||||
* @ClassName YxPayService
|
///**
|
||||||
* @Author hupeng <610796224@qq.com>
|
// * @ClassName YxPayService
|
||||||
* @Date 2020/3/1
|
// * @Author hupeng <610796224@qq.com>
|
||||||
**/
|
// * @Date 2020/3/1
|
||||||
@Service
|
// **/
|
||||||
public class YxPayService {
|
//@Service
|
||||||
@Autowired
|
//public class YxPayService {
|
||||||
private YxSystemConfigService systemConfigService;
|
//
|
||||||
|
// @Autowired
|
||||||
|
// private YxSystemConfigService systemConfigService;
|
||||||
/**
|
//
|
||||||
* 微信公众号支付/小程序支付
|
//
|
||||||
*
|
// /**
|
||||||
* @param orderId
|
// * 微信公众号支付/小程序支付
|
||||||
* @param openId 公众号/小程序openid
|
// *
|
||||||
* @param body
|
// * @param orderId
|
||||||
* @param totalFee
|
// * @param openId 公众号/小程序openid
|
||||||
* @return
|
// * @param body
|
||||||
* @throws WxPayException
|
// * @param totalFee
|
||||||
*/
|
// * @return
|
||||||
public WxPayMpOrderResult wxPay(String orderId, String openId, String body,
|
// * @throws WxPayException
|
||||||
Integer totalFee,int type) throws WxPayException {
|
// */
|
||||||
|
// public WxPayMpOrderResult wxPay(String orderId, String openId, String body,
|
||||||
String apiUrl = systemConfigService.getData("api_url");
|
// Integer totalFee,int type) throws WxPayException {
|
||||||
if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
|
//
|
||||||
|
// String apiUrl = systemConfigService.getData("api_url");
|
||||||
WxPayService wxPayService = WxPayConfiguration.getPayService();
|
// if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
|
||||||
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
|
//
|
||||||
|
// WxPayService wxPayService = WxPayConfiguration.getPayService();
|
||||||
orderRequest.setTradeType("JSAPI");
|
// WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
|
||||||
orderRequest.setOpenid(openId);
|
//
|
||||||
orderRequest.setBody(body);
|
// orderRequest.setTradeType("JSAPI");
|
||||||
orderRequest.setOutTradeNo(orderId);
|
// orderRequest.setOpenid(openId);
|
||||||
orderRequest.setTotalFee(totalFee);
|
// orderRequest.setBody(body);
|
||||||
orderRequest.setSpbillCreateIp("127.0.0.1");
|
// orderRequest.setOutTradeNo(orderId);
|
||||||
if(type == 2){
|
// orderRequest.setTotalFee(totalFee);
|
||||||
orderRequest.setNotifyUrl(apiUrl + "/api/wechat/renotify");
|
// orderRequest.setSpbillCreateIp("127.0.0.1");
|
||||||
}else{
|
// if(type == 2){
|
||||||
orderRequest.setNotifyUrl(apiUrl + "/api/wechat/notify");
|
// orderRequest.setNotifyUrl(apiUrl + "/api/wechat/renotify");
|
||||||
}
|
// }else{
|
||||||
|
// orderRequest.setNotifyUrl(apiUrl + "/api/wechat/notify");
|
||||||
|
// }
|
||||||
WxPayMpOrderResult orderResult = wxPayService.createOrder(orderRequest);
|
//
|
||||||
|
//
|
||||||
return orderResult;
|
// WxPayMpOrderResult orderResult = wxPayService.createOrder(orderRequest);
|
||||||
|
//
|
||||||
}
|
// return orderResult;
|
||||||
|
//
|
||||||
;
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
/**
|
// /**
|
||||||
* 微信H5支付
|
// * 微信H5支付
|
||||||
*
|
// *
|
||||||
* @param orderId
|
// * @param orderId
|
||||||
* @param body
|
// * @param body
|
||||||
* @param totalFee
|
// * @param totalFee
|
||||||
* @return
|
// * @return
|
||||||
* @throws WxPayException
|
// * @throws WxPayException
|
||||||
*/
|
// */
|
||||||
public WxPayMwebOrderResult wxH5Pay(String orderId, String body,
|
// public WxPayMwebOrderResult wxH5Pay(String orderId, String body,
|
||||||
Integer totalFee,int type) throws WxPayException {
|
// Integer totalFee,int type) throws WxPayException {
|
||||||
|
//
|
||||||
String apiUrl = systemConfigService.getData("api_url");
|
// String apiUrl = systemConfigService.getData("api_url");
|
||||||
if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
|
// if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
|
||||||
|
//
|
||||||
WxPayService wxPayService = WxPayConfiguration.getPayService();
|
// WxPayService wxPayService = WxPayConfiguration.getPayService();
|
||||||
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
|
// WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
|
||||||
|
//
|
||||||
orderRequest.setTradeType("MWEB");
|
// orderRequest.setTradeType("MWEB");
|
||||||
orderRequest.setBody(body);
|
// orderRequest.setBody(body);
|
||||||
orderRequest.setOutTradeNo(orderId);
|
// orderRequest.setOutTradeNo(orderId);
|
||||||
orderRequest.setTotalFee(totalFee);
|
// orderRequest.setTotalFee(totalFee);
|
||||||
orderRequest.setSpbillCreateIp("127.0.0.1");
|
// orderRequest.setSpbillCreateIp("127.0.0.1");
|
||||||
if(type == 2){
|
// if(type == 2){
|
||||||
orderRequest.setNotifyUrl(apiUrl + "/api/wechat/renotify");
|
// orderRequest.setNotifyUrl(apiUrl + "/api/wechat/renotify");
|
||||||
}else{
|
// }else{
|
||||||
orderRequest.setNotifyUrl(apiUrl + "/api/wechat/notify");
|
// orderRequest.setNotifyUrl(apiUrl + "/api/wechat/notify");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
WxPayMwebOrderResult orderResult = wxPayService.createOrder(orderRequest);
|
// WxPayMwebOrderResult orderResult = wxPayService.createOrder(orderRequest);
|
||||||
|
//
|
||||||
return orderResult;
|
// return orderResult;
|
||||||
|
//
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
/**
|
// /**
|
||||||
* 退款
|
// * 退款
|
||||||
* @param orderId
|
// * @param orderId
|
||||||
* @param totalFee
|
// * @param totalFee
|
||||||
* @throws WxPayException
|
// * @throws WxPayException
|
||||||
*/
|
// */
|
||||||
public void refundOrder(String orderId, Integer totalFee) throws WxPayException {
|
// public void refundOrder(String orderId, Integer totalFee) throws WxPayException {
|
||||||
String apiUrl = systemConfigService.getData("api_url");
|
// String apiUrl = systemConfigService.getData("api_url");
|
||||||
if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
|
// if (StrUtil.isBlank(apiUrl)) throw new ErrorRequestException("请配置api地址");
|
||||||
|
//
|
||||||
WxPayService wxPayService = WxPayConfiguration.getPayService();
|
// WxPayService wxPayService = WxPayConfiguration.getPayService();
|
||||||
WxPayRefundRequest wxPayRefundRequest = new WxPayRefundRequest();
|
// WxPayRefundRequest wxPayRefundRequest = new WxPayRefundRequest();
|
||||||
|
//
|
||||||
wxPayRefundRequest.setTotalFee(totalFee);//订单总金额
|
// wxPayRefundRequest.setTotalFee(totalFee);//订单总金额
|
||||||
wxPayRefundRequest.setOutTradeNo(orderId);
|
// wxPayRefundRequest.setOutTradeNo(orderId);
|
||||||
wxPayRefundRequest.setOutRefundNo(orderId);
|
// wxPayRefundRequest.setOutRefundNo(orderId);
|
||||||
wxPayRefundRequest.setRefundFee(totalFee);//退款金额
|
// wxPayRefundRequest.setRefundFee(totalFee);//退款金额
|
||||||
wxPayRefundRequest.setNotifyUrl(apiUrl + "/api/notify/refund");
|
// wxPayRefundRequest.setNotifyUrl(apiUrl + "/api/notify/refund");
|
||||||
|
//
|
||||||
wxPayService.refund(wxPayRefundRequest);
|
// wxPayService.refund(wxPayRefundRequest);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
|
|||||||
@ -13,10 +13,9 @@ import cn.hutool.core.util.IdUtil;
|
|||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
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.service.impl.BaseServiceImpl;
|
||||||
import co.yixiang.common.web.vo.Paging;
|
import co.yixiang.common.web.vo.Paging;
|
||||||
|
import co.yixiang.constant.ShopConstants;
|
||||||
import co.yixiang.domain.AlipayConfig;
|
import co.yixiang.domain.AlipayConfig;
|
||||||
import co.yixiang.domain.vo.TradeVo;
|
import co.yixiang.domain.vo.TradeVo;
|
||||||
import co.yixiang.enums.BillEnum;
|
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.entity.YxStoreOrderCartInfo;
|
||||||
import co.yixiang.modules.order.mapper.YxStoreOrderMapper;
|
import co.yixiang.modules.order.mapper.YxStoreOrderMapper;
|
||||||
import co.yixiang.modules.order.mapping.OrderMap;
|
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.YxStoreOrderCartInfoService;
|
||||||
import co.yixiang.modules.order.service.YxStoreOrderService;
|
import co.yixiang.modules.order.service.YxStoreOrderService;
|
||||||
import co.yixiang.modules.order.service.YxStoreOrderStatusService;
|
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.user.web.vo.YxWechatUserQueryVo;
|
||||||
import co.yixiang.modules.wechat.entity.YxWechatTemplate;
|
import co.yixiang.modules.wechat.entity.YxWechatTemplate;
|
||||||
import co.yixiang.modules.wechat.service.YxWechatTemplateService;
|
import co.yixiang.modules.wechat.service.YxWechatTemplateService;
|
||||||
import co.yixiang.mp.config.WxPayConfiguration;
|
|
||||||
import co.yixiang.mp.service.WxMpTemplateMessageService;
|
import co.yixiang.mp.service.WxMpTemplateMessageService;
|
||||||
|
import co.yixiang.mp.service.YxPayService;
|
||||||
import co.yixiang.service.AlipayService;
|
import co.yixiang.service.AlipayService;
|
||||||
import co.yixiang.utils.OrderUtil;
|
import co.yixiang.utils.OrderUtil;
|
||||||
import co.yixiang.utils.RedisUtil;
|
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
|
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
|
||||||
import com.github.binarywang.wxpay.bean.order.WxPayMwebOrderResult;
|
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.exception.WxPayException;
|
||||||
import com.github.binarywang.wxpay.service.WxPayService;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
@ -95,6 +89,9 @@ import java.math.BigDecimal;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
//import co.yixiang.common.rocketmq.MqProducer;
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
|||||||
@ -15,7 +15,6 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import co.yixiang.common.api.ApiResult;
|
import co.yixiang.common.api.ApiResult;
|
||||||
import co.yixiang.common.web.controller.BaseController;
|
import co.yixiang.common.web.controller.BaseController;
|
||||||
import co.yixiang.exception.ErrorRequestException;
|
import co.yixiang.exception.ErrorRequestException;
|
||||||
import co.yixiang.modules.order.service.YxPayService;
|
|
||||||
import co.yixiang.modules.shop.service.YxSystemConfigService;
|
import co.yixiang.modules.shop.service.YxSystemConfigService;
|
||||||
import co.yixiang.modules.user.entity.YxUser;
|
import co.yixiang.modules.user.entity.YxUser;
|
||||||
import co.yixiang.modules.user.entity.YxWechatUser;
|
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.YxUserService;
|
||||||
import co.yixiang.modules.user.service.YxWechatUserService;
|
import co.yixiang.modules.user.service.YxWechatUserService;
|
||||||
import co.yixiang.modules.user.web.param.RechargeParam;
|
import co.yixiang.modules.user.web.param.RechargeParam;
|
||||||
|
import co.yixiang.mp.service.YxPayService;
|
||||||
import co.yixiang.utils.SecurityUtils;
|
import co.yixiang.utils.SecurityUtils;
|
||||||
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
|
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
|
||||||
import com.github.binarywang.wxpay.bean.order.WxPayMwebOrderResult;
|
import com.github.binarywang.wxpay.bean.order.WxPayMwebOrderResult;
|
||||||
|
|||||||
154
yshop-mp/src/main/java/co/yixiang/mp/service/YxPayService.java
Normal file
154
yshop-mp/src/main/java/co/yixiang/mp/service/YxPayService.java
Normal 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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -14,8 +14,9 @@ import co.yixiang.modules.shop.service.YxUserService;
|
|||||||
import co.yixiang.modules.shop.service.YxWechatUserService;
|
import co.yixiang.modules.shop.service.YxWechatUserService;
|
||||||
import co.yixiang.modules.shop.service.dto.YxUserDTO;
|
import co.yixiang.modules.shop.service.dto.YxUserDTO;
|
||||||
import co.yixiang.modules.shop.service.dto.YxWechatUserDTO;
|
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.OrderUtil;
|
||||||
import co.yixiang.utils.RedisUtil;
|
|
||||||
import com.github.binarywang.wxpay.bean.entpay.EntPayRequest;
|
import com.github.binarywang.wxpay.bean.entpay.EntPayRequest;
|
||||||
import com.github.binarywang.wxpay.exception.WxPayException;
|
import com.github.binarywang.wxpay.exception.WxPayException;
|
||||||
import com.github.binarywang.wxpay.service.WxPayService;
|
import com.github.binarywang.wxpay.service.WxPayService;
|
||||||
@ -42,17 +43,17 @@ public class UserExtractController {
|
|||||||
private final YxUserExtractService yxUserExtractService;
|
private final YxUserExtractService yxUserExtractService;
|
||||||
private final YxUserService yxUserService;
|
private final YxUserService yxUserService;
|
||||||
private final YxUserBillService yxUserBillService;
|
private final YxUserBillService yxUserBillService;
|
||||||
private final WxPayService wxPayService;
|
|
||||||
private final YxWechatUserService wechatUserService;
|
private final YxWechatUserService wechatUserService;
|
||||||
|
private final YxPayService payService;
|
||||||
|
|
||||||
public UserExtractController(YxUserExtractService yxUserExtractService,YxUserService yxUserService,
|
public UserExtractController(YxUserExtractService yxUserExtractService,YxUserService yxUserService,
|
||||||
YxUserBillService yxUserBillService, WxPayService wxPayService,
|
YxUserBillService yxUserBillService,YxWechatUserService wechatUserService,
|
||||||
YxWechatUserService wechatUserService) {
|
YxPayService payService) {
|
||||||
this.yxUserExtractService = yxUserExtractService;
|
this.yxUserExtractService = yxUserExtractService;
|
||||||
this.yxUserService = yxUserService;
|
this.yxUserService = yxUserService;
|
||||||
this.yxUserBillService = yxUserBillService;
|
this.yxUserBillService = yxUserBillService;
|
||||||
this.wxPayService = wxPayService;
|
|
||||||
this.wechatUserService = wechatUserService;
|
this.wechatUserService = wechatUserService;
|
||||||
|
this.payService = payService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Log("查询")
|
@Log("查询")
|
||||||
@ -110,27 +111,10 @@ public class UserExtractController {
|
|||||||
if(!isTest){
|
if(!isTest){
|
||||||
YxWechatUserDTO wechatUser = wechatUserService.findById(resources.getUid());
|
YxWechatUserDTO wechatUser = wechatUserService.findById(resources.getUid());
|
||||||
if(ObjectUtil.isNotNull(wechatUser)){
|
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 {
|
try {
|
||||||
entPayRequest.setAppid(appId);
|
payService.entPay(wechatUser.getOpenid(),resources.getId().toString(),
|
||||||
entPayRequest.setMchId(mchId);
|
resources.getRealName(),
|
||||||
entPayRequest.setOpenid(wechatUser.getOpenid());
|
resources.getExtractPrice().multiply(new BigDecimal(100)).intValue());
|
||||||
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);
|
|
||||||
} catch (WxPayException e) {
|
} catch (WxPayException e) {
|
||||||
throw new BadRequestException(e.getMessage());
|
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.date.DateUtil;
|
||||||
import cn.hutool.core.util.NumberUtil;
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import co.yixiang.exception.BadRequestException;
|
import co.yixiang.exception.BadRequestException;
|
||||||
import co.yixiang.exception.EntityExistException;
|
import co.yixiang.exception.EntityExistException;
|
||||||
import co.yixiang.modules.activity.domain.YxStorePink;
|
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.YxUserService;
|
||||||
import co.yixiang.modules.shop.service.dto.*;
|
import co.yixiang.modules.shop.service.dto.*;
|
||||||
import co.yixiang.modules.shop.service.mapper.YxStoreOrderMapper;
|
import co.yixiang.modules.shop.service.mapper.YxStoreOrderMapper;
|
||||||
|
import co.yixiang.mp.service.YxPayService;
|
||||||
import co.yixiang.utils.OrderUtil;
|
import co.yixiang.utils.OrderUtil;
|
||||||
import co.yixiang.utils.QueryHelp;
|
import co.yixiang.utils.QueryHelp;
|
||||||
import co.yixiang.utils.RedisUtil;
|
|
||||||
import co.yixiang.utils.ValidationUtil;
|
import co.yixiang.utils.ValidationUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
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.exception.WxPayException;
|
||||||
import com.github.binarywang.wxpay.service.WxPayService;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
@ -59,11 +55,12 @@ public class YxStoreOrderServiceImpl implements YxStoreOrderService {
|
|||||||
private final YxUserBillService yxUserBillService;
|
private final YxUserBillService yxUserBillService;
|
||||||
private final YxStoreOrderStatusService yxStoreOrderStatusService;
|
private final YxStoreOrderStatusService yxStoreOrderStatusService;
|
||||||
private final YxUserService userService;
|
private final YxUserService userService;
|
||||||
private final WxPayService wxPayService;
|
private final YxPayService payService;
|
||||||
|
|
||||||
public YxStoreOrderServiceImpl(YxStoreOrderRepository yxStoreOrderRepository, YxStoreOrderCartInfoRepository yxStoreOrderCartInfoRepository, YxUserRepository userRepository,
|
public YxStoreOrderServiceImpl(YxStoreOrderRepository yxStoreOrderRepository, YxStoreOrderCartInfoRepository yxStoreOrderCartInfoRepository, YxUserRepository userRepository,
|
||||||
YxStorePinkRepository storePinkRepository, YxStoreOrderMapper yxStoreOrderMapper, YxUserBillService yxUserBillService,
|
YxStorePinkRepository storePinkRepository, YxStoreOrderMapper yxStoreOrderMapper, YxUserBillService yxUserBillService,
|
||||||
YxStoreOrderStatusService yxStoreOrderStatusService, YxUserService userService, WxPayService wxPayService) {
|
YxStoreOrderStatusService yxStoreOrderStatusService,
|
||||||
|
YxUserService userService, YxPayService payService) {
|
||||||
this.yxStoreOrderRepository = yxStoreOrderRepository;
|
this.yxStoreOrderRepository = yxStoreOrderRepository;
|
||||||
this.yxStoreOrderCartInfoRepository = yxStoreOrderCartInfoRepository;
|
this.yxStoreOrderCartInfoRepository = yxStoreOrderCartInfoRepository;
|
||||||
this.userRepository = userRepository;
|
this.userRepository = userRepository;
|
||||||
@ -72,7 +69,7 @@ public class YxStoreOrderServiceImpl implements YxStoreOrderService {
|
|||||||
this.yxUserBillService = yxUserBillService;
|
this.yxUserBillService = yxUserBillService;
|
||||||
this.yxStoreOrderStatusService = yxStoreOrderStatusService;
|
this.yxStoreOrderStatusService = yxStoreOrderStatusService;
|
||||||
this.userService = userService;
|
this.userService = userService;
|
||||||
this.wxPayService = wxPayService;
|
this.payService = payService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -155,40 +152,14 @@ public class YxStoreOrderServiceImpl implements YxStoreOrderService {
|
|||||||
|
|
||||||
yxStoreOrderStatusService.create(storeOrderStatus);
|
yxStoreOrderStatusService.create(storeOrderStatus);
|
||||||
}else{
|
}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");
|
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 {
|
try {
|
||||||
wxPayService.refund(wxPayRefundRequest);
|
payService.refundOrder(resources.getOrderId(),
|
||||||
|
bigDecimal.multiply(resources.getPayPrice()).intValue());
|
||||||
} catch (WxPayException e) {
|
} catch (WxPayException e) {
|
||||||
log.info("refund-error:{}",e.getMessage());
|
log.info("refund-error:{}",e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -5,13 +5,13 @@ import ${package}.domain.${className};
|
|||||||
<#list columns as column>
|
<#list columns as column>
|
||||||
<#if column.columnKey = 'UNI'>
|
<#if column.columnKey = 'UNI'>
|
||||||
<#if column_index = 1>
|
<#if column_index = 1>
|
||||||
import EntityExistException;
|
import co.yixiang.exception.EntityExistException;
|
||||||
</#if>
|
</#if>
|
||||||
</#if>
|
</#if>
|
||||||
</#list>
|
</#list>
|
||||||
</#if>
|
</#if>
|
||||||
import ValidationUtil;
|
import co.yixiang.utils.ValidationUtil;
|
||||||
import FileUtil;
|
import co.yixiang.utils.FileUtil;
|
||||||
import ${package}.repository.${className}Repository;
|
import ${package}.repository.${className}Repository;
|
||||||
import ${package}.service.${className}Service;
|
import ${package}.service.${className}Service;
|
||||||
import ${package}.service.dto.${className}Dto;
|
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.cache.annotation.Cacheable;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import PageUtil;
|
import co.yixiang.utils.PageUtil;
|
||||||
import QueryHelp;
|
import co.yixiang.utils.QueryHelp;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|||||||
Reference in New Issue
Block a user