修改jwt判断token 以及订单金额为0时前台 跳转问题
parent
1e53287927
commit
7cbb226416
|
@ -448,17 +448,23 @@ export default {
|
|||
duration: 2000,
|
||||
icon: "none",
|
||||
});
|
||||
// 如果当前价格为0跳转到订单列表
|
||||
if (this.orderMessage.priceDetailDTO.billPrice == 0) {
|
||||
uni.redirectTo({
|
||||
url: "/pages/order/myOrder?status=0",
|
||||
});
|
||||
} else {
|
||||
// #ifdef MP-WEIXIN
|
||||
// 微信小程序中点击创建订单直接开始支付
|
||||
this.pay(res.data.result.sn);
|
||||
// #endif
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
// 微信小程序中点击创建订单直接开始支付
|
||||
this.pay(res.data.result.sn);
|
||||
// #endif
|
||||
|
||||
// #ifndef MP-WEIXIN
|
||||
this.navigateTo(
|
||||
`/pages/cart/payment/payOrder?trade_sn=${res.data.result.sn}`
|
||||
);
|
||||
// #endif
|
||||
// #ifndef MP-WEIXIN
|
||||
this.navigateTo(
|
||||
`/pages/cart/payment/payOrder?trade_sn=${res.data.result.sn}`
|
||||
);
|
||||
// #endif
|
||||
}
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: "创建订单有误!请稍后重试",
|
||||
|
|
|
@ -164,7 +164,7 @@ import * as API_Trade from "@/api/trade";
|
|||
export default {
|
||||
data() {
|
||||
return {
|
||||
lightColor:this.$lightColor,
|
||||
lightColor: this.$lightColor,
|
||||
discountDetailsFlag: false, //优惠明细开关
|
||||
// 商品栏右侧滑动按钮
|
||||
options: [
|
||||
|
@ -499,16 +499,9 @@ export default {
|
|||
}
|
||||
uni.stopPullDownRefresh();
|
||||
uni.hideLoading();
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: result.data.message,
|
||||
duration: 2000,
|
||||
icon: "none",
|
||||
});
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
|
||||
uni.hideLoading();
|
||||
});
|
||||
} else {
|
||||
|
|
|
@ -120,6 +120,25 @@ http.interceptors.request.use(
|
|||
|
||||
config.params = params;
|
||||
config.header.accessToken = accessToken;
|
||||
console.log(accessToken);
|
||||
/**
|
||||
* jwt 因为安卓以及ios没有window的属性
|
||||
* window.atob()这个函数 base64编码的使用方法就是btoa(),而用于解码的使用方法是atob(),
|
||||
* 所以使用手写 base-64 编码的字符串数据。
|
||||
*/
|
||||
//
|
||||
const atob = (str) => Buffer.from(str, "base64").toString("binary");
|
||||
// 判断如果过期时间小于我的当前时间,在请求上重新刷新token
|
||||
if (accessToken.split(".").length <= 1) {
|
||||
refresh();
|
||||
} else {
|
||||
if (
|
||||
JSON.parse(atob(accessToken.split(".")[1])).exp <
|
||||
new Date().getTime() / 1000
|
||||
) {
|
||||
refresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
config.header = {
|
||||
...config.header,
|
||||
|
@ -132,6 +151,33 @@ http.interceptors.request.use(
|
|||
}
|
||||
);
|
||||
|
||||
async function refresh() {
|
||||
// 本地储存的是过期token了,重新获取
|
||||
const getTokenResult = await refreshToken();
|
||||
// if (getTokenResult === "success") {
|
||||
// // 获取新的token成功 刷新当前页面
|
||||
|
||||
// let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
|
||||
// let curRoute = routes[routes.length - 1].route; //获取当前页面路由
|
||||
// let curParam = routes[routes.length - 1].options; //获取路由参数
|
||||
// // 拼接参数
|
||||
// let param = "";
|
||||
// for (let key in curParam) {
|
||||
// param += "&" + key + "=" + curParam[key];
|
||||
// }
|
||||
// // 判断当前路径
|
||||
// if (curRoute.indexOf("pages/tabbar") == 1) {
|
||||
// uni.switchTab({
|
||||
// url: "/" + curRoute + param.replace("&", "?"),
|
||||
// });
|
||||
// }
|
||||
|
||||
// uni.redirectTo({
|
||||
// url: "/" + curRoute + param.replace("&", "?"),
|
||||
// });
|
||||
// }
|
||||
}
|
||||
|
||||
// 必须使用异步函数,注意
|
||||
http.interceptors.response.use(
|
||||
async (response) => {
|
||||
|
@ -143,33 +189,11 @@ http.interceptors.response.use(
|
|||
(token && response.statusCode === 403) ||
|
||||
response.data.status === 403
|
||||
) {
|
||||
expireToken.includes(token) ? cleanStorage() : "";
|
||||
// jwt token 过期了
|
||||
expireToken.push(token); // 把过期token 储存
|
||||
const currentToken = storage.getAccessToken();
|
||||
if (expireToken.includes(currentToken)) {
|
||||
// 本地储存的是过期token了,重新获取
|
||||
const getTokenResult = await refreshToken();
|
||||
if (getTokenResult === "success") {
|
||||
// 获取新的token成功 刷新当前页面
|
||||
|
||||
let routes = getCurrentPages(); // 获取当前打开过的页面路由数组
|
||||
let curRoute = routes[routes.length - 1].route; //获取当前页面路由
|
||||
let curParam = routes[routes.length - 1].options; //获取路由参数
|
||||
// 拼接参数
|
||||
let param = "";
|
||||
for (let key in curParam) {
|
||||
param += "&" + key + "=" + curParam[key];
|
||||
}
|
||||
|
||||
uni.redirectTo({
|
||||
url: "/" + curRoute + param.replace("&", "?"),
|
||||
});
|
||||
} else {
|
||||
cleanStorage();
|
||||
}
|
||||
} else {
|
||||
cleanStorage();
|
||||
refresh();
|
||||
}
|
||||
// 如果当前返回没登录
|
||||
} else if (
|
||||
|
|
Loading…
Reference in New Issue