赞
踩
首先,你可以将获取access_token
和获取不限制的小程序码(getUnlimitedQRCode
)的逻辑进行整合和优化,确保在access_token
过期时能够自动刷新并获取新的access_token
。这样可以提高代码的可维护性和可读性。以下是一个优化后的示例代码:
- // 定义变量用于存储上次获取access_token的时间戳和access_token本身
- let time1 = (new Date()).getTime();
- let time2 = null;
- let access_token = null;
-
- // 获取access_token的函数
- function getAccessToken() {
- if (!time2 || (time1 - time2) > 7200000) { // 如果access_token过期了或者没有获取过
- uni.request({
- url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=your_appid&secret=your_secret',
- success: (res) => {
- if (res.data && res.data.access_token) {
- access_token = res.data.access_token;
- time2 = (new Date()).getTime();
- console.log('新access_token:', access_token);
- getUnlimitedQRCode(access_token);
- } else {
- console.error('获取access_token失败:', res.data);
- }
- },
- fail: (error) => {
- console.error('获取access_token失败:', error);
- }
- });
- } else {
- console.log('使用旧access_token:', access_token);
- getUnlimitedQRCode(access_token);
- }
- }
-
- // 获取不限制的小程序码的函数
- function getUnlimitedQRCode(access_token) {
- let postData = {
- path: "pages/index/index",
- scene: "123",
- width: 300,
- auto_color: false
- };
- postData = JSON.stringify(postData);
- uni.request({
- url: 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=' + access_token,
- method: 'POST',
- data: postData,
- header: {},
- success: (res) => {
- console.log('小程序码:', res.data);
- },
- fail: (error) => {
- console.error('获取小程序码失败:', error);
- }
- });
- }
-
- // 在需要获取小程序码的地方调用getAccessToken函数即可
- getAccessToken();
这段代码将获取access_token
和获取小程序码的逻辑封装成两个独立的函数,提高了代码的可读性和可维护性。在需要获取小程序码的地方直接调用getAccessToken()
即可,它会根据access_token
的有效性自动刷新或直接使用旧的access_token
来获取小程序码。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。