From 6e82cd5d5875b38fb30be5ee4c1c5d3dbe33fe98 Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期二, 28 五月 2024 17:31:46 +0800
Subject: [PATCH] 写用户端接口

---
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/WeiXinAppController.java |   73 ++++++++++++++++++++++++++++--------
 1 files changed, 56 insertions(+), 17 deletions(-)

diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/WeiXinAppController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/WeiXinAppController.java
index c4d07eb..c1dda36 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/WeiXinAppController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/WeiXinAppController.java
@@ -1,3 +1,4 @@
+/*
 package com.ruoyi.member.controller;
 
 import java.io.BufferedReader;
@@ -14,39 +15,50 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.annotation.Resource;
 import javax.crypto.Cipher;
 import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.SecretKeySpec;
 import javax.servlet.http.HttpServletRequest;
 
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.sign.Base64;
+import com.ruoyi.system.api.domain.AppMiniLoginVO;
+import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
 import com.ruoyi.member.util.*;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.alibaba.fastjson.JSONObject;
 
 
-import net.sf.json.JSON;
-
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
 
+*/
 /**
  * 微信授权方面
  *
  * @author tuzx
  * @date 2018年8月9日
  * @version 1.0
- */
+ *//*
+
 @Controller
 @RequestMapping("/weixin")
 public class WeiXinAppController {
 
 	private static String appid = "wx0e4769839d84fde0";
 	private static String appSecret = "ede69db0303ddde49b5db95f186918ec";
+
+	@Resource
+	private WxMaService wxMaService;
 
 	@RequestMapping("/getAddress")
 	@ResponseBody
@@ -67,18 +79,36 @@
 	}
 
 	@ResponseBody
-	@RequestMapping("/getOpenId")
-	@ApiOperation(value = "获取微信的OpenId")
-	public R<Map<String, String>> getOpenId(String code) {
+	@PostMapping("/miniLogin")
+	@ApiOperation("小程序登录")
+	public R<AppMiniLoginVO> getMemberByCode(@RequestBody AppMiniLoginDTO appMiniLoginDto)
+	{
+		AppMiniLoginVO appMiniLoginVo = new AppMiniLoginVO();
+		WxMaJscode2SessionResult session = null;
+		String unionid;
+		String openid;
+		String sessionKey = null;
+		//获取session
 		try {
-			String openID = JsapiTicketUtil.getOpenId(code);
-			Map<String,String> data=new HashMap<>();
-			data.put("openID",openID);
-			return R.ok(data);
+			session = wxMaService.getUserService().getSessionInfo(appMiniLoginDto.getCode());
 		} catch (Exception e) {
 			e.printStackTrace();
+			return null;
 		}
-		return R.fail("获取异常");
+		if (session != null && StringUtils.isNotBlank(session.getOpenid())) {
+			unionid = session.getUnionid();
+			openid = session.getOpenid();
+			sessionKey = session.getSessionKey();
+
+			appMiniLoginVo.setMiniOpenid(openid);
+			appMiniLoginVo.setWxUnionid(unionid);
+			appMiniLoginVo.setSessionKey(sessionKey);
+		}
+
+		if(appMiniLoginVo ==null){
+			return R.fail("登录失败!");
+		}
+		return R.ok(appMiniLoginVo);
 	}
 
 	@ResponseBody
@@ -150,13 +180,15 @@
 		return R.fail("获取异常");
 	}
 
-	/**
+	*/
+/**
 	 * 获取微信用户信息
 	 * 
 	 * @param token
 	 * @param openid
 	 * @return
-	 */
+	 *//*
+
 	@ResponseBody
 	@RequestMapping("/getWXinfo")
 	@ApiOperation(value = "获取微信用户信息")
@@ -184,11 +216,14 @@
 	}
 	
 	
-	/**
+	*/
+/**
      * 小程序使用jscode获取openid
      * @param jscode
      * @return
      *//*
+*/
+/*
     public String code2Session(String jscode){
         String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appid + "&secret=" + appSecret
                 + "&js_code=" + jscode + "&grant_type=authorization_code";
@@ -208,16 +243,19 @@
             return jsonObject.getString("errmsg");
         }
         return null;
-    }*/
+    }*//*
 
-	/***
+
+	*/
+/***
 	 * 模拟get请求
 	 * 
 	 * @param url
 	 * @param charset
 	 * @param timeout
 	 * @return
-	 */
+	 *//*
+
 	public static String sendGet(String url, String charset, int timeout) {
 		String result = "";
 		try {
@@ -309,3 +347,4 @@
 		return null;
 	}
 }
+*/

--
Gitblit v1.7.1