From 533d26dae76cb5e54e84d6105f7aee42dcb9f76b Mon Sep 17 00:00:00 2001
From: CBin <497303054@qq.com>
Date: 星期三, 02 八月 2023 21:15:25 +0800
Subject: [PATCH] 接入微信支付
---
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 82 +++++++++++++++++++++++-----------------
1 files changed, 47 insertions(+), 35 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
index 8214742..e064b56 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java
@@ -1,16 +1,7 @@
package com.ruoyi.common.security.service;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-import javax.servlet.http.HttpServletRequest;
-
-import com.ruoyi.system.api.model.AppMiniLoginVo;
-import com.ruoyi.system.api.model.OauthUserVo;
-import com.ruoyi.system.api.model.QwH5LoginVo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
import com.ruoyi.common.core.constant.CacheConstants;
+import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.utils.JwtUtils;
import com.ruoyi.common.core.utils.ServletUtils;
@@ -19,7 +10,17 @@
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.system.api.model.AppMiniLoginVo;
import com.ruoyi.system.api.model.LoginUser;
+import com.ruoyi.system.api.model.OauthUserVo;
+import com.ruoyi.system.api.model.QwH5LoginVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
/**
* token验证处理
@@ -36,7 +37,7 @@
protected static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
- private final static long expireTime = CacheConstants.EXPIRATION;
+ private final static long EXPIRE_TIME = CacheConstants.EXPIRATION;
private final static String ACCESS_TOKEN = CacheConstants.LOGIN_TOKEN_KEY;
@@ -61,11 +62,11 @@
claimsMap.put(SecurityConstants.USER_KEY, token);
claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
-
+ claimsMap.put(SecurityConstants.LOGIN_FROM, Constants.FROM_STAFF);
// 接口返回信息
Map<String, Object> rspMap = new HashMap<String, Object>();
rspMap.put("access_token", JwtUtils.createToken(claimsMap));
- rspMap.put("expires_in", expireTime);
+ rspMap.put("expires_in", EXPIRE_TIME);
return rspMap;
}
@@ -75,32 +76,42 @@
public Map<String, Object> createMiniToken(AppMiniLoginVo appMiniLoginVo)
{
LoginUser loginUser = new LoginUser();
- loginUser.setSysUser(appMiniLoginVo.getSysUser());
- String token = IdUtils.fastUUID();
- Long userId = loginUser.getSysUser().getUserId();
- String userName = loginUser.getSysUser().getUserName();
- loginUser.setToken(token);
- loginUser.setUserid(userId);
- loginUser.setUsername(userName);
- loginUser.setIpaddr(IpUtils.getIpAddr());
- refreshToken(loginUser);
-
// Jwt存储信息
Map<String, Object> claimsMap = new HashMap<String, Object>();
- claimsMap.put(SecurityConstants.USER_KEY, token);
- claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
- claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
-
// 接口返回信息
Map<String, Object> rspMap = new HashMap<String, Object>();
- rspMap.put("access_token", JwtUtils.createToken(claimsMap));
- rspMap.put("expires_in", expireTime);
+ //用户为空只返回openid
+ rspMap.put("mobile","");
+ rspMap.put("access_token", "");
+ if(appMiniLoginVo.getSysUser()!=null){
+ loginUser.setSysUser(appMiniLoginVo.getSysUser());
+ String token = IdUtils.fastUUID();
+ Long userId = loginUser.getSysUser().getUserId();
+ String userName = loginUser.getSysUser().getUserName();
+ loginUser.setToken(token);
+ loginUser.setUserid(userId);
+ loginUser.setUsername(userName);
+ loginUser.setIpaddr(IpUtils.getIpAddr());
+ refreshToken(loginUser);
+ claimsMap.put(SecurityConstants.USER_KEY, token);
+ claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
+ claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
+ claimsMap.put(SecurityConstants.LOGIN_FROM, Constants.FROM_MINI_APP);
+ if(StringUtils.isNotBlank(appMiniLoginVo.getMobile())){
+ rspMap.put("mobile",appMiniLoginVo.getMobile() );
+ }else{
+ rspMap.put("mobile","");
+ }
+ rspMap.put("access_token", JwtUtils.createToken(claimsMap));
+ rspMap.put("expires_in", EXPIRE_TIME);
+ }
+ rspMap.put("wx_unionid", appMiniLoginVo.getWxUnionid());
rspMap.put("mini_openid", appMiniLoginVo.getMiniOpenid());
return rspMap;
}
/**
- * 创建小程序令牌
+ * 创建企业微信令牌
*/
public OauthUserVo createQwH5Token(QwH5LoginVo qwH5LoginVo)
{
@@ -120,11 +131,12 @@
claimsMap.put(SecurityConstants.USER_KEY, token);
claimsMap.put(SecurityConstants.DETAILS_USER_ID, userId);
claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName);
-
+ claimsMap.put(SecurityConstants.LOGIN_FROM, Constants.FROM_SHOP);
// 接口返回信息
OauthUserVo oauthUserVo = new OauthUserVo();
- oauthUserVo.setAccessToken(JwtUtils.createToken(claimsMap));
- oauthUserVo.setExpiresIn(expireTime);
+ oauthUserVo.setShopId(qwH5LoginVo.getShopId());
+ oauthUserVo.setToken(JwtUtils.createToken(claimsMap));
+ oauthUserVo.setExpiresIn(EXPIRE_TIME);
oauthUserVo.setUserid(qwH5LoginVo.getUserid());
oauthUserVo.setMobile(qwH5LoginVo.getMobile());
return oauthUserVo;
@@ -221,10 +233,10 @@
public void refreshToken(LoginUser loginUser)
{
loginUser.setLoginTime(System.currentTimeMillis());
- loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
+ loginUser.setExpireTime(loginUser.getLoginTime() + EXPIRE_TIME * MILLIS_MINUTE);
// 根据uuid将loginUser缓存
String userKey = getTokenKey(loginUser.getToken());
- redisService.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
+ redisService.setCacheObject(userKey, loginUser, EXPIRE_TIME, TimeUnit.MINUTES);
}
private String getTokenKey(String token)
--
Gitblit v1.7.1