微信公众号扫码登录

news2025/2/25 8:28:59

 开发前准备

微信公众平台微信公众平台,给个人、企业和组织提供业务服务与用户管理能力的全新服务平台。icon-default.png?t=N7T8https://mp.weixin.qq.com/申请注册个服务号,并且需要微信认证,注意个人公众号无法开通这个功能,因为个人就不给做微信认证。

但如果只是想跑下流程,试下这个功能,可以通过

微信公众平台icon-default.png?t=N7T8https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index开个测试的公众账号跑通流程

测试号跟正式号有个小的差别在于:正式号在获取access_token之前,需要配置服务器的ip白名单

开发流程

主要是3个点,第一个是通过appid和secret获取access token,用于第二步生成带参数的二维码,第三步就是在服务端监听推送事件,看看有没有人扫码。 

(1)获取Access token

微信开放文档微信开发者平台文档icon-default.png?t=N7T8https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

主要是拼接这么个get请求

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

curl "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET"

(2)生成带参数的二维码

微信开放文档微信开发者平台文档icon-default.png?t=N7T8https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html

 按文档描述的先拼接个post请求获取ticket

curl -X POST -H "Content-Type: application/json" -d '{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}' "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN"

​ 得到ticket后把ticket给到客户端,客户端用ticket拼出个二维码图片的url,展示出来即可

https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQEV8DwAAAAAAAAAAS5odH

(3)接收事件推送

配置接收事件推送的地址

这里的url就是接收推送的url,token是随便填。但你直接配置,都会出现配置失败,因为配置的时候他就去校验这个地址跟这个token是否准确。

所以在配置之前,你需要让这个地址的get请求符合

接入概述 | 微信开放文档

这里面的要求,让微信信任这个接口。

<?php
if ($_SERVER['REQUEST_METHOD'] === 'Get'){//配置接入时验证
$signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
	$echostr = $_GET["echostr"];
	
    $token = "xxxxx";
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    
    if( $tmpStr == $signature ){
        print($echostr);
    }else{
        print("验证失败!");
    }
}
if ($_SERVER['REQUEST_METHOD'] === 'POST'){//推送业务处理
	 $rawPostData = file_get_contents('php://input');

	// 将内容写入文件
	print( $rawPostData);
}

?>

推送的时候也是往这个地址以post的方式推过来,具体的内容参考微信的

关注/取消关注事件 | 微信开放文档

对收到推送的xml进行解析,实现登录

一些微信自带的测试工具

微信调试工具

微信公众平台接口调试工具

参考:

node.js+vue+mongodb实现通过微信公众号扫码登录(完整易懂)_vue扫码登录功能-CSDN博客

前端vue+后台node实现获取微信用户基本信息+调用微信JS-SDK(上篇)_获取微信用户信息-CSDN博客

https://www.cnblogs.com/YangRoc/p/17186129.html#%EF%BC%882%EF%BC%89%E7%94%9F%E6%88%90%E5%B8%A6%E5%8F%82%E6%95%B0%E7%9A%84%E4%BA%8C%E7%BB%B4%E7%A0%81 

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

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

相关文章

Python | Leetcode Python题解之第350题两个数组的交集II

题目&#xff1a; 题解&#xff1a; class Solution:def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:nums1.sort()nums2.sort()length1, length2 len(nums1), len(nums2)intersection list()index1 index2 0while index1 < length1 and ind…

LLM 中 100K 上下文窗口背后的秘密

最近有几则关于新型大型语言模型 (LLM) 的公告&#xff0c;这些模型可以使用极大的上下文窗口&#xff0c;例如65K 个标记&#xff08;MosaicML 的MPT-7B-StoryWriter-65k &#xff09;甚至100K 个标记&#xff08; Antropic 的引入 100K 上下文窗口&#xff09;。在 Palm-2技术…

C++ | Leetcode C++题解之第354题俄罗斯套娃信封问题

题目&#xff1a; 题解&#xff1a; class Solution { public:int maxEnvelopes(vector<vector<int>>& envelopes) {if (envelopes.empty()) {return 0;}int n envelopes.size();sort(envelopes.begin(), envelopes.end(), [](const auto& e1, const aut…

一招制胜!Spring Boot、Prometheus和Grafana三剑合璧,称霸监控领域!

1. 添加Prometheus和Actuator依赖 在pom.xml中添加Spring Boot Actuator和Micrometer Prometheus依赖&#xff1a; <dependencies> <!--监控功能Actuator--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

光伏电站气象站:提升电站效益,智能监控

随着全球对可持续发展和清洁能源需求的日益增长&#xff0c;光伏发电作为一种清洁、可再生的能源形式&#xff0c;正逐步成为能源结构转型的重要支柱。然而&#xff0c;光伏系统的发电效率直接受到气候条件的影响&#xff0c;如光照强度、温度、湿度、风速及风向等。因此&#…

网上商城购物系统

TOC springboot0752网上商城购物系统 第1章 绪论 1.1背景及意义 随着社会的快速发展&#xff0c;计算机的影响是全面且深入的。人们生活水平的不断提高&#xff0c;日常生活中人们对网上商城购物系统方面的要求也在不断提高&#xff0c;购物的人数更是不断增加&#xff0c;…

Kubernetes--深入Pod

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 出自B站博主教程笔记&#xff1a; ​​​​​​​完整版Kubernetes&#xff08;K8S&#xff09;全套入门微服务实战项目&#xff0c;带你一站式深入…

