Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
T
tianjin-cement
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
竹天卫
tianjin-cement
Commits
6a4acfae
Commit
6a4acfae
authored
Oct 23, 2020
by
qinhu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
扫一扫优化
parent
361fb455
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
146 additions
and
157 deletions
+146
-157
WeiXinController.java
.../wise/sc/cement/business/controller/WeiXinController.java
+10
-7
WeiXinService.java
...n/wise/sc/cement/business/service/impl/WeiXinService.java
+135
-150
Global.java
...n/java/cn/wise/sc/cement/business/util/weixin/Global.java
+1
-0
No files found.
cement-business/src/main/java/cn/wise/sc/cement/business/controller/WeiXinController.java
View file @
6a4acfae
package
cn
.
wise
.
sc
.
cement
.
business
.
controller
;
package
cn
.
wise
.
sc
.
cement
.
business
.
controller
;
import
cn.hutool.core.util.StrUtil
;
import
cn.wise.sc.cement.business.model.BaseResponse
;
import
cn.wise.sc.cement.business.model.BaseResponse
;
import
cn.wise.sc.cement.business.service.impl.WeiXinService
;
import
cn.wise.sc.cement.business.service.impl.WeiXinService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.security.MessageDigest
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.Date
;
import
java.util.Date
;
...
@@ -68,31 +71,31 @@ public class WeiXinController {
...
@@ -68,31 +71,31 @@ public class WeiXinController {
@ApiOperation
(
"获取jsapi_ticket"
)
@ApiOperation
(
"获取jsapi_ticket"
)
public
BaseResponse
<
Map
>
getAccessToken
()
{
public
BaseResponse
<
Map
>
getAccessToken
()
{
String
accessToken
=
weiXinService
.
getJsapiTicket
();
String
accessToken
=
weiXinService
.
getJsapiTicket
();
Map
<
String
,
String
>
rts
=
new
HashMap
<>(
4
);
Map
<
String
,
String
>
rts
=
new
HashMap
<>(
5
);
rts
.
put
(
"jsapi_ticket"
,
accessToken
);
rts
.
put
(
"jsapi_ticket"
,
accessToken
);
rts
.
put
(
"timestamp"
,
(
new
Date
()).
getTime
()
/
1000
+
""
);
rts
.
put
(
"timestamp"
,
(
new
Date
()).
getTime
()
/
1000
+
""
);
rts
.
put
(
"noncestr"
,
"Wm3WZYTPz0wzccnW"
);
rts
.
put
(
"noncestr"
,
"Wm3WZYTPz0wzccnW"
);
rts
.
put
(
"app_id"
,
"ww348f91b2573c1867"
);
rts
.
put
(
"app_id"
,
"ww348f91b2573c1867"
);
rts
.
put
(
"jsApiList"
,
"['scanQRCode']"
);
return
BaseResponse
.
okData
(
rts
);
return
BaseResponse
.
okData
(
rts
);
}
}
@GetMapping
(
"/signature"
)
@GetMapping
(
"/signature"
)
@ApiOperation
(
"获取accessToken"
)
@ApiOperation
(
"获取accessToken"
)
public
BaseResponse
<
String
>
signature
(
String
param
){
public
BaseResponse
<
String
>
signature
(
String
param
)
{
MessageDigest
md
;
MessageDigest
md
;
String
tmpStr
=
null
;
String
tmpStr
=
null
;
try
{
try
{
md
=
MessageDigest
.
getInstance
(
"SHA-1"
);
md
=
MessageDigest
.
getInstance
(
"SHA-1"
);
// 将三个参数字符串拼接成一个字符串进行sha1加密
byte
[]
digest
=
md
.
digest
(
param
.
getBytes
());
byte
[]
digest
=
md
.
digest
(
param
.
getBytes
());
tmpStr
=
byteToStr
(
digest
);
tmpStr
=
byteToStr
(
digest
);
}
catch
(
NoSuchAlgorithmException
e
)
{
}
catch
(
NoSuchAlgorithmException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
return
BaseResponse
.
okData
(
tmpStr
);
return
BaseResponse
.
okData
(
StrUtil
.
swapCase
(
tmpStr
)
);
}
}
/**
/**
* 将字节数组转换为十六进制字符串
* 将字节数组转换为十六进制字符串
*
*
...
@@ -114,7 +117,7 @@ public class WeiXinController {
...
@@ -114,7 +117,7 @@ public class WeiXinController {
* @return
* @return
*/
*/
private
static
String
byteToHexStr
(
byte
mByte
)
{
private
static
String
byteToHexStr
(
byte
mByte
)
{
char
[]
Digit
=
{
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
};
char
[]
Digit
=
{
'0'
,
'1'
,
'2'
,
'3'
,
'4'
,
'5'
,
'6'
,
'7'
,
'8'
,
'9'
,
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
};
char
[]
tempArr
=
new
char
[
2
];
char
[]
tempArr
=
new
char
[
2
];
tempArr
[
0
]
=
Digit
[(
mByte
>>>
4
)
&
0X0F
];
tempArr
[
0
]
=
Digit
[(
mByte
>>>
4
)
&
0X0F
];
tempArr
[
1
]
=
Digit
[
mByte
&
0X0F
];
tempArr
[
1
]
=
Digit
[
mByte
&
0X0F
];
...
...
cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/WeiXinService.java
View file @
6a4acfae
...
@@ -25,30 +25,34 @@ import java.util.Map;
...
@@ -25,30 +25,34 @@ import java.util.Map;
@Service
@Service
public
class
WeiXinService
{
public
class
WeiXinService
{
@Value
(
"${weixin.corpid}"
)
@Value
(
"${weixin.corpid}"
)
private
String
corpid
;
private
String
corpid
;
@Value
(
"${weixin.corpsecret}"
)
@Value
(
"${weixin.corpsecret}"
)
private
String
corpsecret
;
private
String
corpsecret
;
@Value
(
"${weixin.corpsecretPC}"
)
@Value
(
"${weixin.corpsecretPC}"
)
private
String
corpsecretPC
;
private
String
corpsecretPC
;
@Autowired
@Autowired
private
ISysUserService
userService
;
private
ISysUserService
userService
;
@Autowired
@Autowired
RedisUtil
redisUtil
;
RedisUtil
redisUtil
;
/**
final
static
String
ACCESS_TOKEN
=
"ACCESS_TOKEN"
;
* 获取登录token
final
static
String
JSAPITICKET
=
"JSAPITICKET"
;
* @param code
* @param type PC管理端 APP小程序端
/**
* @return
* 获取登录token
*/
*
public
BaseResponse
<
String
>
getToken
(
String
code
,
String
type
)
{
* @param code
if
(
StrUtil
.
isEmpty
(
code
))
{
* @param type PC管理端 APP小程序端
return
BaseResponse
.
errorMsg
(
"code为必填项!"
);
* @return
}
*/
System
.
out
.
println
(
"==================code==================="
);
public
BaseResponse
<
String
>
getToken
(
String
code
,
String
type
)
{
System
.
out
.
println
(
code
);
if
(
StrUtil
.
isEmpty
(
code
))
{
try
{
return
BaseResponse
.
errorMsg
(
"code为必填项!"
);
}
System
.
out
.
println
(
"==================code==================="
);
System
.
out
.
println
(
code
);
try
{
/*String accessToken = null;
/*String accessToken = null;
if(type.equals("PC")){
if(type.equals("PC")){
accessToken = getAccessToken();
accessToken = getAccessToken();
...
@@ -67,133 +71,114 @@ public class WeiXinService {
...
@@ -67,133 +71,114 @@ public class WeiXinService {
System.out.println("==================UserId===================");
System.out.println("==================UserId===================");
System.out.println(UserId);
System.out.println(UserId);
JSONObject userJson = getUser(accessToken, UserId);*/
JSONObject userJson = getUser(accessToken, UserId);*/
QueryWrapper
<
SysUser
>
wrapper
=
new
QueryWrapper
<>();
QueryWrapper
<
SysUser
>
wrapper
=
new
QueryWrapper
<>();
// wrapper.eq("phone", userJson.get("mobile"));
// wrapper.eq("phone", userJson.get("mobile"));
wrapper
.
eq
(
"phone"
,
code
);
//暂时用手机号代替code
wrapper
.
eq
(
"phone"
,
code
);
//暂时用手机号代替code
SysUser
sysUser
=
userService
.
getOne
(
wrapper
);
SysUser
sysUser
=
userService
.
getOne
(
wrapper
);
if
(
sysUser
==
null
){
if
(
sysUser
==
null
)
{
return
BaseResponse
.
errorMsg
(
"非系统用户不允许登录!"
);
return
BaseResponse
.
errorMsg
(
"非系统用户不允许登录!"
);
}
}
if
(
sysUser
.
getStatus
()==
0
){
if
(
sysUser
.
getStatus
()
==
0
)
{
return
BaseResponse
.
errorMsg
(
"用户被禁用!"
);
return
BaseResponse
.
errorMsg
(
"用户被禁用!"
);
}
}
if
(
sysUser
.
getIsDelete
()==
0
){
if
(
sysUser
.
getIsDelete
()
==
0
)
{
return
BaseResponse
.
errorMsg
(
"用户被删除!"
);
return
BaseResponse
.
errorMsg
(
"用户被删除!"
);
}
}
//生成token,存入redis
//生成token,存入redis
String
token
=
JwtUtil
.
createToken
(
sysUser
.
getId
(),
sysUser
.
getUsername
(),
String
token
=
JwtUtil
.
createToken
(
sysUser
.
getId
(),
sysUser
.
getUsername
(),
sysUser
.
getName
(),
sysUser
.
getPhone
());
sysUser
.
getName
(),
sysUser
.
getPhone
());
System
.
out
.
println
(
token
);
System
.
out
.
println
(
token
);
redisUtil
.
setString
(
sysUser
.
getId
().
toString
(),
token
,
3600
);
redisUtil
.
setString
(
sysUser
.
getId
().
toString
(),
token
,
3600
);
return
BaseResponse
.
okData
(
token
);
return
BaseResponse
.
okData
(
token
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
return
BaseResponse
.
errorMsg
(
e
.
getMessage
());
return
BaseResponse
.
errorMsg
(
e
.
getMessage
());
}
}
}
}
//获取accessToken信息
//获取accessToken信息
public
String
getAccessToken
()
{
public
String
getAccessToken
()
{
try
{
try
{
String
param
=
"corpid=%s&corpsecret=%s"
;
String
param
=
"corpid=%s&corpsecret=%s"
;
param
=
String
.
format
(
param
,
corpid
,
corpsecret
);
param
=
String
.
format
(
param
,
corpid
,
corpsecret
);
JSONObject
jsonObject
=
WeixinInterfaceUtil
.
doGet
(
Global
.
ACCESSTOKENURL
,
param
);
JSONObject
jsonObject
=
WeixinInterfaceUtil
.
doGet
(
Global
.
ACCESSTOKENURL
,
param
);
String
accessToken
=
jsonObject
.
getString
(
"access_token"
);
String
accessToken
=
jsonObject
.
getString
(
"access_token"
);
System
.
out
.
println
(
"==================accessToken==================="
);
System
.
out
.
println
(
"==================accessToken==================="
);
System
.
out
.
println
(
accessToken
);
System
.
out
.
println
(
accessToken
);
return
accessToken
;
return
accessToken
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
return
null
;
return
null
;
}
}
}
}
//获取accessToken信息
//获取accessToken信息
public
String
getJsapiTicket
()
{
public
String
getJsapiTicket
()
{
try
{
try
{
String
param
=
"corpid=%s&corpsecret=%s"
;
String
accessToken
;
param
=
String
.
format
(
param
,
corpid
,
corpsecret
);
String
jsapiTicket
;
JSONObject
jsonObject
=
WeixinInterfaceUtil
.
doGet
(
Global
.
ACCESSTOKENURL
,
param
);
if
(!
redisUtil
.
existsKey
(
ACCESS_TOKEN
))
{
String
accessToken
=
jsonObject
.
getString
(
"access_token"
);
String
param
=
"corpid=%s&corpsecret=%s"
;
System
.
out
.
println
(
"==================accessToken==================="
);
param
=
String
.
format
(
param
,
corpid
,
corpsecret
);
System
.
out
.
println
(
accessToken
);
JSONObject
jsonObject
=
WeixinInterfaceUtil
.
doGet
(
Global
.
ACCESSTOKENURL
,
param
);
String
param2
=
"access_token=%s&type=jsapi"
;
accessToken
=
jsonObject
.
getString
(
"access_token"
);
param2
=
String
.
format
(
param2
,
accessToken
);
redisUtil
.
setString
(
ACCESS_TOKEN
,
accessToken
,
7200
);
JSONObject
ticketJsonObject
=
WeixinInterfaceUtil
.
doGet
(
Global
.
ticket
,
param2
);
}
String
rts
=
ticketJsonObject
.
getString
(
"ticket"
);
accessToken
=
redisUtil
.
getString
(
ACCESS_TOKEN
)
+
""
;
System
.
out
.
println
(
"==================accessToken==================="
);
return
rts
;
System
.
out
.
println
(
accessToken
);
}
catch
(
Exception
e
)
{
return
null
;
if
(!
redisUtil
.
existsKey
(
JSAPITICKET
))
{
}
String
param3
=
"access_token=%s&type=agent_config"
;
}
param3
=
String
.
format
(
param3
,
accessToken
);
JSONObject
ticketJsonObject
=
WeixinInterfaceUtil
.
doGet
(
Global
.
userTicket
,
param3
);
public
String
getPCAccessToken
()
{
jsapiTicket
=
ticketJsonObject
.
getString
(
"ticket"
);
try
{
redisUtil
.
setString
(
JSAPITICKET
,
jsapiTicket
,
7200
);
String
param
=
"corpid=%s&corpsecret=%s"
;
}
param
=
String
.
format
(
param
,
corpid
,
corpsecretPC
);
JSONObject
jsonObject
=
WeixinInterfaceUtil
.
doGet
(
Global
.
ACCESSTOKENURL
,
param
);
jsapiTicket
=
redisUtil
.
getString
(
JSAPITICKET
)
+
""
;
String
accessToken
=
jsonObject
.
getString
(
"access_token"
);
return
jsapiTicket
;
System
.
out
.
println
(
"==================accessToken==================="
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
accessToken
);
return
null
;
return
accessToken
;
}
}
catch
(
Exception
e
)
{
}
return
null
;
}
public
String
getPCAccessToken
()
{
}
try
{
String
param
=
"corpid=%s&corpsecret=%s"
;
param
=
String
.
format
(
param
,
corpid
,
corpsecretPC
);
JSONObject
jsonObject
=
WeixinInterfaceUtil
.
doGet
(
Global
.
ACCESSTOKENURL
,
param
);
String
accessToken
=
jsonObject
.
getString
(
"access_token"
);
System
.
out
.
println
(
"==================accessToken==================="
);
System
.
out
.
println
(
accessToken
);
return
accessToken
;
}
catch
(
Exception
e
)
{
return
null
;
}
//获取用户信息
}
public
JSONObject
getUser
(
String
accessToken
,
String
userId
)
{
try
{
String
param
=
"access_token=%s&userid=%s"
;
//获取用户信息
param
=
String
.
format
(
param
,
accessToken
,
userId
);
public
JSONObject
getUser
(
String
accessToken
,
String
userId
)
{
JSONObject
jsonObject
=
WeixinInterfaceUtil
.
doGet
(
Global
.
USERURL
,
param
);
try
{
System
.
out
.
println
(
"==================jsonObject==================="
);
String
param
=
"access_token=%s&userid=%s"
;
System
.
out
.
println
(
jsonObject
);
param
=
String
.
format
(
param
,
accessToken
,
userId
);
return
jsonObject
;
JSONObject
jsonObject
=
WeixinInterfaceUtil
.
doGet
(
Global
.
USERURL
,
param
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"==================jsonObject==================="
);
return
null
;
System
.
out
.
println
(
jsonObject
);
}
return
jsonObject
;
}
}
catch
(
Exception
e
)
{
return
null
;
/**
}
* 当前登录用户
}
* @return
*/
/**
public
BaseResponse
<
LoginUser
>
getLoginUser
()
{
* 当前登录用户
LoginUser
loginUser
=
userService
.
getLoginUser
();
*
return
BaseResponse
.
okData
(
loginUser
);
* @return
}
*/
public
BaseResponse
<
LoginUser
>
getLoginUser
()
{
LoginUser
loginUser
=
userService
.
getLoginUser
();
return
BaseResponse
.
okData
(
loginUser
);
}
}
}
cement-business/src/main/java/cn/wise/sc/cement/business/util/weixin/Global.java
View file @
6a4acfae
...
@@ -32,6 +32,7 @@ public interface Global {
...
@@ -32,6 +32,7 @@ public interface Global {
public
static
final
String
ticket
=
"https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket"
;
public
static
final
String
ticket
=
"https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket"
;
public
static
final
String
userTicket
=
"https://qyapi.weixin.qq.com/cgi-bin/ticket/get"
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment