微信调用jssdk全流程详解

2023-11-07

微信调用jssdk全流程详解

系统框架使用的是前后端分离,前端使用vant,后端是springboot

一、网页授权的时序图

在这里插入图片描述

二、公众号配置

1. 绑定域名

登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。也就是这样:

在这里插入图片描述
点击设置之后,弹出这样一个输入框,输入服务器所在的域名:
在这里插入图片描述

2:引入js文件

直接在你的页面里引入js文件就行

<script src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>

三、前端方法

1. 初始化方法,从后台获取基本的参数

前端进入需要扫一扫功能的页面时候,在mounted方法里面,执行微信配置getWxConfig(),此方法主要是获取jssdk所需要的参数,先检查本地缓存的是否过期,过期则请求后台获取

export function getWxConfig() {
  //判断signature是否过期
  if (expireSign()) {
    let data = {};
    data.appId = localStorage.getItem('appId');
    data.timestamp = localStorage.getItem('timestamp');
    data.nonceStr = localStorage.getItem('nonceStr');
    data.signature = localStorage.getItem('signature');
    setWxConfig(data);
  } else {
    //如果过期了,请求后台获取
    let url = location.href.split('#')[0]; //获取锚点之前的链接,防止出现invalid signature错误
    wxSign({ url: url })
      .then(res => {
        console.log(res);
        if (res.code == 200) {
          localStorage.setItem('appId', res.data.appId);
          localStorage.setItem('timestamp', res.data.timestamp);
          localStorage.setItem('nonceStr', res.data.nonceStr);
          localStorage.setItem('signature', res.data.signature);
          localStorage.setItem('expireSignTime', res.data.expireTime);
          setWxConfig(res.data);
        } else {
          localStorage.removeItem('expireSignTime');
          Toast.fail('网络故障,请退出重新加载页面');
        }
      })
      .catch(error => {
        localStorage.removeItem('expireSignTime');
        Toast.fail('网络故障,请退出重新加载页面');
      });
  }
}

2:注入config配置

上面获取到后台的参数后,在页面使用wx.config接口注入权限验证配置

