/** * 获取微信 access_token */ WeChat.prototype.getAccessToken = function(){ var that = this; return new Promise(function(resolve,reject){ //获取当前时间 var currentTime = new Date().getTime(); //格式化请求地址 var url = util.format(that.apiURL.accessTokenApi,that.apiDomain,that.appID,that.appScrect); //判断 本地存储的 access_token 是否有效 if(accessTokenJson.access_token === "" || accessTokenJson.expires_time < currentTime){ that.requestGet(url).then(function(data){ var result = JSON.parse(data); if(data.indexOf("errcode") < 0){ accessTokenJson.access_token = result.access_token; accessTokenJson.expires_time = new Date().getTime() + (parseInt(result.expires_in) - 200) * 1000; //更新本地存储的 fs.writeFile('./wechat/access_token.json',JSON.stringify(accessTokenJson)); //将获取后的 access_token 返回 resolve(accessTokenJson.access_token); }else{ //将错误返回 resolve(result); } }); }else{ //将本地存储的 access_token 返回 resolve(accessTokenJson.access_token); } }); }
在 app.js 中添加新的监听链接用于测试 我们获取的token
//用于请求获取 access_token app.get('/getAccessToken',function(req,res){ wechatApp.getAccessToken().then(function(data){ res.send(data); }); });
这样我们就大功告成了!