Преглед изворни кода

微信内支付宝支付不跳转页面

zoujiajian пре 2 година
родитељ
комит
4f2139dd48

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/request/AlipayOrderDonReq.java

@@ -22,6 +22,11 @@ public class AlipayOrderDonReq {
 	 */
 	private Integer type;
 
+	/**
+	 * 是否在微信内支付
+	 */
+	private Boolean isWx;
+
 	private String payMode;
 
 	private String returnUrl;

+ 2 - 1
netflix-service/src/main/java/com/cyksj/service/order/OrderDonService.java

@@ -10,6 +10,7 @@ import com.cyksj.model.dto.H5JsPayParams;
 import com.cyksj.model.entity.OrderDetailView;
 import com.cyksj.model.entity.OrderDon;
 import com.cyksj.model.entity.RealGoodsInterestUser;
+import com.cyksj.model.request.AlipayOrderDonReq;
 import com.cyksj.model.request.OrderPayRequest;
 
 import java.util.Date;
@@ -53,7 +54,7 @@ public interface OrderDonService extends IService<OrderDon> {
     /**
      * 支付宝预支付
      */
-    AliPayParams aliPay(Long orderId, String returnUrl, String productCode, String qrPayMode) throws Exception;
+    AliPayParams aliPay(AlipayOrderDonReq alipayOrderDonReq, String productCode, String qrPayMode) throws Exception;
 
     /**
      * 支付宝回调

+ 3 - 6
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -56,10 +56,7 @@ import com.cyksj.model.manage.dto.ChannelBaiDuDiscountDto;
 import com.cyksj.model.manage.dto.GiftCardDto;
 import com.cyksj.model.manage.views.GroupsRelationView;
 import com.cyksj.model.manage.views.OrderDonView;
-import com.cyksj.model.request.GiftCardPayReq;
-import com.cyksj.model.request.OrderAttach;
-import com.cyksj.model.request.OrderPayRequest;
-import com.cyksj.model.request.TelegramBotMsgReq;
+import com.cyksj.model.request.*;
 import com.cyksj.model.views.*;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.coupon.CouponFontService;
@@ -1022,8 +1019,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 	}
 
 	@Override
-	public AliPayParams aliPay(Long orderId, String returnUrl, String productCode, String qrPayMode) throws Exception {
-		return aliPayCommonService.unifiedPay(orderId, productCode, qrPayMode, returnUrl);
+	public AliPayParams aliPay(AlipayOrderDonReq re, String productCode, String qrPayMode) throws Exception {
+		return aliPayCommonService.unifiedPay(re,productCode, qrPayMode);
 	}
 
 	@Override

+ 2 - 1
netflix-service/src/main/java/com/cyksj/service/pay/AliPayCommonService.java

@@ -1,6 +1,7 @@
 package com.cyksj.service.pay;
 
 import com.cyksj.model.dto.AliPayParams;
+import com.cyksj.model.request.AlipayOrderDonReq;
 
 /*
  *项目名: netflix
@@ -18,5 +19,5 @@ public interface AliPayCommonService {
 	 */
 	AliPayParams unifiedPayRegister(Long orderId, String productCode, String payMode, String returnUrl) throws Exception;
 
-	AliPayParams unifiedPay(Long orderId, String productCode, String payMode, String returnUrl) throws Exception;
+	AliPayParams unifiedPay(AlipayOrderDonReq re, String productCode, String payMode) throws Exception;
 }

+ 7 - 2
netflix-service/src/main/java/com/cyksj/service/pay/impl/AliPayCommonServiceImpl.java

@@ -27,6 +27,7 @@ import com.cyksj.mapper.order.OrderDonPostMapper;
 import com.cyksj.model.dto.AliPayParams;
 import com.cyksj.model.dto.OrderPayBuilderDto;
 import com.cyksj.model.entity.*;
+import com.cyksj.model.request.AlipayOrderDonReq;
 import com.cyksj.model.request.OrderAttach;
 import com.cyksj.service.pay.AliPayCommonService;
 import com.cyksj.service.sys.SysConfigService;
@@ -97,7 +98,9 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
 	}
 
 	@Override
