Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Z
zhichan
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
蒋勇
zhichan
Commits
18bab57a
Commit
18bab57a
authored
Feb 18, 2020
by
庄冰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wxsign
parent
eb42dcc8
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
132 additions
and
7 deletions
+132
-7
center-channel/app/base/api/impl/action/policy.js
+2
-2
center-channel/app/base/db/cache/wxJsapiTicketCache.js
+44
-0
center-channel/app/base/service/impl/common/wxTokenSve.js
+15
-0
center-channel/app/base/service/impl/policy/policySve.js
+71
-5
No files found.
center-channel/app/base/api/impl/action/policy.js
View file @
18bab57a
...
@@ -40,8 +40,8 @@ class PolicyAPI extends APIBase {
...
@@ -40,8 +40,8 @@ class PolicyAPI extends APIBase {
case
"submitPolicyNeedNotes"
:
//申请信息备注提交
case
"submitPolicyNeedNotes"
:
//申请信息备注提交
opResult
=
this
.
policySve
.
submitPolicyNeedNotes
(
pobj
);
opResult
=
this
.
policySve
.
submitPolicyNeedNotes
(
pobj
);
break
;
break
;
case
"getWx
Token"
:
//申请信息备注提交
case
"getWx
Sign"
:
//获取微信签名信息
opResult
=
this
.
policySve
.
getWx
Token
(
);
opResult
=
this
.
policySve
.
getWx
Sign
(
action_body
.
url
);
break
;
break
;
default
:
default
:
opResult
=
system
.
getResult
(
null
,
"action_type参数错误"
);
opResult
=
system
.
getResult
(
null
,
"action_type参数错误"
);
...
...
center-channel/app/base/db/cache/wxJsapiTicketCache.js
0 → 100644
View file @
18bab57a
const
CacheBase
=
require
(
"../cache.base"
);
const
system
=
require
(
"../../system"
);
// const OpenplatformWxop = require("../../wxop/impl/openplatformWxop");
/**
* 微信开放平台 公众号或小程序的接口调用凭据(授权方令牌)缓存(2小时后失效)
*/
class
WxJsapiTicketCache
extends
CacheBase
{
constructor
(){
super
();
this
.
prefix
=
"wx_ticket_wx8aa8a8d4ff3da8bd"
;
this
.
restClient
=
system
.
getObject
(
"util.restClient"
);
this
.
wxTokenSve
=
system
.
getObject
(
"service.common.wxTokenSve"
);
}
desc
()
{
return
"应用UI配置缓存"
;
}
prefix
()
{
return
"wx_ticket_wx8aa8a8d4ff3da8bd"
;
}
async
get
(
access_token
){
//公众号appid
var
key
=
this
.
prefix
;
var
result
=
await
this
.
redisClient
.
get
(
key
);
var
obj
=
null
;
if
(
result
){
console
.
log
(
result
,
"缓存中获取token+++++++++++++++++++++++"
);
obj
=
JSON
.
parse
(
result
);
}
if
(
!
obj
){
//无缓存
var
newobj
=
await
this
.
wxTokenSve
.
getJsapiTicket
(
access_token
);
console
.
log
(
newobj
);
if
(
newobj
){
var
newobjstring
=
JSON
.
stringify
(
newobj
);
await
this
.
redisClient
.
setWithEx
(
key
,
newobjstring
,
7000
);
return
newobj
;
}
else
{
return
null
;
}
}
return
obj
;
}
}
module
.
exports
=
WxJsapiTicketCache
;
\ No newline at end of file
center-channel/app/base/service/impl/common/wxTokenSve.js
View file @
18bab57a
...
@@ -26,6 +26,20 @@ class WxTokenService{
...
@@ -26,6 +26,20 @@ class WxTokenService{
return
null
;
return
null
;
}
}
}
}
/**
* 获取微信getJsapiTicket
*/
async
getJsapiTicket
(
access_token
){
try
{
var
url
=
"https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="
+
access_token
+
"&type=jsapi"
;
var
rtn
=
await
this
.
rc
.
execGet
({},
url
);
console
.
log
(
rtn
);
var
result
=
JSON
.
parse
(
rtn
.
stdout
);
return
result
;
}
catch
(
e
){
return
null
;
}
}
}
}
module
.
exports
=
WxTokenService
;
module
.
exports
=
WxTokenService
;
\ No newline at end of file
center-channel/app/base/service/impl/policy/policySve.js
View file @
18bab57a
const
system
=
require
(
"../../../system"
);
const
system
=
require
(
"../../../system"
);
const
crypto
=
require
(
'crypto'
);
var
settings
=
require
(
"../../../../config/settings"
);
var
settings
=
require
(
"../../../../config/settings"
);
class
PolicyService
{
class
PolicyService
{
constructor
()
{
constructor
()
{
...
@@ -6,12 +7,77 @@ class PolicyService{
...
@@ -6,12 +7,77 @@ class PolicyService{
this
.
execClient
=
system
.
getObject
(
"util.execClient"
);
this
.
execClient
=
system
.
getObject
(
"util.execClient"
);
this
.
cacheManager
=
system
.
getObject
(
"db.common.cacheManager"
);
this
.
cacheManager
=
system
.
getObject
(
"db.common.cacheManager"
);
};
};
async
getWxToken
(){
// sha1加密
var
data
=
await
this
.
cacheManager
[
"WxTokenCache"
].
get
();
sha1
(
str
)
{
if
(
data
){
let
shasum
=
crypto
.
createHash
(
"sha1"
)
return
system
.
getResultSuccess
(
data
);
shasum
.
update
(
str
)
str
=
shasum
.
digest
(
"hex"
)
return
str
}
/**
* 生成签名的时间戳
* @return {字符串}
*/
createTimestamp
()
{
return
parseInt
(
new
Date
().
getTime
()
/
1000
)
+
''
}
/**
* 生成签名的随机串
* @return {字符串}
*/
createNonceStr
()
{
return
Math
.
random
().
toString
(
36
).
substr
(
2
,
15
)
}
/**
* 对参数对象进行字典排序
* @param {对象} args 签名所需参数对象
* @return {字符串} 排序后生成字符串
*/
raw
(
args
)
{
var
keys
=
Object
.
keys
(
args
)
keys
=
keys
.
sort
()
var
newArgs
=
{}
keys
.
forEach
(
function
(
key
)
{
newArgs
[
key
.
toLowerCase
()]
=
args
[
key
]
})
var
string
=
''
for
(
var
k
in
newArgs
)
{
string
+=
'&'
+
k
+
'='
+
newArgs
[
k
]
}
string
=
string
.
substr
(
1
)
return
string
}
async
getWxSign
(
url
){
try
{
if
(
!
url
){
return
system
.
getResult
(
"url不能为空"
);
}
var
tokenRes
=
await
this
.
cacheManager
[
"WxTokenCache"
].
get
();
if
(
tokenRes
&&
tokenRes
.
access_token
){
var
ticketRes
=
await
this
.
cacheManager
[
"WxJsapiTicketCache"
].
get
(
tokenRes
.
access_token
);
if
(
ticketRes
&&
ticketRes
.
ticket
){
var
ret
=
{
jsapi_ticket
:
ticketRes
.
ticket
,
nonceStr
:
"zhengcepolicy"
,
timestamp
:
parseInt
(
new
Date
().
getTime
()
/
1000
),
url
:
url
};
var
string
=
this
.
raw
(
ret
)
ret
.
signature
=
this
.
sha1
(
string
)
ret
.
appId
=
"wx8aa8a8d4ff3da8bd"
;
console
.
log
(
'ret'
,
ret
)
return
system
.
getResultSuccess
(
ret
);
}
}
return
system
.
getResult
(
"获取微信配置参数失败"
);
}
catch
(
e
)
{
return
system
.
getResult
(
e
.
stack
);
}
}
return
system
.
getResult
();
}
}
async
policyQuery
(
pobj
)
{
async
policyQuery
(
pobj
)
{
var
url
=
this
.
centerOrderUrl
+
"action/policy/springBoard"
;
var
url
=
this
.
centerOrderUrl
+
"action/policy/springBoard"
;
...
...
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