|
@@ -1,8 +1,8 @@
|
|
|
package cn.iocoder.yudao.framework.pay.core.client.impl.wx;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
-import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
|
|
+import cn.hutool.core.date.TemporalAccessorUtil;
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
@@ -26,8 +26,8 @@ import com.github.binarywang.wxpay.service.WxPayService;
|
|
|
import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.time.ZoneId;
|
|
|
-import java.util.Date;
|
|
|
import java.util.Objects;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.util.json.JsonUtils.toJsonString;
|
|
@@ -100,8 +100,8 @@ public class WXPubPayClient extends AbstractPayClient<WXPayClientConfig> {
|
|
|
WxPayUnifiedOrderRequest request = WxPayUnifiedOrderRequest.newBuilder()
|
|
|
.outTradeNo(reqDTO.getMerchantOrderId())
|
|
|
.body(reqDTO.getBody())
|
|
|
- .totalFee(reqDTO.getAmount().intValue()) // 单位分
|
|
|
- .timeExpire(DateUtil.format(Date.from(reqDTO.getExpireTime().atZone(ZoneId.systemDefault()).toInstant()), "yyyy-MM-dd'T'HH:mm:ssXXX"))
|
|
|
+ .totalFee(reqDTO.getAmount()) // 单位分
|
|
|
+ .timeExpire(formatDate(reqDTO.getExpireTime()))
|
|
|
.spbillCreateIp(reqDTO.getUserIp())
|
|
|
.openid(getOpenid(reqDTO))
|
|
|
.notifyUrl(reqDTO.getNotifyUrl())
|
|
@@ -115,8 +115,8 @@ public class WXPubPayClient extends AbstractPayClient<WXPayClientConfig> {
|
|
|
WxPayUnifiedOrderV3Request request = new WxPayUnifiedOrderV3Request();
|
|
|
request.setOutTradeNo(reqDTO.getMerchantOrderId());
|
|
|
request.setDescription(reqDTO.getBody());
|
|
|
- request.setAmount(new WxPayUnifiedOrderV3Request.Amount().setTotal(reqDTO.getAmount().intValue())); // 单位分
|
|
|
- request.setTimeExpire(DateUtil.format(Date.from(reqDTO.getExpireTime().atZone(ZoneId.systemDefault()).toInstant()), "yyyy-MM-dd'T'HH:mm:ssXXX"));
|
|
|
+ request.setAmount(new WxPayUnifiedOrderV3Request.Amount().setTotal(reqDTO.getAmount())); // 单位分
|
|
|
+ request.setTimeExpire(formatDate(reqDTO.getExpireTime()));
|
|
|
request.setPayer(new WxPayUnifiedOrderV3Request.Payer().setOpenid(getOpenid(reqDTO)));
|
|
|
request.setSceneInfo(new WxPayUnifiedOrderV3Request.SceneInfo().setPayerClientIp(reqDTO.getUserIp()));
|
|
|
request.setNotifyUrl(reqDTO.getNotifyUrl());
|
|
@@ -196,4 +196,8 @@ public class WXPubPayClient extends AbstractPayClient<WXPayClientConfig> {
|
|
|
throw new UnsupportedOperationException();
|
|
|
}
|
|
|
|
|
|
+ private static String formatDate(LocalDateTime time) {
|
|
|
+ return TemporalAccessorUtil.format(time.atZone(ZoneId.systemDefault()), "yyyy-MM-dd'T'HH:mm:ssXXX");
|
|
|
+ }
|
|
|
+
|
|
|
}
|