我在store中定义了checkUserSubscription的方法,并在app.vue中的on launch进行调用。但是报错
//错误信息
{errMsg: "getSetting:fail invalid credential, access_token is invalid or not latest", err_code: 40001}
errMsg: "getSetting:fail invalid credential, access_token is invalid or not latest"
err_code: 40001
//store/modules/subscription.js
checkUserSubscription({
state,
dispatch
}) {
console.log('开始检查用户订阅状态...');
return new Promise((resolve, reject) => {
wx.getSetting({
withSubscriptions: true,
success: (res) => {
console.log('获取用户订阅设置成功:', res);
if (res.subscriptionsSetting.mainSwitch) {
let needSubscribe = false;
state.subscriptionTemplates.forEach((id) => {
if (
!res.subscriptionsSetting.itemSettings ||
!res.subscriptionsSetting.itemSettings[id] ||
res.subscriptionsSetting.itemSettings[id] !== 'accept'
) {
console.log(`模板 ${id} 未订阅或未接受`);
needSubscribe = true;
}
});
if (needSubscribe) {
console.log('存在未订阅的模板,开始请求订阅...');
dispatch('requestSubscription', state.subscriptionTemplates)
.then(resolve)
.catch(reject);
} else {
console.log('所有模板均已订阅,无需重复订阅');
resolve();
}
} else {
console.log('用户关闭了订阅消息总开关,提示用户打开设置');
wx.openSetting({
withSubscriptions: true,
success: () => {
console.log('用户已打开订阅设置页面');
},
fail: (err) => {
console.error('打开订阅设置页面失败:', err);
reject(err);
},
});
}
},
fail: (err) => {
console.error('获取用户订阅设置失败:', err);
reject(err);
},
});
});
},
//这是定义在app.vue中的方法,并在onLaunch中进行调用
async loadData() {
// 我设置了延迟查询也报错
setTimeout(() => {
this.$store.dispatch('subscription/querySubscription') // 使用命名空间调用
.then(() => {
console.log('订阅查询成功');
})
.catch((error) => {
console.error('订阅查询失败:', error);
});
}, 10000);
你好,token报错,有没有返回的rid