基于微信公众号开发h5的前端流程

news2025/2/24 1:52:21

1.首先公众号进行配置,必须要https域名

还有个txt文件,有弹框提示需要下载放在服务器上

前端处理code的代码封装

// 微信公众号授权
export function wxAuthorize(calback) {
	// 非静默授权,第一次有弹框 这里的回调页面就是放在服务器上微信会跳转回来反值如openid的页面
	let redirect_uri =config.redirect_uri || window.location.host; // 重定向地址
	console.log(redirect_uri, '重定向地址')
	let appid = config.appid  // 公众号appid
	let code = getUrlCode().code; // 截取code
	// 获取之前的code
	let oldCode = uni.getStorageSync('wechatCode')
	if (code == null || code === '' || code == 'undefined' || code == oldCode) {
		// 如果没有code,就去请求获取code
		console.log('当前没有code,进入授权页面')
		let uri = encodeURIComponent(redirect_uri)
		// 设置旧的code为0,避免死循环
		uni.setStorageSync('wechatCode', 0)
		const urll =
			`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${uri}&response_type=code&scope=snsapi_userinfo&state=State#wechat_redirect`
		console.log(urll, '------------urll-------------------');
		window.location.href = urll
	} else {
		console.log('存在code,使用code换取用户信息',code)
		// 保存最新code
		uni.setStorageSync('wechatCode', code)
		wxCallback(`?code=${code}&state=123`).then(res => {
			// 成功data为token
			calback && calback({success: true,data:res})
		}).catch((err) => {
			if(err.code == '9997'){ //code失效重新进入
				window.location.reload()
			}else if(err.code == '9999'){ // 手机号未绑定
				calback && calback(err)
			}
		})

	}
}

export function getUrlCode() {
	// 截取url中的code方法
	var url = location.search;
	// this.winUrl = url;
	var theRequest = new Object();
	if (url.indexOf('?') != -1) {
		var str = url.substr(1);
		var strs = str.split('&');
		for (var i = 0; i < strs.length; i++) {
			theRequest[strs[i].split('=')[0]] = strs[i].split('=')[1];
		}
	}
	console.log(theRequest,'spdspdop')
	return theRequest;
}

