麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > 小程序 > 正文

詳解微信小程序-獲取用戶session_key,openid,unionid - 后端為nodejs

2020-03-21 15:58:52
字體:
來源:轉載
供稿:網友

微信小程序-獲取用戶session_key,openid,unionid - 后端為nodejs8.0+

步驟:

1、通過wx.login接口獲取code既jscode,傳遞到后端;

2、后端請求

https://api.weixin.qq.com/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 = 'https://xx.xxxxxx.cn/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.weixin.qq.com/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(''); }})

結果:

微信小程序,session_key,openid,unionid,nodejs

這個返回結果沒有unionid,按照官方的說法,需要在微信開放平臺綁定小程序;

參考地址:

https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html

https://mp.weixin.qq.com/debug/wxadoc/dev/api/uinionID.html

以上所述是小編給大家介紹的微信小程序獲取session_key,openid,unionid的方法詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: av在线看网站 | 免费在线观看国产 | 日本成人一区二区 | 麻豆19禁国产青草精品 | av中文在线观看 | 国产精品成人亚洲一区二区 | 中文字幕专区高清在线观看 | 国产在线播放91 | 黄网在线 | 在线成人一区二区 | 黄色片网站免费在线观看 | 91成人免费视频 | 日韩欧美电影一区二区三区 | 视频一区二区三区免费观看 | 九九色网站 | 久久精品视频7 | 在线中文资源免费 | 成人福利视频网站 | 91精品国产综合久久久欧美 | 精品亚洲视频在线 | 午夜在线成人 | 成人午夜在线免费观看 | 黄色特级一级片 | 男女隐私免费视频 | 91精品国产乱码久久久久 | 免费观看黄视频 | 国产精品一区网站 | 福利在线免费 | 欧美亚成人 | qyl在线视频精品免费观看 | 羞羞的动漫在线观看 | 日本精品久久久久久草草 | 一级国产精品一级国产精品片 | 亚洲精品aⅴ中文字幕乱码 欧美囗交 | 国产精品午夜在线 | 成人一级毛片 | 国产一区二区影视 | 亚洲精品久久久久久久久久 | 欧美色淫 | 国产精品99久久99久久久二 | 欧美一级黄色片免费观看 |