function setWxConfig(data) {
  console.log(data);
  wx.config({
    debug: false, // true是开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: data.appId, // 必填,公众号的唯一标识
    timestamp: data.timestamp, // 必填,签名的时间戳,后台生成的
    nonceStr: data.nonceStr, // 必填,签名的随机串,后台生成的
    signature: data.signature, // 必填,签名,后台生成的
    jsApiList: ['scanQRCode'] // 必填,需要使用的JS接口列表,scanQRCode是调用扫一扫二维码
  });
  wx.error(function(res) {
    localStorage.removeItem('expireSignTime');
    Toast.fail('网络故
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

微信调用jssdk全流程详解 的相关文章

  • php微信公众号code获取不到,微信公众号调取用户信息,遇到invalid code的问题

    使用了php php部分如下 code GET code userinfo getUserInfo code function getUserInfo code appid 1111111111 appsecret 111111111111
  • Redis与数据库一致性问题分析

    缓存已经在项目中被广泛使用 在读取缓存方面 大家没啥疑问 都是按照下图的流程来进行业务操作 但是在更新缓存方面 对于更新完数据库 是更新缓存呢 还是删除缓存 又或者是先删除缓存 再更新数据库 其实大家存在很大的争议 所以参考了网上一些资料对
  • Linux文件I/O编程

    文章目录 一 文件描述符 二 打开文件 三 创建文件 四 关闭文件 五 读取文件 六 向文件写入数据 七 设定文件偏移量 八 获取文件状态 九 创建和删除目录项 十 文件锁定 十一 建立文件和内存映射 十二 mmap 和 共享内存对比 I
  • React中CodeMirror插件的使用及封装

    目录 一 CodeMirror是什么 二 React中CodeMirror的基本使用介绍 一 引入CodeMirror 1 安装CodeMirror插件 2 引入 CodeMirror 插件 二 引入文件配置 三 关键属性解读 1 valu
  • hive 表中常用的 增加/修改/替换列操作

    1 语法 更新列 ALTER TABLE table name CHANGE COLUMN col old name col new name column type COMMENT col comment FIRST AFTER colu

随机推荐

  • C++ 仿函数(二)

    在上一篇里我们讲了仿函数是什么 以及一元谓词 二元谓词的概念 C 仿函数 一 小梁今天敲代码了吗的博客 CSDN博客 这篇是讲 内建函数对象 主要包括 算术仿函数 关系仿函数 逻辑仿函数 目录 一 算术仿函数 示例 二 关系仿函数 示例 举
  • windows 开机启动脚本(亲测可用)

    1 打开计划任务 2 创建任务 3 添加一个启动触发器 4 添加一个脚本操作 5 点击确认 输入登录管理员密码即可 重启试试吧
  • 部署 Exsi 7.0.3

    文章目录 1 下载介质 2 u盘引导安装启动盘 3 硬件连接 4 安装 EXSI 7 0 3 1 下载介质 下载 VMware VMvisor Installer 7 0U3l 21424296 x86 64 iso 安装 EXSI 7 0
  • vue H5页面跳转微信小程序以及生成二维码跳转小程序

    研究了两种H5跳转小程序的方法 同时携带参数 1 手机浏览器打开H5页面 点击按钮拉起微信小程序 2 H5页面上生成小程序二维码 手机微信扫码跳转目标小程序 为了开发方便 以上两种均借助了微信小程序云函数来实现 事前准备 在vue工程的in
  • Oracle数据库的导入&导出

    1 权限配置及导入导出 1 1 配置导入导出目录及设置相应权限 SQL gt select from dba directories dir where dir DIRECTORY NAME in DUMPDIR DATA PUMP DIR
  • 百万youtube高清视频数据集采集

    HD VILA 100M是什么 HD VILA 100M是一个大规模 高分辨率 多样化的视频语言数据集 有助于多模态表示学习 数据统计 该数据集共包含330万个视频 视频质量较高 均衡分布在15个类别中 下载 Download 您可以通过此
  • 详解34家银行对公账号编码规则及其编码分析

    1 工商银行 账号位数19位 地区代码4位 13为安徽 网点号4位 账户性质应用号2位 09基本户 19一般户 29专户 39临时户 账号顺序号7位 校验码2位 编码分析攻略 中国工商银行对公账户共19位 其中1 4位为地区代码 详见代码表
  • 树莓派教程 - 1.0 树莓派GPIO库wiringPi 点亮LED

    Git例程源码仓库 https github com ZhiliangMa raspberry git 电脑需要提前安装的工具 SSH 串口 终端神器 MobaXterm 官网下载链接 https mobaxterm mobatek net
  • java.sql.sQLException: No suitable driver found for jdbc:mysql

    用Maven构建父工程后 再搭建DAO模块 执行测试类测试StudentDao java查询数据库功能报错 定位到相应的类中 发现是数据库连接问题 之前我也遇到类似的问题 解决方案为 jdbc url jdbc mysql localhos
  • YOLO系列目标检测算法-Scaled-YOLOv4

    YOLO系列目标检测算法目录 文章链接 YOLO系列目标检测算法总结对比 文章链接 YOLOv1 文章链接 YOLOv2 文章链接 YOLOv3 文章链接 YOLOv4 文章链接 Scaled YOLOv4 文章链接 YOLOv5 文章链接
  • 主业工资5000,靠“爬虫技术”月入20000:会赚钱的人,从不靠拼命

    因为我们主行业的一个内卷以及薪资问题 现在已经有很多人都在从事一个副业 副业往往比主业更自由 轻松 甚至有的副业工资比他的一个主业工资还高 现在 只要你会python的爬虫技术 网上接单副业的项目更是多的供过于求 现在业界对Python爬虫
  • Python和OpenCV 提取图像特定目标区域-图像分割【原创】

    在OpenCV中 一般转换图像格式为HSV格式 默认格式为BGR 再进行指定颜色的提取 直接使用RGB提取颜色不推荐 HSV格式的介绍 HSV 为色相 饱和度 明度 1 将一副图像从rgb颜色空间转换到hsv颜色空间 hsv cv2 cvt
  • <Visual Studio 2019安装及环境配置教程>

    目录 1 Visual Studio 2019下载安装 1 1 进入官网 1 2 选择所需Visual Studio 2019安装包 1 3 Visual Studio 2019 版本说明 1 4 点击下载 安装 1 5 登录账户 1 6
  • 2022年华中杯数学建模挑战赛B题量化投资问题求解全过程文档及程序

    2022年华中杯数学建模 B题 量化投资问题 原题再现 量化投资是指通过数量化方式及计算机程序化发出买卖指令 以获取稳定收益为目的的交易方式 投资者通过数据分析探索市场运行规律 并预测市场走势 从而进行决策交易 随着大数据技术的发展 量化投
  • windows11安装wsl

    wsl2 简单点说 就是可以在Windows上用Linux 并且支持docker 管理员身份打开powerShell win x 输入下面命令 wsl install dism exe online enable feature featu
  • 算法(C++)金币阵列问题

    题目描述 有m n m 100 n 100 个金币在桌面上排成一个m 行n 列的金币阵列 每一枚金币或正面朝上或背面朝上 用数字表示金币状态 0 表示金币正面朝上 1 表示背面朝上 金币阵列游戏的规则是 1 每次可将任一行金币翻过来放在原来
  • 从mpeg ts文件中提取I帧(3):pes包的解析

    本系列的第一篇文章讲解了如何把ts包拼装为pes包 本章主要讲解如何解析pes包 一 pes包的格式如下图所示 二 相关字段解析 packet start code prefix 标识包起始端的包起始码 固定值为 0000 0000 000
  • 沟通——职场生存的润滑剂

    我们每天都有和别人沟通互动 但经常不经意地话不投机或语出伤人都不自知 在工作中 沟通也是必不可少的 经常听到企业的领导强调沟通 上下级沟通 同事间沟通 的确 沟通可以大大提升工作效率 沟通是一种技能 是一个人对本身知识 表达能力 行为能力的
  • 嵌入式 Linux 系统在线升级策略-固件升级-升级固件-系统升级

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额1元起步 多少随意 锋影 email 174176320 qq com 嵌入式 Linux 系统在线升级策略 对于运行 Linux 系统的嵌入式产品 很多时候我们发
  • 微信调用jssdk全流程详解

    微信调用jssdk全流程详解 系统框架使用的是前后端分离 前端使用vant 后端是springboot 一 网页授权的时序图 二 公众号配置 1 绑定域名 登录微信公众平台进入 公众号设置 的 功能设置 里填写 JS接口安全域名 也就是这样