• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 應用軟件教程 > 詳細頁面

        微信小程序如何取得用戶session_key,openid,unioni(代碼)

        微信小程序如何取得用戶session_key,openid,unioni(代碼)

        更新時間:2025-09-20 文章作者:未知 信息來源:網絡 閱讀次數:

        微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一...
        微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。

        微信小程序中獲取用戶session_key,openid,unioni,這是小程序中經常可以看到的功能,那么如何實現小程序獲取session_key,openid和unionid;本篇文章將給大家介紹關于后端為node.js的微信小程序獲取用戶session_key,openid,unionid的方法實現。

        步驟:

        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('');
          }
        })

        結果:

        20180223101525677.png

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

        相關推薦:

        微信小程序如何獲取用戶的openid

        小程序中如何獲取參數openid & session_key的方法介紹

        以上就是微信小程序如何獲取用戶session_key,openid,unioni(代碼)的詳細內容,更多請關注php中文網其它相關文章!


        小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 亚洲人成电影院在线观看| 亚洲中文字幕无码爆乳AV| 亚洲精品动漫在线| 国产线视频精品免费观看视频| 亚洲精品无码专区2| 久久精品亚洲日本波多野结衣 | 久久亚洲成a人片| 在线看片免费人成视频播| 国产精品亚洲а∨无码播放| 国产成人无码区免费内射一片色欲| 国产亚洲一区二区三区在线| 免费观看成人久久网免费观看| 精品亚洲aⅴ在线观看| 国产曰批免费视频播放免费s| 亚洲同性男gay网站在线观看| 性色av无码免费一区二区三区| 亚洲人成77777在线观看网| 午夜a级成人免费毛片| 国产午夜亚洲精品不卡| 国产成人亚洲精品狼色在线| 国产猛男猛女超爽免费视频| 亚洲美女视频网址| 女人18一级毛片免费观看| 黄网站在线播放视频免费观看| 4338×亚洲全国最大色成网站| 99热这里只有精品免费播放| 亚洲最大福利视频网站| 午夜a级成人免费毛片| 久久精品无码免费不卡| 亚洲成色在线影院| 四虎免费在线观看| 久久免费观看视频| 亚洲大片免费观看| 亚洲国产精品一区二区第四页| 久久免费精品视频| 亚洲欧洲免费无码| 亚洲精品无码久久久久| 毛片视频免费观看| a毛片免费在线观看| 亚洲人成电影网站免费| 亚洲精品乱码久久久久久久久久久久 |