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
661803d9
Commit
661803d9
authored
Feb 19, 2020
by
宋毅
Browse files
Options
Browse Files
Download
Plain Diff
git diffMerge branch 'center-channel' of gitlab.gongsibao.com:jiangyong/zhichan into center-channel
git push
parents
58d7f144
f4f8777d
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
249 additions
and
1 deletions
+249
-1
center-channel/app/base/api/impl/action/policy.js
+3
-0
center-channel/app/base/db/cache/wxJsapiTicketCache.js
+44
-0
center-channel/app/base/db/cache/wxTokenCache.js
+46
-0
center-channel/app/base/service/impl/common/wxTokenSve.js
+46
-0
center-channel/app/base/service/impl/policy/policySve.js
+74
-0
center-channel/app/front/entry/public/apidoc/MP_verify_XVbgFfycDESIY1Jb.txt
+2
-0
center-channel/app/front/entry/public/apidoc/platform/policy.md
+34
-1
No files found.
center-channel/app/base/api/impl/action/policy.js
View file @
661803d9
...
...
@@ -40,6 +40,9 @@ class PolicyAPI extends APIBase {
case
"submitPolicyNeedNotes"
:
//申请信息备注提交
opResult
=
this
.
policySve
.
submitPolicyNeedNotes
(
pobj
);
break
;
case
"getWxSign"
:
//获取微信签名信息
opResult
=
this
.
policySve
.
getWxSign
(
action_body
.
url
);
break
;
default
:
opResult
=
system
.
getResult
(
null
,
"action_type参数错误"
);
break
;
...
...
center-channel/app/base/db/cache/wxJsapiTicketCache.js
0 → 100644
View file @
661803d9
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/db/cache/wxTokenCache.js
0 → 100644
View file @
661803d9
const
CacheBase
=
require
(
"../cache.base"
);
const
system
=
require
(
"../../system"
);
// const OpenplatformWxop = require("../../wxop/impl/openplatformWxop");
/**
* 微信开放平台 公众号或小程序的接口调用凭据(授权方令牌)缓存(2小时后失效)
*/
class
WxTokenCache
extends
CacheBase
{
constructor
(){
super
();
this
.
prefix
=
"wx_toekn_wx8aa8a8d4ff3da8bd"
;
this
.
restClient
=
system
.
getObject
(
"util.restClient"
);
this
.
wxTokenSve
=
system
.
getObject
(
"service.common.wxTokenSve"
);
}
desc
()
{
return
"应用UI配置缓存"
;
}
prefix
()
{
return
"wx_toekn_wx8aa8a8d4ff3da8bd"
;
}
async
get
(){
//公众号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
.
getToken
();
console
.
log
(
newobj
);
if
(
newobj
&&
newobj
.
access_token
){
var
newobjstring
=
JSON
.
stringify
(
newobj
);
// await this.redisClient.set(key,newobjstring);
// this.redisClient.client.expire(key, 7000);
await
this
.
redisClient
.
setWithEx
(
key
,
newobjstring
,
7000
);
return
newobj
;
}
else
{
return
null
;
}
}
return
obj
;
}
}
module
.
exports
=
WxTokenCache
;
\ No newline at end of file
center-channel/app/base/service/impl/common/wxTokenSve.js
0 → 100644
View file @
661803d9
const
system
=
require
(
"../../../system"
);
var
settings
=
require
(
"../../../../config/settings"
);
/**
* 微信token
* zhuangbing
* 2020.02.17
*/
class
WxTokenService
{
constructor
(){
this
.
rc
=
system
.
getObject
(
"util.execClient"
);
}
/**
* 获取微信access_token
* 返回结果:
* component_access_token 第三方平台access_token
* expires_in 有效期
*/
async
getToken
(){
try
{
var
url
=
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx8aa8a8d4ff3da8bd&secret=5b64d43832cfd08327e9369aa455f799"
;
var
rtn
=
await
this
.
rc
.
execGet
({},
url
);
console
.
log
(
rtn
);
var
result
=
JSON
.
parse
(
rtn
.
stdout
);
return
result
;
}
catch
(
e
){
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
;
\ No newline at end of file
center-channel/app/base/service/impl/policy/policySve.js
View file @
661803d9
const
system
=
require
(
"../../../system"
);
const
crypto
=
require
(
'crypto'
);
var
settings
=
require
(
"../../../../config/settings"
);
class
PolicyService
{
constructor
()
{
this
.
centerOrderUrl
=
settings
.
centerOrderUrl
();
this
.
execClient
=
system
.
getObject
(
"util.execClient"
);
this
.
cacheManager
=
system
.
getObject
(
"db.common.cacheManager"
);
};
// sha1加密
sha1
(
str
)
{
let
shasum
=
crypto
.
createHash
(
"sha1"
)
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
);
}
}
async
policyQuery
(
pobj
)
{
var
url
=
this
.
centerOrderUrl
+
"action/policy/springBoard"
;
var
rtn
=
await
this
.
execClient
.
execPost
(
pobj
,
url
);
...
...
center-channel/app/front/entry/public/apidoc/MP_verify_XVbgFfycDESIY1Jb.txt
0 → 100644
View file @
661803d9
XVbgFfycDESIY1Jb
\ No newline at end of file
center-channel/app/front/entry/public/apidoc/platform/policy.md
View file @
661803d9
...
...
@@ -4,6 +4,7 @@
1.
[
政策申请提报
](
#submitPolicyNeed
)
1.
[
政策需求列表
](
#getPolicyNeedList
)
1.
[
需求信息备注提交
](
#submitPolicyNeedNotes
)
1.
[
获取微信签名信息
](
#getWxSign
)
## **<a name="policyQuery"> 政策检索(H5)</a>**
[
返回到目录
](
#menu
)
...
...
@@ -154,7 +155,6 @@
"requestId"
:
"de04d31de8114cc78b5257c59ea31355"
}
```
## **<a name="submitPolicyNeedNotes"> 需求信息备注提交(后台页面)</a>**
[
返回到目录
](
#menu
)
##### URL
...
...
@@ -183,4 +183,37 @@
"requestId"
:
"0a4483b9b7ca4594b1bfc487d49746d2"
}
```
## **<a name="getWxSign"> 获取微信签名信息</a>**
[
返回到目录
](
#menu
)
##### URL
[
/web/action/policy/springBoard
]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 渠道执行的类型 actionType:getWxSign
```
javascript
{
"actionType"
:
"getWxSign"
,
"actionBody"
:
{
"url"
:
"http://gsb.qifu.gongsibao.com/"
//当前网页的URL,不包含#及其后面部分
}
}
```
#### 返回结果
```
javascript
{
"status"
:
0
,
"msg"
:
"success"
,
"data"
:{
"jsapi_ticket"
:
"sM4AOVdWfPE4DxkXGEs8VJK3-61YVvRLBqI-KWT682YNCdxlqHtAFxuoVHbOtb_ZoLalzqMy0jD835ajBCINAw"
,
"nonceStr"
:
"zhengcepolicy"
,
"timestamp"
:
1582012108
,
"url"
:
"http://gsb.qifu.gongsibao.com/"
,
"signature"
:
"269a120c2e47e6b324601fb6df40f932902d0ae7"
,
"appId"
:
"wx8aa8a8d4ff3da8bd"
},
"requestId"
:
"5dc78d501b6d42c2af0f157cb1cceb28"
}
```
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