export function getParams(url) {
  const searchParams = new URLSearchParams(url.split("?")[1]);
  const params = {};
  for (const [key, value] of searchParams.entries()) {
    params[key] = value;
  }
  return params;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1824398.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

效率翻倍!ComfyUI 必装的工作流+模型管理插件 Workspace Manager

一、Workspace Manager 安装方式 插件 Github 网址&#xff1a; https://github.com/11cafe/comfyui-workspace-manager 如果你没有安装 Workspace Manager 插件&#xff0c;可以通过以下 2 种方式安装&#xff1a; ① 通过 ComfyUI Manager 安装&#xff08;推荐&#xff0…

机器,学习没有捷径

1 捷径学习 1.1 你捷径学习了么 深度学习因为其优异的学习能力&#xff0c;已经成为推动人工智能发展当之无愧的主力军。深度学习在NLP和CV等不同的场景下都展现了优异的能力。但深度学习也存在一个与生俱来的问题&#xff1a;捷径学习。 捷径学习中的捷径表示的是一种有缺陷…

yolov8通过训练完成的模型生成图片热力图--论文需要

源代码来自于网络 使用pytorch_grad_cam&#xff0c;对特定图片生成热力图结果。 安装热力图工具 pip install pytorch_grad_cam pip install grad-cam# get_params中的参数&#xff1a; # weight&#xff1a; # 模型权重文件&#xff0c;代码默认是yolov8m.pt # c…

2024高校网络安全管理运维赛题目--复现+题目+wp

比赛官网 比赛官网 部分writeup Signin 如图所示GIF提取&#xff0c;然后简单的ROT13 flag{welcome-to-signin-quiz} 邮件 ----如图所示简单的base64 邮件flag{WeLCoMeto} 邮箱flag{phishHUntInG} Babyre 解析&#xff1a;放到IDA分析&#xff0c;看伪代码 得到AncsA6g…

浔川计算机v1.1——浔川python科技社

浔川计算机v1.1 import tkinter import math import tkinter.messageboxclass Calculator(object):# 界面布局方法def __init__(self):# 创建主界面,并且保存到成员属性中self.root tkinter.Tk()self.root.minsize(280, 450)self.root.maxsize(280, 470)self.root.title(浔川计…

30KW高原汽油发电机,海拔5000米可使用

大汉动力高原汽油发电机是专为高原地区设计的发电设备&#xff0c;其设计和特性考虑了高原环境的特别性。以下是关于高原汽油发电机的一些关键信息&#xff1a; 设计特点&#xff1a; 高原适应性&#xff1a;高原地区海拔高&#xff0c;空气稀薄&#xff0c;氧气含量低&#x…

文章解读与仿真程序复现思路——电工技术学报EI\CSCD\北大核心《考虑源网储协同配合下的移动式波浪能发电平台并网优化调度》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

自动生成企业培训视频:创新与效率的完美结合

前言 随着人工智能技术的飞速发展&#xff0c;大模型技术在各个领域的应用日益广泛。在企业培训领域&#xff0c;大模型技术的应用为培训视频的生成带来了革命性的变革。本文将探讨如何利用大模型技术自动生成企业培训视频&#xff0c;以及这一技术为企业培训带来的创新和效率…

S686量产工具授权版,S686开卡教程,S686+EMMC固态硬盘开卡量产成功记录

手里有个S686EMMC组合的固态硬盘&#xff0c;华澜微的S686主控&#xff0c;之前一直没找到工具&#xff0c;感觉是废了&#xff0c;一直放着&#xff0c;偶然机会从桌子里又找到它&#xff0c;于是继续搜寻量产工具。 找到量产部落的一篇文章&#xff0c;里面说首发了S686的量产…

[Java基本语法] 类与对象

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;线程与…

移远CAT1模组OPENCPU开发:添加工程

在移远CAT1通讯模组的OPNECPU方案的SDK上&#xff0c;不破坏原有的工程结构&#xff0c;添加一个自定义的工程&#xff0c;适配于EC200和EC800系列的基于展锐平台的模组。 1、SDK路径下&#xff0c;如LTE01R02A05_C_SDK_U\components\ql-application目录下新建一个工程文件夹&a…

使用Python在VMware虚拟机中模拟Ubuntu服务器搭建网站

在此之前可以先使用VS Code连接到虚拟机&#xff1a;Visual Studio Code连接VMware虚拟机-CSDN博客 安装Web服务器Apache sudo apt-get install apache2 在个别情况下需要对Apache服务器的配置文件进行调整&#xff1a; 打开etc路径下的apache2文件夹&#xff0c;根据端口…

C++ | Leetcode C++题解之第151题反转字符串中的单词

题目&#xff1a; 题解&#xff1a; class Solution { public:string reverseWords(string s) {int left 0, right s.size() - 1;// 去掉字符串开头的空白字符while (left < right && s[left] ) left;// 去掉字符串末尾的空白字符while (left < right &…

「C系列」C 结构体

文章目录 一、C 结构体1. 定义结构体2. 声明结构体变量3. 初始化结构体变量4. 访问结构体成员5. 结构体数组6. 结构体指针7. 结构体嵌套 二、C 如何使用结构体1. 定义结构体类型2. 声明结构体变量3. 初始化结构体变量4. 访问结构体成员5. 结构体指针6. 在函数中使用结构体7. 注…

ArcGIS 10.2软件安装包下载及安装教程!

今日资源&#xff1a;ArcGIS 适用系统&#xff1a;WINDOWS 软件介绍&#xff1a; ArcGIS是一款专业的电子地图信息编辑和开发软件&#xff0c;提供一种快速并且使用简单的方式浏览地理信息&#xff0c;无论是2D还是3D的信息。软件内置多种编辑工具&#xff0c;可以轻松的完成…

最经济实惠的通配符SSL证书是哪款?

网络安全已成为企业和个人网站运营者关注的焦点。SSL证书作为确保数据传输安全的关键工具&#xff0c;其重要性不言而喻。特别是通配符SSL证书&#xff0c;因其能够为一个主域名及其所有子域名提供统一的安全保护&#xff0c;而受到广泛欢迎。但面对市场上众多的SSL证书品牌和价…

如何制作 PDF 文件

本文概述了如何使用 Microsoft Word、GeekerPDF、Google Docs 和 Mac Pages 创建 PDF。您还可以使用免费的 PDF 创建器&#xff1b;有许多可供下载或在线使用的创建器。 如何使用 Microsoft Word 创建 PDF 如果您拥有 2007 或更高版本的 Microsoft Word&#xff0c;创建 PDF 的…

重生之 SpringBoot3 入门保姆级学习(20、场景整合 Docker 的 Redis 对接与基础使用)

重生之 SpringBoot3 入门保姆级学习&#xff08;20、场景整合 Docker 的 Redis 对接与基础使用&#xff09; 6.3 整合 Redis 6.3 整合 Redis 1、创建新项目编写 application.properties 配置文件 # redis 配置 spring.data.redis.host192.168.1.4 spring.data.redis.port6379如…

搭建个人智能家居 6 -SGP30 CO₂与TVOC测量

搭建个人智能家居 6 -SGP30 CO₂与TVOC测量 前言说明ESPHomeHomeAssistant 前言 上一篇文章我们给这个智能家居系统添加了第三个外设&#xff0c;温湿度传感器。今天添加第四个外设&#xff0c;用于测量环境中CO₂与TVOC的传感器“SGP30”。 前问回顾&#xff1a; 搭建个人智能…

(游戏:挑一张牌)编写程序,模拟从一副 52 张的牌中选择一张牌。

(游戏:挑一张牌)编写程序&#xff0c;模拟从一副 52 张的牌中选择一张牌。程序应该显示牌的 大小(Ace、2、3、4、5、6、7、8、9、10、Jack、Queen、King)以及牌的花色(Clubs (黑梅花)、Diamonds(红方块)、Hearts(红心)、Spades(黑桃))。下面是这个程序的 运行示例: The card yo…