From 9267f497c229d8f22a7869b8fc9ca54c32185e72 Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Fri, 31 Mar 2023 17:47:48 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=B0=83=E6=95=B4H5=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mdd/common/plugin/wechat/WxPayDriver.java | 7 +++++-- .../main/java/com/mdd/front/controller/PayController.java | 4 ++-- .../java/com/mdd/front/service/impl/PayServiceImpl.java | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/server/like-common/src/main/java/com/mdd/common/plugin/wechat/WxPayDriver.java b/server/like-common/src/main/java/com/mdd/common/plugin/wechat/WxPayDriver.java index aaabfb15..f4d7eac2 100644 --- a/server/like-common/src/main/java/com/mdd/common/plugin/wechat/WxPayDriver.java +++ b/server/like-common/src/main/java/com/mdd/common/plugin/wechat/WxPayDriver.java @@ -55,7 +55,7 @@ public class WxPayDriver { * @return WxPayUnifiedOrderV3Result.JsapiResult * @throws Exception 异常 */ - public static WxPayUnifiedOrderV3Result.JsapiResult unifiedOrder(PaymentRequestV3 requestV3) throws Exception { + public static Object unifiedOrder(PaymentRequestV3 requestV3) throws Exception { // 订单参数 Integer terminal = requestV3.getTerminal(); String openId = requestV3.getOpenId(); @@ -88,7 +88,10 @@ public class WxPayDriver { payer.setOpenid(openId); // H5平台 + TradeTypeEnum tradeTypeEnum = TradeTypeEnum.JSAPI; + if (terminal == ClientEnum.H5.getCode()) { + tradeTypeEnum = TradeTypeEnum.H5; WxPayUnifiedOrderV3Request.SceneInfo sceneInfo = new WxPayUnifiedOrderV3Request.SceneInfo(); WxPayUnifiedOrderV3Request.H5Info h5Info = new WxPayUnifiedOrderV3Request.H5Info(); h5Info.setType(RequestUtils.device()); @@ -100,7 +103,7 @@ public class WxPayDriver { // 发起订单 WxPayService wxPayService = WxPayDriver.handler(terminal); wxPayUnifiedOrderV3Request.setPayer(payer); - return wxPayService.createOrderV3(TradeTypeEnum.JSAPI, wxPayUnifiedOrderV3Request); + return wxPayService.createOrderV3(tradeTypeEnum, wxPayUnifiedOrderV3Request); } /** diff --git a/server/like-front/src/main/java/com/mdd/front/controller/PayController.java b/server/like-front/src/main/java/com/mdd/front/controller/PayController.java index e51d7c18..6d3c4b81 100644 --- a/server/like-front/src/main/java/com/mdd/front/controller/PayController.java +++ b/server/like-front/src/main/java/com/mdd/front/controller/PayController.java @@ -50,8 +50,8 @@ public class PayController { @GetMapping("/payStatus") @ApiOperation(("支付状态")) - public AjaxResult payStatus(@Validated @NotNull(message = "from参数丢失") @RequestParam String from, - @Validated @NotNull(message = "orderId参数丢失") @RequestParam Integer orderId) { + public AjaxResult payStatus(@Validated @NotNull(message = "from参数丢失") @RequestParam String from, + @Validated @NotNull(message = "orderId参数丢失") @RequestParam Integer orderId) { PayStatusVo vo = iPayService.payStatus(from, orderId); return AjaxResult.success(vo); } diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java index ee2f706f..9c8cce29 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java @@ -1,6 +1,7 @@ package com.mdd.front.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderV3Result; import com.mdd.common.entity.RechargeOrder; import com.mdd.common.entity.setting.DevPayConfig; import com.mdd.common.entity.setting.DevPayWay; From 89598da689214657b2f749b8f00d025126ae4d29 Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Fri, 31 Mar 2023 18:01:54 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=A4=84=E7=90=86H5=E7=AB=AF=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mdd/front/service/impl/PayServiceImpl.java | 15 ++++++++++++--- .../com/mdd/front/validate/PaymentValidate.java | 3 +++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java index 9c8cce29..2660d35f 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java @@ -7,6 +7,7 @@ import com.mdd.common.entity.setting.DevPayConfig; import com.mdd.common.entity.setting.DevPayWay; import com.mdd.common.entity.user.User; import com.mdd.common.entity.user.UserAuth; +import com.mdd.common.enums.ClientEnum; import com.mdd.common.enums.LogMoneyEnum; import com.mdd.common.enums.PaymentEnum; import com.mdd.common.exception.OperateException; @@ -28,11 +29,10 @@ import com.mdd.front.vo.pay.PayWayListVo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; import javax.annotation.Resource; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; +import java.util.*; @Slf4j @Service @@ -168,6 +168,15 @@ public class PayServiceImpl implements IPayService { requestV3.setOutTradeNo(params.getOutTradeNo()); requestV3.setOrderAmount(params.getOrderAmount()); requestV3.setDescription(params.getDescription()); + Object result = WxPayDriver.unifiedOrder(requestV3); + if (terminal == ClientEnum.H5.getCode()) { + Assert.notNull(params.getRedirectUrl(), "redirectUrl参数缺失"); + Map map = new LinkedHashMap<>(); + String h5Url = result.toString(); + h5Url += "&showCheck=true&scene="+params.getAttach()+"&redirect_url="+params.getRedirectUrl(); + map.put("url", h5Url); + return map; + } return WxPayDriver.unifiedOrder(requestV3); } } catch (Exception e) { diff --git a/server/like-front/src/main/java/com/mdd/front/validate/PaymentValidate.java b/server/like-front/src/main/java/com/mdd/front/validate/PaymentValidate.java index 88a30119..292ad037 100644 --- a/server/like-front/src/main/java/com/mdd/front/validate/PaymentValidate.java +++ b/server/like-front/src/main/java/com/mdd/front/validate/PaymentValidate.java @@ -26,6 +26,9 @@ public class PaymentValidate implements Serializable { @ApiModelProperty("订单ID") private Integer orderId; + @ApiModelProperty(value = "重定向链接: H5端需要") + private String redirectUrl; + @ApiModelProperty(value = "用户ID", notes = "该参数无需传递") private Integer userId; From 4f723d52370eca99dd5902cc14e200d91ab3cb39 Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Fri, 31 Mar 2023 18:13:35 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=A4=84=E7=90=86H5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=87=8D=E5=AE=9A=E5=90=91=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/mdd/front/service/impl/PayServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java index 2660d35f..8d1eb043 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java @@ -173,7 +173,8 @@ public class PayServiceImpl implements IPayService { Assert.notNull(params.getRedirectUrl(), "redirectUrl参数缺失"); Map map = new LinkedHashMap<>(); String h5Url = result.toString(); - h5Url += "&showCheck=true&scene="+params.getAttach()+"&redirect_url="+params.getRedirectUrl(); + String redirectUrl = RequestUtils.uri() + params.getRedirectUrl(); + h5Url += "&showCheck=true&scene="+params.getAttach()+"&redirect_url="+redirectUrl; map.put("url", h5Url); return map; } From 3fcd297979b277a6a4fd868b28f00e0c6af7b0c2 Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Fri, 31 Mar 2023 18:21:06 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9h5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/mdd/front/service/impl/PayServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java index 8d1eb043..ca59398d 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java @@ -1,7 +1,6 @@ package com.mdd.front.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderV3Result; import com.mdd.common.entity.RechargeOrder; import com.mdd.common.entity.setting.DevPayConfig; import com.mdd.common.entity.setting.DevPayWay; @@ -174,7 +173,8 @@ public class PayServiceImpl implements IPayService { Map map = new LinkedHashMap<>(); String h5Url = result.toString(); String redirectUrl = RequestUtils.uri() + params.getRedirectUrl(); - h5Url += "&showCheck=true&scene="+params.getAttach()+"&redirect_url="+redirectUrl; + redirectUrl += "?showCheck=true&scene="+params.getAttach()+"&orderId="+params.getOrderId(); + h5Url += "&redirect_url="+redirectUrl; map.put("url", h5Url); return map; } From 05af28cf4d44e32a2ecb65b9490a63edd0115069 Mon Sep 17 00:00:00 2001 From: TinyAnts Date: Fri, 31 Mar 2023 18:25:09 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E8=B0=83=E6=95=B4h5=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/mdd/front/service/impl/PayServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java b/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java index ca59398d..d8f02a1b 100644 --- a/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java +++ b/server/like-front/src/main/java/com/mdd/front/service/impl/PayServiceImpl.java @@ -173,7 +173,7 @@ public class PayServiceImpl implements IPayService { Map map = new LinkedHashMap<>(); String h5Url = result.toString(); String redirectUrl = RequestUtils.uri() + params.getRedirectUrl(); - redirectUrl += "?showCheck=true&scene="+params.getAttach()+"&orderId="+params.getOrderId(); + redirectUrl += "?checkPay=true&scene="+params.getAttach()+"&orderId="+params.getOrderId(); h5Url += "&redirect_url="+redirectUrl; map.put("url", h5Url); return map;