小程序示例代码(手把手教你一个人开发小程序前后端(考试系统代码分享))

开发工具:微信开发者工具,vs2019

第一步,注册小程序拿到appid.

第二步,

1、后台框架搭建,我用这个框架,我主导设计开发的“伪”低代码平台之平台架构简介 ,直接写业务代码即可。

2、微信开发者工具创建新项目。

第三步,前端页面搭建,业务代码编写

代码分享部分,

登陆页展示,一个图片展示,一个登陆按钮,这个按钮会获取微信用户信息。

wxml页面 <button type="primary" v-if="canIUse" open-type="getUserInfo" bindgetuserinfo="getPerson"> 微信登陆</button> js代码 getPerson:function(e){ console.log(e) let wxuser=e.detail.userInfo; //获取微信id,登陆用户信息 var self = this; // 展示本地存储能力 var logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs); //默认类型 wx.setStorageSync("currentType", 0); // 登录 wx.login({ success: res => { let wxid = wx.getStorageSync("openid"); console.log(wxid) // 请求openid wx.request({ url: app.globalData.BASE_URL + "/WebChatInfo/GetWXInfo", data: { code: res.code, wxspAppid: app.globalData.params.appid, wxspSecret: app.globalData.params.secret, grantType: app.globalData.params.getOpenID.grantType, wxUrl: app.globalData.params.getOpenID.url, userInfo:wxuser }, header: { 'content-type': 'application/json' }, method: 'POST', success: function (res) { wxid = res.data.data.openid; if (wxid != null && wxid != "") { //写入存储 wx.setStorageSync("openid", wxid); //openid 设为全局变量 app.globalData.openid = wxid; // 获取token 写到缓存 app.globalData.token ="Bearer "+res.data.data.token wx.setStorageSync('token', "Bearer "+res.data.data.token); let token=wx.getStorageSync("token") console.log("tokenppp "+token) app.globalData.userInfo=res.data.data.userInfo app.globalData.currentUserInfo = res.data.data.userInfo; console.log(app.globalData.currentUserInfo.UserID) wx.setStorageSync('currentUserInfo', res.data.data.userInfo); //页面跳转 wx.switchTab({ url: '/pages/home/index', }) } else { wx.showToast({ title: '当前网络环境较差,请更换网络!', icon: 'none', duration: 1500 }) } }, fail: function (res) { wx.showToast({ title: '当前网络环境较差,请更换网络!', icon: 'none', duration: 1500 }) } }) } }); self.getAppAccessToken(); },

这样写,点击按钮就会请求授权。获取到用户信息,调用wx.login 获取code在调后台接口获取openid。保存用户信息




登陆后


因为框架会验证接口的权限,小程序封装统一的http请求,统一加请求头。

代码如下

//封装微信请求接口 const request = async (url, method, data, type = "application/json;") => { let _url = BASE_URL + url; //有accessToken时要验证accessToken的有效性 let token = app.globalData.token; //token = ""; console.log("token"+ token); return new Promise((resolve, reject) => { wx.request({ url: _url, method: method, data: data, dataType: "json", header: { "content-type": type, "Authorization": token //统一封装请求头token }, success: res => { // console.log("req:"+JSON.stringify(res)); if (res.statusCode === 200) { // let data = JSON.parse(Base64.decode(res.data)); resolve(res.data); } else if(res.statusCode === 401){ //没有权限则跳转到登陆页面 // wx.setStorageSync('currentUserInfo', null); // wx.setStorageSync('token', null); // wx.setStorageSync('openid', null); // wx.redirectTo({ // url: '/pages/login/login', // }) } else { //404,401,500都跳转到错误页面 resolve({code: res.statusCode,msg:'Server error'}); } }, fail(error) { resolve({code: -1,msg:'Server error'}); } }); }); }; 使用方式如下 API.getUserTestPaperList({ UserId:ID }).then((ret)=>{ wx.hideLoading(); if(ret.code == "0") { //请求成功后处理数据 this.setData({ list:ret.data }); } });

总结一下:

1、小程序登陆获取用户信息需要按代码示例那样写

小程序示例

2、统一封装请求后台的方法,请求头添加token,为接口权限控制准备

本篇先介绍到这,下篇介绍考试业务代码实现。

您可以还会对下面的文章感兴趣

使用微信扫描二维码后

点击右上角发送给好友