nodejs获取微信小程序带参数二维码实现代码


Posted in NodeJs onApril 12, 2017

nodejs获取微信小程序带参数二维码实现代码

由于项目需求,需要获取小程序页面的带有参数的二维码。好,那就看文档搞吧。

之前都是写前端,没有写过后台的东西,这次难得有机会组长让我试一试试用node来写,那就写吧。

1、首页获取token,发送request请求,用get的方式,在url后面加上小程序的grant_type,appid,secret,就顺利拿到token了,注意,这个token是有有效时间的,小程序的是7200秒,也就是2个小时,每天获取的次数有限,需要有个中控服务器定时获取token,由于我的业务量小,就没有对token进行保存了,每次都是重新获取。

2、获取完token之后,再发送请求获取二维码,坑的是,微信没有告诉我们获取的是二进制流,之前一直是写前端的代码,对流没有概念,百度之,谷歌之,折腾了两天,终于搞定。还遇到了express的坑,用原来express的代码,死活生成不了二维码,新建一个express再生成二维码就没问题,莫名其妙的坑。

上代码:

var fs = require('fs'); 
var request = require('request'); 
var wx_conf = require('../../conf/wx_conf');//这里放了微信appid跟appSecret,文件没有引入进来,要用的时候,改一下吧。 
var AccessToken = { 
 grant_type: 'client_credential', 
 appid: wx_conf.appId, 
 secret: wx_conf.appSecret 
} 
var wx_gettoken_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=' + AccessToken.grant_type + '&appid=' + AccessToken.appid + '&secret=' + AccessToken.secret; 
//请求二维码的参数 
var postData = { 
 path: "pages/index/index", 
 width: 430 
} 
var createQrcode = { 
 create: function() { 
  console.log('fn:create'); 
  this.getToken(); 
 }, 
 //获取微信的token 
 getToken: function() { 
  console.log('fn:getToken'); 
  var that = this; 
  new Promise((resolve, reject) => { 
   console.log('进入Promise方法了'); 
   request({ 
    method: 'GET', 
    url: wx_gettoken_url 
   }, function(err, res, body) { 
    if (res) { 
     resolve({ 
      isSuccess: true, 
      data: JSON.parse(body) 
     }); 
    } else { 
     console.log (err); 
     reject({ 
      isSuccess: false, 
      data: err 
     }); 
    } 
   }) 
  }).then(proData => { 
   that.getQrcode(proData); 
  }); 
 }, 
 //生成二维码 
 getQrcode: function(proData) { 
  console.log ('fn:getQrcode'); 
  if (proData.isSuccess) { 
   postData = JSON.stringify(postData); 
   request({ 
    method: 'POST', 
    url: 'https://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode?access_token=' + proData.data.access_token, 
    body: postData 
   }).pipe(fs.createWriteStream('./public/images/index.png'));//路径自己定义吧 
  } else { 
   console.log('Promise请求数据出错'); 
  } 
 } 
} 
module.exports = createQrcode;//暴露对象,调用create方法既可以创建二维码

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

NodeJs 相关文章推荐
NodeJs中的非阻塞方法介绍
Jun 05 NodeJs
NodeJS Express框架中处理404页面一个方式
May 28 NodeJs
Nodejs进程管理模块forever详解
Jun 01 NodeJs
基于 Docker 开发 NodeJS 应用
Jul 30 NodeJs
Nodejs express框架一个工程中同时使用ejs模版和jade模版
Dec 28 NodeJs
nodejs处理图片的中间件node-images详解
May 08 NodeJs
详解nodeJS之路径PATH模块
May 31 NodeJs
nodejs接入阿里大鱼短信验证码的方法
Jul 10 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 NodeJs
nodejs 生成和导出 word的实例代码
Jul 31 NodeJs
nodejs各种姿势断点调试的方法
Jun 18 NodeJs
详解nodejs微信公众号开发——5.素材管理接口
Apr 11 #NodeJs
详解nodejs微信公众号开发——4.自动回复各种消息
Apr 11 #NodeJs
nodejs连接mysql数据库简单封装示例-mysql模块
Apr 10 #NodeJs
详解nodejs操作mongodb数据库封装DB类
Apr 10 #NodeJs
详解nodejs微信公众号开发——3.封装消息响应模块
Apr 10 #NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 #NodeJs
详解nodejs微信公众号开发——1.接入微信公众号
Apr 10 #NodeJs
You might like
咖啡的种类和口感
2021/03/03 新手入门
PHP 常见郁闷问题答解
2006/11/25 PHP
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
python Django连接MySQL数据库做增删改查
2013/11/07 Python
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
python使用arp欺骗伪造网关的方法
2015/04/24 Python
Django数据库表反向生成实例解析
2018/02/06 Python
Python将多个list合并为1个list的方法
2018/06/27 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
python json.dumps() json.dump()的区别详解
2020/07/14 Python
python dict如何定义
2020/09/02 Python
Python try except finally资源回收的实现
2021/01/25 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
售后服务科岗位职责范文
2013/11/13 职场文书
单位人事专员介绍信
2014/01/11 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
保护环境建议书300字
2014/05/13 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
综合测评个人总结
2015/03/03 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
离婚协议书格式范本
2016/03/18 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL
golang中的struct操作
2021/11/11 Golang