diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/TransitionController.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/TransitionController.java index c43dbe15..b9058627 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/TransitionController.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/TransitionController.java @@ -5,7 +5,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import net.lab1024.smartadmin.common.anno.OperateLog; -import net.lab1024.smartadmin.common.constant.ResponseCodeConst; import net.lab1024.smartadmin.common.domain.ResponseDTO; import net.lab1024.smartadmin.common.heartbeat.StringUtil; import net.lab1024.smartadmin.constant.SwaggerTagConst; diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/OrderController.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/OrderController.java index f54f7cfa..22005238 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/OrderController.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/good/OrderController.java @@ -3,6 +3,7 @@ package net.lab1024.smartadmin.module.system.royalcanin.good; import com.alibaba.fastjson.JSONObject; import com.alipay.api.internal.util.AlipaySignature; +import com.beust.jcommander.Parameter; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import net.lab1024.smartadmin.common.anno.OperateLog; @@ -23,18 +24,22 @@ import net.lab1024.smartadmin.module.system.royalcanin.good.service.CartService; import net.lab1024.smartadmin.module.system.royalcanin.good.service.OrderService; import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.OrderDatilListEntity; import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.QueryEntity; +import net.lab1024.smartadmin.module.system.wxpay.MyConfig; import net.lab1024.smartadmin.module.system.wxpay.WxpayService; import net.lab1024.smartadmin.module.system.wxpay.wxPayModel.WxPayEntity; import net.lab1024.smartadmin.util.GenerateSequenceUtil; import net.lab1024.smartadmin.util.MapRemoveNullUtil; import net.lab1024.smartadmin.util.SmartHttpUtil; import net.sf.json.JSONArray; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.utils.URLEncodedUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; import java.util.*; @Api(tags = {SwaggerTagConst.Admin.MANAGER_MALL_API}) @@ -129,7 +134,8 @@ public class OrderController { Map returnMap = new HashMap<>(); returnMap.put("orderNumber",ordersEntity.getOrderNo()); returnMap.put("orderAmount",ordersEntity.getOrderAmount()); - return ResponseDTO.succData(returnMap,wxpayService.generateQRCode(wxPayEntity)); +// return ResponseDTO.succData(returnMap,wxpayService.generateQRCode(wxPayEntity)); + return ResponseDTO.succData(returnMap,wxpayService.testGenerateQRCode(wxPayEntity)); } return ResponseDTO.wrap(OrderResponseCodeConst.GENERATE_ORDER_FAIL); } @@ -198,7 +204,7 @@ public class OrderController { ordersEntity.setOrderNo(GenerateSequenceUtil.generateSequenceNo()); ordersEntity.setOrderStatus("0"); ordersEntity.setBasePoint(basePoint); - + ordersEntity.setPayType("3"); if(orderService.generateOrder(ordersEntity,orderDatilListJson) == 1){ wxPayEntity.setProduct_id(ordersEntity.getProductCode()); @@ -236,6 +242,15 @@ public class OrderController { return ResponseDTO.wrap(OrderResponseCodeConst.WITHOUT_ORDER); } } + @ApiOperation(value = "重定向", notes = "重定向") + @PostMapping("royalcanin/redirectUrlWXH5") + public void redirectUrl(HttpServletRequest request, HttpServletResponse response,@RequestBody String url) throws IOException { + response.addHeader("referer", MyConfig.NOTIFY_URL_H5); + JSONObject jonUrl = JSONObject.parseObject(url); + response.sendRedirect(jonUrl.getString("url")); + + } + @ApiOperation(value = "重新支付(H5)", notes = "重新支付(H5)") @PostMapping("royalcanin/repayOrderWXH5") diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/orderMaster/QueryEntity.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/orderMaster/QueryEntity.java index 61bf8212..6dd6779c 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/orderMaster/QueryEntity.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/royalcanin/orderMaster/QueryEntity.java @@ -13,4 +13,8 @@ public class QueryEntity { private String phoneNumber; + private String page; + + private String rows; + } diff --git a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/wxpay/WxpayService.java b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/wxpay/WxpayService.java index 49b9d378..6af36a4d 100644 --- a/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/wxpay/WxpayService.java +++ b/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/wxpay/WxpayService.java @@ -1,7 +1,6 @@ package net.lab1024.smartadmin.module.system.wxpay; import com.alibaba.fastjson.JSONObject; -import com.aliyun.oss.internal.SignUtils; import net.lab1024.smartadmin.common.heartbeat.StringUtil; import net.lab1024.smartadmin.module.system.royalcanin.MemberAccountService; import net.lab1024.smartadmin.module.system.royalcanin.good.model.OrderEntity; @@ -10,7 +9,6 @@ import net.lab1024.smartadmin.module.system.royalcanin.good.service.OrderService import net.lab1024.smartadmin.module.system.royalcanin.memberAccount.MemberAccountChangeEntity; import net.lab1024.smartadmin.module.system.royalcanin.notify.model.NotifyEntity; import net.lab1024.smartadmin.module.system.royalcanin.notify.service.NotifyService; -import net.lab1024.smartadmin.module.system.royalcanin.orderMaster.QueryEntity; import net.lab1024.smartadmin.module.system.wxpay.sdk.WXPay; import net.lab1024.smartadmin.module.system.wxpay.sdk.WXPayUtil; import net.lab1024.smartadmin.module.system.wxpay.wxPayModel.WxPayEntity; @@ -50,6 +48,27 @@ public class WxpayService { String url = "https://miniapp-test.royalcanin.com.cn/rcmini/h5/"; + private String urlNative = "https://api.mch.weixin.qq.com/v3/pay/transactions/native"; + + public String testGenerateQRCode(WxPayEntity wxPayEntity)throws Exception{ + String Authorization = "WECHATPAY2-SHA256-RSA2048"; + long timestamp = System.currentTimeMillis(); + SortedMap data = new TreeMap<>(); + SortedMap amount = new TreeMap<>(); + amount.put("total",Integer.parseInt(getMoney(wxPayEntity.getTotal_fee()))); + data.put("out_trade_no",wxPayEntity.getOut_trade_no()); + data.put("notify_url",config.notify_url); + data.put("description","皇家宠物食品官方商城"); + data.put("appid",config.getAppID()); + data.put("mchid",config.getMchID()); + net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(data); + jsonObject.put("amount",amount); + SortedMaphearder = new TreeMap<>(); + hearder.put("Accept","application/json"); + hearder.put("Authorization",Authorization +" mchid="+config.getMchID() +",nonce_str=" + WXPayUtil.generateNonceStr() + ",timestamp=" + timestamp + ",signature=" + WXPayUtil.generateSignature(data, config.getKey()) + ",serial_no=" + config.getKey()); + String sb = SmartHttpUtil.httpPostRaw(urlNative,jsonObject.toString(),hearder,"utf-8"); + return sb; + } @@ -191,7 +210,7 @@ public class WxpayService { if (returnCode.equals("SUCCESS")) { returnMap.put("ok", "200"); //拼接返回跳转地址 - String url= URLEncoder.encode(config.NOTIFY_URL_H5+"/myorder/usertion?orderNumber="+wxPayEntity.getOut_trade_no() + "&tradeType=MWEB","utf-8"); + String url= config.NOTIFY_URL_H5+"/myorder/usertion?orderNumber="+wxPayEntity.getOut_trade_no() + "&tradeType=MWEB"; returnMap.put("url", response.get("mweb_url")+"&redirect_url="+url); return response.get("mweb_url") == null ? response.get("err_code_des"):returnMap.get("url"); } else {