Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
dd_school
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wangqi
dd_school
Commits
b5cb477a
Commit
b5cb477a
authored
Aug 28, 2023
by
wangqi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
微信扫一扫
parent
b9304007
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
59 additions
and
30 deletions
+59
-30
smart-campus/src/main/java/yangtz/cs/liu/wechat/controller/api/WxApiController.java
+59
-30
No files found.
smart-campus/src/main/java/yangtz/cs/liu/wechat/controller/api/WxApiController.java
View file @
b5cb477a
...
@@ -11,6 +11,10 @@ import com.ruoyi.common.core.redis.RedisCache;
...
@@ -11,6 +11,10 @@ import com.ruoyi.common.core.redis.RedisCache;
import
com.ruoyi.common.exception.ServiceException
;
import
com.ruoyi.common.exception.ServiceException
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.StringUtils
;
import
com.ruoyi.common.utils.http.HttpUtils
;
import
com.ruoyi.common.utils.http.HttpUtils
;
import
java.io.UnsupportedEncodingException
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -318,10 +322,9 @@ public class WxApiController extends BaseController {
...
@@ -318,10 +322,9 @@ public class WxApiController extends BaseController {
@GetMapping
(
"/getsignature"
)
@GetMapping
(
"/getsignature"
)
@ResponseBody
@ResponseBody
public
AjaxResult
getsignature
(
String
url
)
throws
Exception
{
public
AjaxResult
getsignature
(
String
url
)
throws
Exception
{
Map
<
String
,
String
>
map
=
new
HashMap
<
String
,
String
>();
//获取accesToken
//获取accesToken
String
token
=
accessTokenUtil
.
getToken
();
String
token
=
accessTokenUtil
.
getToken
();
//获取jsapi_ticket
//获取jsapi_ticket
String
ticket
=
null
;
String
ticket
=
null
;
//ticket = redisCache.getCacheObject("ticket");
//ticket = redisCache.getCacheObject("ticket");
if
(
StringUtils
.
isEmpty
(
ticket
)){
if
(
StringUtils
.
isEmpty
(
ticket
)){
...
@@ -332,30 +335,42 @@ public class WxApiController extends BaseController {
...
@@ -332,30 +335,42 @@ public class WxApiController extends BaseController {
ticket
=
jsonObject
.
get
(
"ticket"
).
toString
();
ticket
=
jsonObject
.
get
(
"ticket"
).
toString
();
// redisCache.setCacheObject("ticket", ticket, 5, TimeUnit.MINUTES);
// redisCache.setCacheObject("ticket", ticket, 5, TimeUnit.MINUTES);
}
}
//生成JS-SDK权限验证的签名
//生成JS-SDK权限验证的签名
//1.生成随机字符串
String
noncester
=
create_nonce_str
();
String
uuid
=
UUID
.
randomUUID
().
toString
();
String
timestamp
=
create_timestamp
();
//去掉“-”符号
String
string1
;
String
noncester
=
uuid
.
replaceAll
(
"-"
,
""
);
String
signature
=
""
;
//2获取时间戳
//3.
long
timestamp
=
System
.
currentTimeMillis
()/
1000
;
//注意这里参数名必须全部小写,且必须有序
//3.
string1
=
"jsapi_ticket="
+
ticket
+
Map
<
String
,
String
>
maps
=
new
TreeMap
<
String
,
String
>();
"&noncestr="
+
noncester
+
maps
.
put
(
"noncestr"
,
noncester
);
"×tamp="
+
timestamp
+
maps
.
put
(
"jsapi_ticket"
,
ticket
);
"&url="
+
url
;
maps
.
put
(
"timestamp"
,
String
.
valueOf
(
timestamp
));
System
.
out
.
println
(
string1
);
maps
.
put
(
"url"
,
url
);
log
.
info
(
string1
);
String
createLinkString
=
createLinkString
(
maps
);
try
log
.
info
(
createLinkString
);
{
//sha1签名,得到signature
MessageDigest
crypt
=
MessageDigest
.
getInstance
(
"SHA-1"
);
String
signature
=
Sha1Util
.
sha12
(
createLinkString
);
crypt
.
reset
();
map
.
put
(
"noncestr"
,
noncester
);
crypt
.
update
(
string1
.
getBytes
(
"UTF-8"
));
map
.
put
(
"jsapi_ticket"
,
ticket
);
signature
=
byteToHex
(
crypt
.
digest
());
map
.
put
(
"timestamp"
,
String
.
valueOf
(
timestamp
));
}
map
.
put
(
"url"
,
url
);
catch
(
NoSuchAlgorithmException
e
)
map
.
put
(
"signature"
,
signature
);
{
map
.
put
(
"cstoken"
,
token
);
e
.
printStackTrace
();
return
AjaxResult
.
success
(
map
);
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
Map
<
String
,
String
>
map
=
new
HashMap
<
String
,
String
>();
map
.
put
(
"noncestr"
,
noncester
);
map
.
put
(
"jsapi_ticket"
,
ticket
);
map
.
put
(
"timestamp"
,
timestamp
);
map
.
put
(
"url"
,
url
);
map
.
put
(
"signature"
,
signature
);
map
.
put
(
"cstoken"
,
token
);
return
AjaxResult
.
success
(
map
);
}
}
...
@@ -379,8 +394,22 @@ public class WxApiController extends BaseController {
...
@@ -379,8 +394,22 @@ public class WxApiController extends BaseController {
}
}
return
prestr
;
return
prestr
;
}
}
private
static
String
create_nonce_str
()
{
return
UUID
.
randomUUID
().
toString
();
}
private
static
String
create_timestamp
()
{
return
Long
.
toString
(
System
.
currentTimeMillis
()
/
1000
);
}
private
static
String
byteToHex
(
final
byte
[]
hash
)
{
Formatter
formatter
=
new
Formatter
();
for
(
byte
b
:
hash
)
{
formatter
.
format
(
"%02x"
,
b
);
}
String
result
=
formatter
.
toString
();
formatter
.
close
();
return
result
;
}
/**
/**
...
...
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