-	public AliPayParams unifiedPay(Long orderId, String productCode, String payMode, String returnUrl) throws Exception {
+	public AliPayParams unifiedPay(AlipayOrderDonReq re, String productCode, String payMode) throws Exception {
+		Long orderId = re.getOrderId();
+		String returnUrl = re.getReturnUrl();
 		OrderDon orderDon = orderDonMapper.selectById(orderId);
 		//获取支付宝默认商户
 		String appId = sysConfigService.getDefaultShopConfigByType("zfb");
@@ -131,7 +134,9 @@ public class AliPayCommonServiceImpl implements AliPayCommonService {
 		if (orderDonPost != null && OrderDonPost.Type.BaiDu == orderDonPost.getType()) {
 			is_bdPost = true;
 		}
-		if (ZfbProductCode.MOBILE_WEB.getProductCode().equals(productCode)) {
+		//是否在微信内支付 微信内支付宝支付后 支付宝回调页面不跳转
+		Boolean isWx = Optional.ofNullable(re.getIsWx()).orElse(false);
+		if (ZfbProductCode.MOBILE_WEB.getProductCode().equals(productCode) && !isWx) {
 			if (is_bdPost) {
 				//页面 拼接订单号,前端从url获取订单id.
 				returnUrl = String.format("%s%s", envCommonService.getDomain(), BaseZfbConfig.SUCCESS_URL) + orderDon.getId();

+ 3 - 9
netflix-web/src/main/java/com/cyksj/web/controller/payment/OrderController.java

@@ -273,9 +273,7 @@ public class OrderController {
 	@PostMapping("/post/pay/zfb")
     @Deprecated
     public Result<String> aliPay(@RequestBody @Validated AlipayOrderDonReq re) throws Exception {
-        Long orderId = re.getOrderId();
-        String returnUrl = re.getReturnUrl();
-        AliPayParams aliPayParams = orderDonService.aliPay(orderId, returnUrl, ZfbProductCode.MOBILE_WEB.getProductCode(), null);
+        AliPayParams aliPayParams = orderDonService.aliPay(re, ZfbProductCode.MOBILE_WEB.getProductCode(), null);
 //        response.setContentType("text/html;charset=" + BaseZfbConfig.charset);
         //直接将完整的表单html输出到页面
 //        response.getWriter().write(aliPayParams.getBody());
@@ -290,9 +288,7 @@ public class OrderController {
      */
     @PostMapping("/get/zfb/orderQrCode")
     public Result<String> zfbWebQrCode(@RequestBody @Validated AlipayOrderDonReq re) throws Exception {
-        Long orderId = re.getOrderId();
-        String returnUrl = re.getReturnUrl();
-        AliPayParams aliPayParams = orderDonService.aliPay(orderId, returnUrl, ZfbProductCode.PC_WEB.getProductCode(), BaseZfbConfig.qrPayMode_orderCode);
+        AliPayParams aliPayParams = orderDonService.aliPay(re, ZfbProductCode.PC_WEB.getProductCode(), BaseZfbConfig.qrPayMode_orderCode);
 //        response.setContentType("text/html;charset=" + BaseZfbConfig.charset);
         //直接将完整的表单html输出到页面
 //        response.getWriter().write(aliPayParams.getBody());
@@ -307,9 +303,7 @@ public class OrderController {
      */
     @PostMapping("/get/zfb/orderRedirect")
     public Result<String> zfbWebRedirectQrCode(@RequestBody @Validated AlipayOrderDonReq re) throws Exception {
-        Long orderId = re.getOrderId();
-        String returnUrl = re.getReturnUrl();
-        AliPayParams aliPayParams = orderDonService.aliPay(orderId, returnUrl, ZfbProductCode.PC_WEB.getProductCode(), BaseZfbConfig.qrPayMode_redirect);
+        AliPayParams aliPayParams = orderDonService.aliPay(re, ZfbProductCode.PC_WEB.getProductCode(), BaseZfbConfig.qrPayMode_redirect);
         return GatewayResponse.SUCCESS.newBuilder().toResult(aliPayParams.getBody());
     }