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异步编程
Dec 04 NodeJs
详解nodejs与javascript中的aes加密
May 22 NodeJs
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
Jul 26 NodeJs
nodejs的HTML分析利器node-jquery用法浅析
Nov 08 NodeJs
详解nodejs 文本操作模块-fs模块(五)
Dec 23 NodeJs
Nodejs高扩展性的模板引擎 functmpl简介
Feb 13 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
NodeJS实现同步的方法
Mar 02 NodeJs
NodeJs生成sitemap站点地图的方法示例
Jun 11 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 NodeJs
nodeJs的安装与npm全局环境变量的配置详解
Jan 06 NodeJs
在nodejs中创建child process的方法
Jan 26 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
PHP中实现图片的锐化
2006/10/09 PHP
phpBB BBcode处理的漏洞
2006/10/09 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
php实现批量上传数据到数据库(.csv格式)的案例
2017/06/18 PHP
htm调用JS代码
2007/03/15 Javascript
二行代码解决全部网页木马
2008/03/28 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
在JS中如何调用JSP中的变量
2014/01/22 Javascript
js实现点击文本框显示日期选择器特效代码分享
2020/05/21 Javascript
BootstrapTable refresh 方法使用实例简单介绍
2017/02/20 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
js回调函数仿360开机
2019/12/26 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
Python基于有道实现英汉字典功能
2015/07/25 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
Python格式化输出%s和%d
2018/05/07 Python
python 识别图片中的文字信息方法
2018/05/10 Python
解决python报错MemoryError的问题
2018/06/26 Python
使用python实现画AR模型时序图
2019/11/20 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
2020/05/26 Python
Python flask框架端口失效解决方案
2020/06/04 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
自荐书封面下载
2013/11/29 职场文书
自我推荐书
2013/12/04 职场文书
酒店财务经理岗位职责
2015/04/08 职场文书
责任书范本大全
2015/05/11 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
干货:如何写好工作计划!
2019/05/17 职场文书
Python制作动态字符画的源码
2021/08/04 Python
win11无法登录onedrive错误代码0x8004def7怎么办 ?
2022/04/05 数码科技