解析nodejs微信开发-2获取ticket

本文介绍了一种用于微信JS-SDK的Ticket刷新流程,包括如何通过AppID和AppSecret获取AccessToken,进而请求jsapi_ticket的过程。文章详细解释了从获取AccessToken到生成Ticket并进行签名的具体步骤。

获取ticket是需要拼接url,url中需要获得的tocken

1、先判断有无tocken;若有则拼接url;

2、请求url;

a、处理回调数据,注意时间戳和签名处理方式,此两项并未存到ticket中,

b、存储回调数据,存储时将时间戳和签名存到ticket中;注意此两项并未存到数据库,而是在存储时动态生成的时间戳和签名,签名还有一个签名函数;

c、返回存储数据。

 1   function refreshTicket(appid, appsecret, page, ticket, res) {
 2     getToken(appid, appsecret, function (token, err) {
 3       if (err === null) {
 4         if (!_.isEmpty(token.access_token)) {
 5           // 获取 jsapi_ticket
 6           var ticket_url = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=' + token.access_token + '&type=jsapi';
 7 
 8           request.get(ticket_url, function (error, response, body) {
 9             var t = ticket === null ? new WeChatTicket() : ticket;
10             var data = JSON.parse(body);
11 
12             if(!data.ticket) res.json({error: response});
13             else {
14               t.appid = appid;
15               t.ticket = data.ticket;
16               t.noncestr = sha1(new Date());
17               t.expires_in = data.expires_in;
18               t.at = parseInt(new Date().getTime() / 1000);
19 
20               var timestamp = parseInt(new Date().getTime() / 1000);
21               var signature = wechatSignature(t, page, timestamp);
22 
23               t.save(function (err) {
24                 var json = t.toJSON();
25                 json.at = timestamp;
26                 json.signature = signature;
27                 res.json({ticket: json, error: err});
28               });
29             }
30           });
31         } else res.json({error: err});
32       } else res.json({error: err});
33     });
34   }
35 
36   /* 微信签名实现 */
37   function wechatSignature(t, page, timestamp) {
38     var string = "jsapi_ticket=" + t.ticket + "&noncestr=" + t.noncestr + "&timestamp=" + timestamp + "&url=" + page;
39     return sha1(string);
40   }

 

转载于:https://www.cnblogs.com/suoking/p/5106421.html

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值