• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > nodejs获取微信小程序带参数二维码实现代码

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

作者:兴xing0_0 字体:[增加 减小] 来源:互联网 时间:2017-05-11

兴xing0_0通过本文主要向大家介绍了小程序参数二维码,nodejs 桌面程序,小程序 nodejs,nodejs 获取参数,nodejs 命令行参数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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方法既可以创建二维码 
</div>

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-11angularjs中的$eval方法详解
  • 2017-05-11JavaScript使用原型和原型链实现对象继承的方法详解
  • 2017-05-11大白话讲解JavaScript的Promise
  • 2017-05-11微信小程序 image组件binderror使用例子与js中的onerror区别
  • 2017-05-11解决浏览器会自动填充密码的问题
  • 2017-05-11微信小程序侧边栏滑动特效(左右滑动)
  • 2017-05-11vue2 前后端分离项目ajax跨域session问题解决方法
  • 2017-05-11xmlplus组件设计系列之文本框(TextBox)(3)
  • 2017-05-11浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
  • 2017-05-11ECMAScript6 新特性范例大全

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Bootstrap 3 按钮标签实例代码
    • vue-resource 拦截器使用详解
    • 详解前端构建工具gulpjs的使用介绍及技巧
    • JS区分Object与Aarry的六种方法总结
    • 轻松学习Javascript闭包
    • new Date().getTime() 多8小时问题
    • 微信小程序(六):列表上拉加载下拉刷新示例
    • jQuery Mobile漏洞会有跨站脚本攻击风险
    • js实现九宫格的随机颜色跳转
    • 如何正确理解javascript的模块化

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有