• <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女电影网| 精品亚洲成α人无码成α在线观看| 亚洲国产人成网站在线电影动漫| 人妖系列免费网站观看| 免费在线一级毛片| 免费无遮挡无遮羞在线看| 免费看一级做a爰片久久| 曰批免费视频播放在线看片二 | 亚洲一区二区三区偷拍女厕 | 亚洲精品和日本精品| 美女被吸屁股免费网站| 在线a亚洲v天堂网2018| 亚洲精品国产日韩无码AV永久免费网 | 亚洲欧洲日本国产| 免费精品国产自产拍在线观看图片| 91亚洲精品麻豆| 成人激情免费视频| 无遮挡呻吟娇喘视频免费播放| 亚洲国产电影av在线网址| 三级毛片在线免费观看| 久久综合亚洲鲁鲁五月天| 久久久久免费看黄A片APP | 免费观看一区二区三区| 亚洲伦另类中文字幕| 免费A级毛片无码免费视| 免费无码国产V片在线观看| 亚洲香蕉网久久综合影视 | 日本久久久免费高清| 无码精品人妻一区二区三区免费| 国产专区一va亚洲v天堂| 麻豆精品成人免费国产片| 亚洲av无码片在线观看| 免费一级做a爰片性色毛片| 国产偷伦视频免费观看| 亚洲自偷自偷在线成人网站传媒 | 毛片a级毛片免费观看品善网| 理论片在线观看免费| 亚洲视频在线播放| 国产成人免费手机在线观看视频 | 国产永久免费高清在线| 亚洲精品123区在线观看|