企业付款退款等重写
This commit is contained in:
@ -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);
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
@ -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>
|
||||
|
@ -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;
|
||||
|
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.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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -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;
|
||||
|
Reference in New Issue
Block a user