|
|
|
|
@ -4,7 +4,6 @@ import cn.hutool.core.map.MapUtil;
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
|
|
|
|
|
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
|
|
|
|
|
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundRespDTO;
|
|
|
|
|
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
|
|
|
|
|
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
|
|
|
|
|
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
|
|
|
|
|
@ -45,16 +44,8 @@ public class WxPubPayClient extends AbstractWxPayClient {
|
|
|
|
|
@Override
|
|
|
|
|
protected PayOrderRespDTO doUnifiedOrderV2(PayOrderUnifiedReqDTO reqDTO) throws WxPayException {
|
|
|
|
|
// 构建 WxPayUnifiedOrderRequest 对象
|
|
|
|
|
WxPayUnifiedOrderRequest request = WxPayUnifiedOrderRequest.newBuilder()
|
|
|
|
|
.outTradeNo(reqDTO.getOutTradeNo())
|
|
|
|
|
.body(reqDTO.getSubject())
|
|
|
|
|
.detail(reqDTO.getBody())
|
|
|
|
|
.totalFee(reqDTO.getPrice()) // 单位分
|
|
|
|
|
.timeExpire(formatDateV2(reqDTO.getExpireTime()))
|
|
|
|
|
.spbillCreateIp(reqDTO.getUserIp())
|
|
|
|
|
.openid(getOpenid(reqDTO))
|
|
|
|
|
.notifyUrl(reqDTO.getNotifyUrl())
|
|
|
|
|
.build();
|
|
|
|
|
WxPayUnifiedOrderRequest request = buildPayUnifiedOrderRequestV2(reqDTO)
|
|
|
|
|
.setOpenid(getOpenid(reqDTO));
|
|
|
|
|
// 执行请求
|
|
|
|
|
WxPayMpOrderResult response = client.createOrder(request);
|
|
|
|
|
|
|
|
|
|
@ -66,14 +57,8 @@ public class WxPubPayClient extends AbstractWxPayClient {
|
|
|
|
|
@Override
|
|
|
|
|
protected PayOrderRespDTO doUnifiedOrderV3(PayOrderUnifiedReqDTO reqDTO) throws WxPayException {
|
|
|
|
|
// 构建 WxPayUnifiedOrderRequest 对象
|
|
|
|
|
WxPayUnifiedOrderV3Request request = new WxPayUnifiedOrderV3Request();
|
|
|
|
|
request.setOutTradeNo(reqDTO.getOutTradeNo());
|
|
|
|
|
request.setDescription(reqDTO.getSubject());
|
|
|
|
|
request.setAmount(new WxPayUnifiedOrderV3Request.Amount().setTotal(reqDTO.getPrice())); // 单位分
|
|
|
|
|
request.setTimeExpire(formatDateV3(reqDTO.getExpireTime()));
|
|
|
|
|
request.setPayer(new WxPayUnifiedOrderV3Request.Payer().setOpenid(getOpenid(reqDTO)));
|
|
|
|
|
request.setSceneInfo(new WxPayUnifiedOrderV3Request.SceneInfo().setPayerClientIp(reqDTO.getUserIp()));
|
|
|
|
|
request.setNotifyUrl(reqDTO.getNotifyUrl());
|
|
|
|
|
WxPayUnifiedOrderV3Request request = buildPayUnifiedOrderRequestV3(reqDTO)
|
|
|
|
|
.setPayer(new WxPayUnifiedOrderV3Request.Payer().setOpenid(getOpenid(reqDTO)));
|
|
|
|
|
// 执行请求
|
|
|
|
|
WxPayUnifiedOrderV3Result.JsapiResult response = client.createOrderV3(TradeTypeEnum.JSAPI, request);
|
|
|
|
|
|
|
|
|
|
|