什么是BOM,有哪些分类?

一、什么是BOM&#xff1f; BOM是物料清单的缩写&#xff0c;也称为产品结构表或产品结构树。 BOM的作用主要是通过计算机辅助企业生产管理&#xff0c;使计算机能够识别企业所制造的产品构成和所有要涉及的物料。 在制造业中&#xff0c;BOM是一份详细记录制造某个产品时所…

“AI+Security”系列第2期(五):大模型自身安全

近日&#xff0c;由安全极客、Wisemodel 社区与 InForSec 网络安全研究国际学术论坛联合主办的 “AISecurity” 系列第二期 —— 对抗&#xff01;大模型自身安全的攻防博弈线上活动如期举行。 在圆桌环节&#xff0c;君同未来创始人兼 CEO 韩蒙、前阿里云高级安全专家郑瀚、C…

聚星文社——绘唐科技Ai推文软件

聚星文社——绘唐科技Ai推文软件 聚星文社--绘唐科技Ai推文软件https://iimenvrieak.feishu.cn/docx/ZhRNdEWT6oGdCwxdhOPcdds7nof AI推文软件是一种利用人工智能技术帮助用户自动生成推文内容的工具。 该软件会分析用户提供的相关信息和目标群体&#xff0c; 然后使用机器学习…

机器学习:决策树之回归树的原理

目录 前言 一、回归树样例 二、回归树原理 三、原理实现步骤 1.选择特征和分裂点 2.递归分裂 3.生成叶子节点 四、进行预测 总结 前言 决策树回归&#xff08;Decision Tree Regression&#xff09;是一种用于预测连续目标变量的回归模型。与分类决策树类似&#xff0…

RISC-V中的acquire和release

RISC-V中&#xff0c;有两类原子操作指令&#xff1a; ⚫ 内存原子操作&#xff08;AMO&#xff09; ⚫ 加载保留/条件存储&#xff08;load reserved / store conditional&#xff09; 此处我们先看下LR和SC指令&#xff1b; 引入的原因 编程语言的开发者会假定体系结构提…

docker-compose示例:nacos单机部署

前面咱们完成了docker基本环境搭建&#xff0c;下面就趁热打铁来练习下nacos的单机部署。 参考官方文档&#xff1a;Nacos Docker 快速开始。考虑到官方搭建教程过于精炼&#xff0c;笔者把搭建过程分享给大家。 文章目录 下载最新部署源码解决网络导致的sql文件下不下来docke…

保姆级-C#与Halcon的窗体界面展示阈值分割图像教程(机器视觉保姆级教程)

经历上一篇《零基础小白实现C#调用halcon dll的过程&#xff0c;并测试程序证明C#halcon联合开发成功》的发布已经过去三天啦&#xff0c; 零基础小白实现C#调用halcon dll的过程&#xff0c;并测试程序证明C#halcon联合开发成功_添加halcondotnet.dll-CSDN博客 在友友的催更下…

树链剖分学习笔记

前言 树链剖分这个东西呢&#xff0c;简而言之就是把一些树上的操作转换成线性的问题。那看起来平平无奇的树链剖分&#xff0c;为什么很多人就是喜欢使用他呢&#xff0c;那想必肯定是有原因的&#xff0c;我们先卖个关子&#xff0c;先看一下树链剖分怎么写&#xff0c;原理…

DMA(hal库)

DMA&#xff08;直接存储器存取&#xff09; DMA&#xff08;Direct Memory Access&#xff0c;直接内存访问&#xff09;是一种允许外设或内存之间直接传输数据的技术&#xff0c;而无需 CPU 参与。这能显著提高数据传输效率并减少 CPU 的负担。 使用 DMA 通常涉及以下步骤&…

图片转PDF怎么转?教你3种快捷方便的jpg转pdf方法

图片文件以及PDF文档已经是我们工作当中不可或缺的一部分&#xff0c;我们在一些商务合作的场景下经常需要把拍摄下来的合同、企划书、画册等图片内容转换为PDF格式后再发送&#xff0c;这样能够极大程度的保证文件的安全性&#xff0c;那么图片应该如何转换成PDF文件呢?今天来…

如何制作统信UOS启动盘?

如何制作统信UOS启动盘&#xff1f; 一、下载UOS系统安装镜像二、在UOS系统环境下制作启动盘步骤一&#xff1a;准备U盘步骤二&#xff1a;打开启动盘制作工具步骤三&#xff1a;选择ISO镜像文件步骤四&#xff1a;选择安装介质并格式化步骤五&#xff1a;等待制作完成 三、在W…

(LLM) 很笨

大型语言模型 (LLM) 并非你所想的那样。你被骗了。LLM 很笨&#xff0c;非常笨。事实上&#xff0c;它们更接近数据库&#xff0c;而不是人类。 这就是为什么人工智能仍然处于征服智能的第一步……如果有的话。 终极煤气灯效应 建立前沿人工智能的成本很高。前沿人工智能需要大…

Stable Diffusion 使用详解(8)--- layer diffsuion

背景 layer diffusion 重点在 layer&#xff0c;顾名思义&#xff0c;就是分图层的概念&#xff0c;用过ps 的朋友再熟悉不过了。没使用过的&#xff0c;也没关系&#xff0c;其实很简单&#xff0c;本质就是各图层自身的编辑不会影响其他图层&#xff0c;这好比OS中运行了很多…