這篇文章主要介紹了微信小程序獲取用戶session_key、openid、unioni的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
成都創新互聯2013年至今,先為市北等服務建站,市北等地企業,進行企業商務咨詢服務。為市北企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。
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('');
}
})結果:

這個返回結果沒有unionid,按照官方的說法,需要在微信開放平臺綁定小程序;
感謝你能夠認真閱讀完這篇文章,希望小編分享微信小程序獲取用戶session_key、openid、unioni的方法內容對大家有幫助,同時也希望大家多多支持創新互聯,關注創新互聯行業資訊頻道,遇到問題就找創新互聯,詳細的解決方法等著你來學習!
當前文章:微信小程序獲取用戶session_key、openid、unioni的方法
本文鏈接:http://m.kartarina.com/article49/gocehh.html
成都網站建設公司_創新互聯,為您提供網站改版、品牌網站建設、網站策劃、建站公司、ChatGPT、網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