提交 bae6aa79 authored 作者: hexi's avatar hexi

增加微信分享接口

上级 fbd22a41
......@@ -31,6 +31,7 @@
"body-parser": "^1.18.3",
"child_process": "^1.0.2",
"express": "^4.16.4",
"multer": "^1.4.1"
"multer": "^1.4.1",
"sha1": "^1.1.1"
}
}
// 这个接口页面,主要处理微信相关的接口
const _request= require('request');
const sha1 = require('sha1');
const _config = {
"weixinsecret":{
"wxd6109d07f6396e5c": "d80a330735fc82f3fd6aba425481e8fd",
"wxe1849e28e176c67b": "90072420a6b6941b7b8af38afd019b9f"
}
};
let share_json = {
jsapi_ticket:'', //上一步获取的 ticket
noncestr:'', //随机字符串
timestamp: '' //事件戳
};
//获取token
function getsignature(req,res){
let access_token_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential';
let jsapi_ticket_url = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=';
let get_access_token_url = access_token_url + '&appid=' + req.body.appId + '&secret=' + _config.weixinsecret[req.body.appId];
new Promise((resolve, reject) => {
return _request.get(get_access_token_url, function (error, response, body) {
return error ? reject(error) : resolve(body);
})
}).then(function(newResult){
let url = jsapi_ticket_url+JSON.parse(newResult).access_token;
// 获取 ticket
return new Promise((resolve, reject) => {
_request.get(url, function (err, rs, body) {
share_json.jsapi_ticket = JSON.parse(body).ticket;
share_json.noncestr = Math.random().toString(36).substr(2, 15); //随机字符串
share_json.timestamp = parseInt(new Date().getTime() / 1000) + ''; //事件戳
let str1 = 'jsapi_ticket='+share_json.jsapi_ticket + '&noncestr=' + share_json.noncestr +'&timestamp=' + share_json.timestamp + '&url=' + req.headers.referer;
let token = sha1(str1);
return err ? reject(err) : res.send({
token: token, //上一步获取的 ticket
noncestr: share_json.noncestr, //随机字符串
timestamp: share_json.timestamp,
});
})
})
})
.catch(function(e){
console.log('有错误');
});
}
// 获取token后分享
const wxGetsignature = function(req, res) {
getsignature(req,res);
};
// 微信分享
const wxShare = function (req,res) {
if(share_json.jsapi_ticket){
let str1 = 'jsapi_ticket='+share_json.jsapi_ticket + '&noncestr=' + share_json.noncestr +'&timestamp=' + share_json.timestamp + '&url=' + req.headers.referer;
let token = sha1(str1);
return res.send({
token: token, //上一步获取的 ticket
noncestr: share_json.noncestr, //随机字符串
timestamp: share_json.timestamp, //
})
}else{
getsignature(req,res)
}
};
module.exports = {
wxGetsignature,
wxShare
}
......@@ -6,6 +6,7 @@ const multer = require('multer')
const upload = multer({ dest: 'upload_tmp/' })
const _test = require('../controller/TestMonitor')
const _wx = require('../controller/WxMonitor')
router.use(bodyParser.json({ limit: '60mb' }))
router.use(bodyParser.urlencoded({ extended: true, limit: '60mb' }))
......@@ -14,4 +15,14 @@ router.post('/api/test', upload.any(), _test.isRun)
router.use('/api/*', upload.any(), (req, res) => { res.send('暂无该接口') })
// 重新获取token 在分享
router.post('/share/getsignature', function(req, res) {
_wx.wxGetsignature(req,res)
});
// 微信分享
router.post('/share/token',function(req,res) {
_wx.wxShare(req, res);
});
module.exports = router
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论