Browse Source

登录测试完成

yq 3 years ago
parent
commit
8e92c7fefe

+ 1 - 1
src/main/java/com/usky/dxtop/controller/web/OrderController.java

@@ -137,7 +137,7 @@ public class OrderController extends BaseController {
         orderService.reportExport(startTime,endTime,type,response);
     }
 
-    @PostMapping("callUnifiedPay")
+    @PostMapping("/callUnifiedPay")
     public AjaxResult callUnifiedPay(@RequestBody Order order){
         return AjaxResult.success(orderService.callUnifiedPay(order));
     }

+ 59 - 0
src/main/java/com/usky/dxtop/controller/web/WxController.java

@@ -0,0 +1,59 @@
+package com.usky.dxtop.controller.web;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.usky.dxtop.common.exception.CustomException;
+import com.usky.dxtop.common.utils.DateUtils;
+import com.usky.dxtop.common.utils.http.HttpUtils;
+import com.usky.dxtop.common.utils.sign.Md5Utils;
+import com.usky.dxtop.common.utils.uuid.UUID;
+import com.usky.dxtop.service.api.TopApi;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.TreeMap;
+
+/**
+ * @author yq
+ * @date 2021/9/22 10:04
+ */
+@Slf4j
+@RestController
+public class WxController {
+
+    private static final String WX_LOGIN_URL = "https://api.weixin.qq.com/sns/jscode2session";
+
+    @GetMapping("/wxLogin")
+    public String wxLogin(@RequestParam String jsCode){
+        TreeMap<String, String> treeMap = new TreeMap<>();
+        treeMap.put("appid", TopApi.WX_APP_ID);
+        treeMap.put("secret", TopApi.WX_APP_SECRET);
+        treeMap.put("js_code", jsCode);
+        treeMap.put("grant_type", "authorization_code");
+        String result = HttpUtils.sendGet(WX_LOGIN_URL, TopApi.joinParam(treeMap));
+        JSONObject obj= JSON.parseObject(result);
+        log.info("获取到的相应"+obj);
+        String openId = "";
+        if (null == obj.get("errcode")){
+            openId = obj.get("openid").toString();
+        }else {
+            throw new CustomException(String.format("登录异常:code:%s,message:%s",obj.get("errcode"),obj.get("errmsg")));
+        }
+        return openId;
+    }
+
+    @GetMapping("/wxPayParam")
+    public String wxPayParam(@RequestParam String payInfo){
+        TreeMap<String, String> treeMap = new TreeMap<>();
+        treeMap.put("appid", TopApi.WX_APP_ID);
+        treeMap.put("timeStamp", DateUtils.dateTimeNow());
+        treeMap.put("nonceStr", UUID.randomUUID().toString(true));
+        treeMap.put("package", String.format("prepay_id=%s",payInfo));
+        treeMap.put("signType", "MD5");
+        String format = String.format("%s&key=%s", TopApi.joinParam(treeMap), TopApi.SECRET);
+        treeMap.put("paySign", Md5Utils.hash(format).toUpperCase());
+        return JSONObject.toJSONString(treeMap);
+    }
+}

+ 1 - 1
src/main/java/com/usky/dxtop/framework/config/SecurityConfig.java

