添加微信获取code的方法

This commit is contained in:
D 2024-01-03 16:41:25 +08:00
parent 2956c4fa90
commit bb8e368a5e

View File

@ -1,3 +1,5 @@
import { tansParams } from "./ruoyi";
/** /**
* *
* @param {*} str * @param {*} str
@ -6,15 +8,15 @@
*/ */
export function wildcardCompare(str: string, pattern: string): boolean { export function wildcardCompare(str: string, pattern: string): boolean {
const regex = pattern.replace(/[*?]/g, (match) => { const regex = pattern.replace(/[*?]/g, (match) => {
if (match === '*') { if (match === "*") {
return '.*'; return ".*";
} else if (match === '?') { } else if (match === "?") {
return '.'; return ".";
} else { } else {
return match return match;
} }
}); });
const regexPattern = new RegExp('^' + regex + '$'); const regexPattern = new RegExp("^" + regex + "$");
return regexPattern.test(str); return regexPattern.test(str);
} }
@ -24,7 +26,7 @@ export function wildcardCompare(str: string, pattern: string): boolean {
* @returns * @returns
*/ */
export function deepClone(obj: any) { export function deepClone(obj: any) {
if (obj == null || typeof obj !== 'object') { if (obj == null || typeof obj !== "object") {
return obj; return obj;
} }
let result; let result;
@ -47,7 +49,7 @@ export function deepClone(obj: any) {
* @returns * @returns
*/ */
export function deepCloneTo<T>(obj: T, result: T) { export function deepCloneTo<T>(obj: T, result: T) {
if (obj == null || typeof obj !== 'object') { if (obj == null || typeof obj !== "object") {
return obj; return obj;
} }
for (let [key, value] of Object.entries(obj)) { for (let [key, value] of Object.entries(obj)) {
@ -62,15 +64,66 @@ export function deepCloneTo<T>(obj: T, result: T) {
* @returns uuid字符串 * @returns uuid字符串
*/ */
export function generateUUID(): string { export function generateUUID(): string {
let uuid = ''; let uuid = "";
const chars = '0123456789abcdef'; const chars = "0123456789abcdef";
for (let i = 0; i < 32; i++) { for (let i = 0; i < 32; i++) {
if (i === 8 || i === 12 || i === 16 || i === 20) { if (i === 8 || i === 12 || i === 16 || i === 20) {
uuid += '-'; uuid += "-";
} }
uuid += chars[Math.floor(Math.random() * chars.length)]; uuid += chars[Math.floor(Math.random() * chars.length)];
} }
return uuid; return uuid;
}
/**
* code
* @returns code字符串
*/
export async function getCode() {
// #ifdef H5
let appid = "wx98501e665b0f0596";
let url = "http://localhost:3002/index.html";
let code = "";
// 截取url中的code方法
function getUrlCode() {
let url = location.search;
console.log(url);
let theRequest: any = new Object();
if (url.indexOf("?") != -1) {
let str = url.substr(1);
let strs = str.split("&");
for (let i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = strs[i].split("=")[1];
} }
}
return theRequest as { code: string };
}
code = getUrlCode().code; // 截取code
if (code == undefined || code == "" || code == null) {
// 如果没有code则去请求
console.log("h5");
window.location.href =
"https://open.weixin.qq.com/connect/oauth2/authorize?" +
tansParams({
appid: appid,
redirect_uri: url,
response_type: "code",
scope: "snsapi_userinfo",
state: "STATE",
}) +
"#wechat_redirect";
} else {
return code;
}
// #endif
// #ifdef MP-WEIXIN
// @ts-ignore
const res = await wx.login();
return res.code;
// #endif
}