fix: 🐛 1:修改微信订阅,更改为每次支付成功之后请求订阅信息。2:修改微信支付在真机中支付成功跳转问题

This commit is contained in:
RyanRan
2024-07-02 11:58:06 +08:00
parent 0b601e4f3e
commit 31c341148f
5 changed files with 164 additions and 172 deletions

View File

@@ -1,16 +1,16 @@
import Request from "@/lib/request/index.js";
import {
refreshTokenFn
} from "@/api/login.js";
import storage from "@/utils/storage.js";
import api from "@/config/api.js";
import Request from "@/lib/request/index.js";
import Foundation from "@/utils/Foundation.js";
import {
md5
} from "@/utils/md5.js";
import Foundation from "@/utils/Foundation.js";
import api from "@/config/api.js";
import storage from "@/utils/storage.js";
import jwt from '@/js_sdk/t-jwt/jwt.js';
import uuid from "@/utils/uuid.modified.js";
import jwt from '@/js_sdk/t-jwt/jwt.js'
import store from "../store";
@@ -89,7 +89,7 @@ http.interceptors.request.use(
*/
const decodeJwt = jwt(accessToken);
const timing = new Date().getTime() / 1000
if(decodeJwt.exp <= timing){
if (decodeJwt.exp <= timing) {
accessToken = ""
storage.setAccessToken('')
}
@@ -132,95 +132,95 @@ let requests = [];
// 必须使用异步函数,注意
http.interceptors.response.use(
async (response) => {
isNavigateTo = false
/* 请求之后拦截器。可以使用async await 做异步操作 */
// token存在并且token过期
// if (isRefreshing && response.statusCode === 403) {
// cleanStorage();
// isRefreshing = false;
// }
uni.showLoading() ? uni.hideLoading() : ''
let token = storage.getAccessToken();
if (
(token && response.statusCode === 403) ||
response.data.status === 403
) {
if (!isRefreshing) {
console.log('旧token', token)
isRefreshing = true;
storage.setAccessToken('')
let oldRefreshToken = storage.getRefreshToken();
//调用刷新token的接口
return refreshTokenFn(oldRefreshToken)
.then((res) => {
let {
accessToken,
refreshToken
} = res.data.result;
storage.setAccessToken(accessToken);
storage.setRefreshToken(refreshToken);
isNavigateTo = false
/* 请求之后拦截器。可以使用async await 做异步操作 */
// token存在并且token过期
// if (isRefreshing && response.statusCode === 403) {
// cleanStorage();
// isRefreshing = false;
// }
uni.showLoading() ? uni.hideLoading() : ''
let token = storage.getAccessToken();
if (
(token && response.statusCode === 403) ||
response.data.status === 403
) {
if (!isRefreshing) {
console.log('旧token', token)
isRefreshing = true;
storage.setAccessToken('')
let oldRefreshToken = storage.getRefreshToken();
//调用刷新token的接口
return refreshTokenFn(oldRefreshToken)
.then((res) => {
let {
accessToken,
refreshToken
} = res.data.result;
storage.setAccessToken(accessToken);
storage.setRefreshToken(refreshToken);
response.header.accessToken = `${accessToken}`;
// token 刷新后将数组的方法重新执行
console.log('接口队列', requests, '新token', accessToken)
requests.forEach((cb) => cb(accessToken));
requests = []; // 重新请求完清空
return http.request(response.config);
})
.catch((err) => {
console.log('刷新token报错' + oldRefreshToken, err)
cleanStorage();
return Promise.reject(err);
})
.finally(() => {
isRefreshing = false;
});
} else {
// 返回未执行 resolve 的 Promise
return new Promise((resolve) => {
// 用函数形式将 resolve 存入,等待刷新后再执行
requests.push((token) => {
response.header.accessToken = `${token}`;
resolve(http.request(response.config));
});
response.header.accessToken = `${accessToken}`;
// token 刷新后将数组的方法重新执行
console.log('接口队列', requests, '新token', accessToken)
requests.forEach((cb) => cb(accessToken));
requests = []; // 重新请求完清空
return http.request(response.config);
})
.catch((err) => {
console.log('刷新token报错' + oldRefreshToken, err)
cleanStorage();
return Promise.reject(err);
})
.finally(() => {
isRefreshing = false;
});
}
// 如果当前返回没登录
} else if (
(!token && !storage.getRefreshToken() && response.statusCode === 403) ||
response.data.code === 403
) {
console.log('没有token 以及刷新token 内容', token, storage.getRefreshToken())
cleanStorage();
// 如果当前状态码为正常但是success为不正常时
} else if (
(response.statusCode == 200 && !response.data.success) ||
response.statusCode == 400
) {
if (response.data.message) {
uni.showToast({
title: response.data.message,
icon: "none",
duration: 1500,
success: function () {
store.state.isShowToast = true;
},
fail: function () {
store.state.isShowToast = false;
},
complete: function () {
store.state.isShowToast = false;
}
} else {
// 返回未执行 resolve 的 Promise
return new Promise((resolve) => {
// 用函数形式将 resolve 存入,等待刷新后再执行
requests.push((token) => {
response.header.accessToken = `${token}`;
resolve(http.request(response.config));
});
}
});
}
// 如果当前返回没登录
} else if (
(!token && !storage.getRefreshToken() && response.statusCode === 403) ||
response.data.code === 403
) {
console.log('没有token 以及刷新token 内容', token, storage.getRefreshToken())
cleanStorage();
// 如果当前状态码为正常但是success为不正常时
} else if (
(response.statusCode == 200 && !response.data.success) ||
response.statusCode == 400
) {
if (response.data.message) {
uni.showToast({
title: response.data.message,
icon: "none",
duration: 1500,
success: function () {
store.state.isShowToast = true;
},
fail: function () {
store.state.isShowToast = false;
},
complete: function () {
store.state.isShowToast = false;
}
});
}
return response;
},
(error) => {
return error;
}
return response;
},
(error) => {
return error;
}
);
export {