@@ -99,7 +99,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .authorizeRequests()
                 // 对于登录login 注册register 验证码captchaImage 允许匿名访问
                 .antMatchers("/login", "/register", "/captchaImage","/top/notify","/dxtop/order/topScanPayApi","/loginApi",
-                        "/dxtop/charge/page","/dxtop/dish/page"
+                        "/dxtop/charge/page","/dxtop/dish/page","/wxLogin","/wxPayParam","/dxtop/order/callUnifiedPay"
                         ).anonymous()
                 .antMatchers(
                         HttpMethod.GET,

+ 7 - 0
src/main/java/com/usky/dxtop/model/Order.java

@@ -83,6 +83,10 @@ public class Order extends BaseEntity implements Serializable {
      * 到账比例
      */
     private Double topRadio;
+    /**
+     * 充值场景
+     */
+    private Integer scene;
 
     /**
      * 东信支付类型
@@ -90,4 +94,7 @@ public class Order extends BaseEntity implements Serializable {
     @TableField(exist = false)
     private String topPayType;
 
+    @TableField(exist = false)
+    private String openId;
+
 }

+ 6 - 1
src/main/java/com/usky/dxtop/service/api/TopApi.java

@@ -54,7 +54,12 @@ public class TopApi {
     /**
      * 微信appid
      */
-    public static final String WX_APP_ID = "";
+    public static final String WX_APP_ID = "wx40274c2aaec24330";
+
+    /**
+     * 微信密钥
+     */
+    public static final String WX_APP_SECRET = "4b0c04f796a8bed2c2435cc68362b22b";
 
     /**
      * 拼接扫码支付参数

+ 49 - 0
src/main/java/com/usky/dxtop/service/emun/OrderSceneCode.java

@@ -0,0 +1,49 @@
+package com.usky.dxtop.service.emun;
+
+/**
+ * @author yq
+ * @date 2021/9/22 14:13
+ */
+public enum OrderSceneCode {
+
+    BACK_STAGE(1,"后台充值"),
+
+    VISITOR(2,"游客充值"),
+
+    ERP_APP(3,"ERPapp充值"),
+
+    COMMON_APP(4,"通用app自主充值"),
+
+
+    OTHER(5,"其它");
+    private Integer code;
+
+    private String name;
+
+
+    OrderSceneCode(Integer code,String name){
+        this.code = code;
+        this.name = name;
+    }
+
+    public static OrderSceneCode parse(Integer code){
+        OrderSceneCode orderSceneCode = null;
+        for (OrderSceneCode o:OrderSceneCode.values()) {
+            if (o.getCode().equals(code)){
+                orderSceneCode = o;
+                break;
+            }
+        }
+        if (null == orderSceneCode){
+            orderSceneCode = OTHER;
+        }
+        return orderSceneCode;
+    }
+
+    public Integer getCode(){
+        return code;
+    }
+    public String getName(){
+        return name;
+    }
+}

+ 9 - 4
src/main/java/com/usky/dxtop/service/impl/OrderServiceImpl.java

@@ -23,6 +23,7 @@ import com.usky.dxtop.service.OrderService;
 import com.usky.dxtop.service.api.TopApi;
 import com.usky.dxtop.service.config.rabbitmq.charge.ChargeConsumeConfig;
 import com.usky.dxtop.service.emun.OrderPayType;
+import com.usky.dxtop.service.emun.OrderSceneCode;
 import com.usky.dxtop.service.emun.OrderStatus;
 import com.usky.dxtop.service.vo.ChargeVO;
 import com.usky.dxtop.service.vo.OrderExport;
@@ -261,9 +262,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     public void paySuccess(Order order){
         boolean b = isCheckOrder(order.getOrderNumber());
         //判断是不是游客充值
-//        if (null == order.getUserId() || 0 == order.getUserId()){
-//            b = false;
-//        }
+        if (null == order.getUserId() || 0 == order.getUserId()){
+            b = false;
+        }
         if (b){
             //调用卡充值api
             callCardTopApi(order);
@@ -310,11 +311,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         factory.classMap(Order.class, OrderExport.class)
                 .exclude("orderFlag")
                 .exclude("payType")
+                .exclude("scene")
                 .byDefault().register();
         MapperFacade mapper = factory.getMapperFacade();
         OrderExport orderExport = mapper.map(order, OrderExport.class);
         orderExport.setOrderFlag(OrderStatus.parse(order.getOrderFlag()).getName());
         orderExport.setPayType(OrderPayType.parse(order.getPayType()).getName());
+        orderExport.setScene(OrderSceneCode.parse(order.getScene()).getName());
         return orderExport;
     }
 
@@ -372,12 +375,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         String orderNumber = TopApi.getOrderNumber();
         order.setOrderNumber(orderNumber);
         String appId = null;
+        String openId = null;
         if ("W06".equals(order.getTopPayType())){
             appId = TopApi.WX_APP_ID;
+            openId = order.getOpenId();
         }
         TreeMap<String, String> params = TopApi.generateUnifyParam(orderNumber,new Double(Arith.mul(order.getMoney().doubleValue(),100)).intValue(),
                 null, null,
-                null,null,null,order.getTopPayType(),null,appId,
+                null,null,openId,order.getTopPayType(),null,appId,
                 null,null,null,null);
         String unify = TopApi.generateParam(params);
         String result = HttpUtils.sendGet(TopApi.UNIFY_URL, unify);

+ 3 - 2
src/main/java/com/usky/dxtop/service/vo/OrderExport.java

@@ -1,8 +1,6 @@
 package com.usky.dxtop.service.vo;
 
 import cn.afterturn.easypoi.excel.annotation.Excel;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 
 /**
@@ -48,6 +46,9 @@ public class OrderExport {
     @Excel(name = "充值来源", height = 6, width = 20)
     private Integer topSource;
 
+    @Excel(name = "支付场景", height = 6, width = 20)
+    private String scene;
+
     /**
      * 支付方式
      */

+ 2 - 2
src/main/resources/application-dev.properties

@@ -17,9 +17,9 @@ mybatis.refresh.sleep-seconds=20
 # datasource
 spring.autoconfigure.exclude=com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
 spring.datasource.dynamic.primary=dxtop
-spring.datasource.dynamic.datasource.dxtop.url=jdbc:mysql://120.55.70.156:3306/dxtop?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowMultiQueries=true
+spring.datasource.dynamic.datasource.dxtop.url=jdbc:mysql://124.71.145.219:3306/dxtop?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowMultiQueries=true
 spring.datasource.dynamic.datasource.dxtop.username=root
-spring.datasource.dynamic.datasource.dxtop.password=123456
+spring.datasource.dynamic.datasource.dxtop.password=Wjzn2021Db
 spring.datasource.dynamic.druid.initial-size=5                                                                       
 spring.datasource.dynamic.druid.min-idle=5
 spring.datasource.dynamic.druid.max-active=30