700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 微信小程序如何获取用户session_key openid unioni(code)

微信小程序如何获取用户session_key openid unioni(code)

时间:2018-05-14 14:43:26

相关推荐

微信小程序如何获取用户session_key openid unioni(code)

微信小程序|小程序开发

微信小程序

微信小程序-小程序开发

客服网站源码,怎么下载ubuntu软件,post爬虫原理动画,php1002php,SEO优化总监lzw

微信小程序中获取用户session_key,openid,unioni,这是小程序中经常可以看到的功能,那么如何实现小程序获取session_key,openid和unionid;本篇文章将给大家介绍关于后端为node.js的微信小程序获取用户session_key,openid,unionid的方法实现。

vivi源码下载,ubuntu 怎么桌面旋转,java 爬虫框架,php 导入php头部,广告代发seolzw

步骤:

se网站源码,vscode文字怎么居中,ubuntu 加行号,tomcat 配置大并发,solidworks爬虫,php敏感词库,苏州seo推广前景,新版图片 视频打赏网站源码,商城后台模板下载lzw

1、通过wx.login接口获取code既jscode,传递到后端;

2、后端请求

https://api./sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

地址,就能获取到openid和unionid。

小程序接口promise化和封装

1、utils文件夹下创建wechat.js文件

/** * Promise化小程序接口 */class Wechat { /** * 登陆 * @return {Promise} */ static login() { return new Promise((resolve, reject) => wx.login({ success: resolve, fail: reject })); }; /** * 获取用户信息 * @return {Promise} */ static getUserInfo() { return new Promise((resolve, reject) => wx.getUserInfo({ success: resolve, fail: reject })); }; /** * 发起网络请求 * @param {string} url* @param {object} params * @return {Promise} */ static request(url, params, method = "GET", type = "json") { console.log("向后端传递的参数", params); return new Promise((resolve, reject) => {let opts = { url: url, data: Object.assign({}, params), method: method, header: { Content-Type: type }, success: resolve, fail: reject}console.log("请求的URL", opts.url);wx.request(opts); }); }; /** * 获取微信数据,传递给后端 */ static getCryptoData() { let code = ""; return this.login().then(data => { code = data.code; console.log("login接口获取的code:", code); return this.getUserInfo();}).then(data => { console.log("getUserInfo接口", data); let obj = {js_code: code, }; return Promise.resolve(obj);}).catch(e => { console.log(e); return Promise.reject(e);}) }; /** * 从后端获取openid * @param {object} params */ static getMyOpenid(params) { let url = /api/openid; return this.request(url, params, "POST", "application/x-www-form-urlencoded"); };}module.exports = Wechat;

2、修改小程序的app.js文件

let wechat = require(./utils/wechat.js);App({ onLaunch() { this.getUserInfo(); }, getUserInfo() { wechat.getCryptoData().then(d => { return wechat.getMyOpenid(d);}).then(d => { console.log("从后端获取的openid", d.data);}).catch(e => { console.log(e);}) }})

后端nodejs,是用的express命令行生成的项目框架,

1、创建common文件夹,创建utils文件,使用request模块请求接口,promise化request

const request = require("request");class Ut { /*** promise化request* @param {object} opts* @return {Promise}*/ static promiseReq(opts = {}) {return new Promise((resolve, reject) => { request(opts, (e, r, d) => {if (e) { return reject(e);} if (r.statusCode != 200) { return reject(`back statusCode:${r.statusCode}`);}return resolve(d); });}) };};module.exports = Ut;

2、新增路由,appId、secret在小程序的后台获取

router.post("/openid", async (req, res) => { const Ut = require("../common/utils"); try { console.log(req.body); let appId = "wx70xxxxxxbed01b"; let secret = "5ec6exxxxxx49bf161a79dd4"; let { js_code } = req.body; let opts = {url: `https://api./sns/jscode2session?appid=${appId}&secret=${secret}&js_code=${js_code}&grant_type=authorization_code` } let r1 = await Ut.promiseReq(opts); r1 = JSON.parse(r1); console.log(r1); res.json(r1); } catch (e) { console.log(e); res.json(\); }})

结果:

这个返回结果没有unionid,按照官方的说法,需要在微信开放平台绑定小程序;

微信小程序如何获取用户的openid

小程序中如何获取参数openid & session_key的方法介绍

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。