【二】微信公众号之扫码关注后自动登录

​ 原来公司的官网就支持账号密码、手机验证码、QQ扫码授权、微信扫码授权等多种登录方式。昨天分享了微信公众号之扫码登录,今天接到需求说要为了咋们的公众号涨粉,要扫码后关注公众号后才可以登录,我一想这不是耍流氓嘛,登个网站还非得我关注。。。算了,产品爸爸说了算。

一、准备工作

查阅了微信公众号开发文档,发现可以用微信生成带参数二维码实现。看看人家的介绍

在这里插入图片描述

这不就是我们这个需求准备的接口嘛😏

二、整个流程说明

先来看看整个流程的时序图

在这里插入图片描述

然后咋们来捋一下整个流程

  1. 先是用户来访问咋们的网站,然后点击微信登录。
  2. 这是后我们肯定是要给他一个二维码扫,肯是需要去请求微信开放平台的,先获取token,然后获取我们想要的二维码给用户。
  3. 然后用户扫码关注后,我们就会收到微信的回调事件,我们只需要处理这个回调事件就知道这个用户登录了。然后获取该用户的基本信息完成登录。

这里有的小伙伴就迷糊了,会想我收到回调怎么知道是谁登录了,这个二维码扫码的页面怎知道登录成功了没啊。这里我们需要用到带参二维码里的场景值,只要我们在场景值中放入一个uuid就可以区分了,接受到回调的时候就把uuid作为key缓存起来,然后在登录页面去一直轮询访问这个uuid对应的是否有人登录就行了。是不是很简单。哈哈哈哈

三、具体接口

  • 第一步:生成临时带参二维码

    http请求方式: POST URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN POST数据格式:json POST数据例子:{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}} 或者也可以使用以下POST数据创建字符串形式的二维码参数:{"expire_seconds": 604800, "action_name": "QR_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}
    

    参数说明

    参数说明
    expire_seconds该二维码有效时间,以秒为单位。 最大不超过2592000(即30天),此字段如果不填,则默认有效期为30秒。
    action_name二维码类型,QR_SCENE为临时的整型参数值,QR_STR_SCENE为临时的字符串参数值,QR_LIMIT_SCENE为永久的整型参数值,QR_LIMIT_STR_SCENE为永久的字符串参数值
    action_info二维码详细信息
    scene_id场景值ID,临时二维码时为32位非0整型,永久二维码时最大值为100000(目前参数只支持1–100000)
    scene_str场景值ID(字符串形式的ID),字符串类型,长度限制为1到64

    返回说明

    正确的Json返回结果:

    {"ticket":"gQH47joAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL2taZ2Z3TVRtNzJXV1Brb3ZhYmJJAAIEZ23sUwMEmm
    3sUw==","expire_seconds":60,"url":"http://weixin.qq.com/q/kZgfwMTm72WWPkovabbI"}
    
    参数说明
    ticket获取的二维码ticket,凭借此ticket可以在有效时间内换取二维码。
    expire_seconds该二维码有效时间,以秒为单位。 最大不超过2592000(即30天)。
    url二维码图片解析后的地址,开发者可根据该地址自行生成需要的二维码图片
  • 第二步:通过ticket换取二维码

    获取二维码ticket后,开发者可用ticket换取二维码图片。请注意,本接口无须登录态即可调用。

    请求说明

    HTTP GET请求(请使用https协议)https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET 提醒:TICKET记得进行UrlEncode

    返回说明

    ticket正确情况下,http 返回码是200,是一张图片,可以直接展示或者下载。

    HTTP头(示例)如下: Accept-Ranges:bytes Cache-control:max-age=604800 Connection:keep-alive Content-Length:28026 Content-Type:image/jpg Date:Wed, 16 Oct 2013 06:37:10 GMT Expires:Wed, 23 Oct 2013 14:37:10 +0800 Server:nginx/1.4.1
    

    错误情况下(如ticket非法)返回HTTP错误码404。

  • 第三步:扫描带参数二维码事件

    用户扫描带场景值二维码时,可能推送以下两种事件:

    1. 如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。
    2. 如果用户已经关注公众号,则微信会将带场景值扫描事件推送给开发者。

    1. 用户未关注时,进行关注后的事件推送

    推送XML数据包示例:

    <xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[FromUser]]></FromUserName><CreateTime>123456789</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[subscribe]]></Event><EventKey><![CDATA[qrscene_123123]]></EventKey><Ticket><![CDATA[TICKET]]></Ticket>
    </xml>
    

    参数说明:

    参数描述
    ToUserName开发者微信号
    FromUserName发送方帐号(一个OpenID)
    CreateTime消息创建时间 (整型)
    MsgType消息类型,event
    Event事件类型,subscribe
    EventKey事件KEY值,qrscene_为前缀,后面为二维码的参数值
    Ticket二维码的ticket,可用来换取二维码图片

    2. 用户已关注时的事件推送

    推送XML数据包示例:

    <xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[FromUser]]></FromUserName><CreateTime>123456789</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[SCAN]]></Event><EventKey><![CDATA[SCENE_VALUE]]></EventKey><Ticket><![CDATA[TICKET]]></Ticket>
    </xml> 
    

    参数说明:

    参数描述
    ToUserName开发者微信号
    FromUserName发送方帐号(一个OpenID)
    CreateTime消息创建时间 (整型)
    MsgType消息类型,event
    Event事件类型,SCAN
    EventKey事件KEY值,是一个32位无符号整数,即创建二维码时的二维码scene_id
    Ticket二维码的ticket,可用来换取二维码图片

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

综合实验 (NAT,ACL等配置)

一、实验要求 1、AR6理解为ISP设备&#xff0c;所连接的两个网段为公网&#xff1b;R1-R5构建为一个私有的局域网&#xff1b; 2、AR6上只能进行ip地址配置&#xff0c;之后不得对该路由器进行其他任何配置 3、公网范围IP地址已经指定&#xff0c;剩余R1-R5整个私网使用192.…

NAT-HCIA阶段综合实验

拓扑结构&#xff1a; 要求 1、ISP路由器只能配置IP地址&#xff0c;之后不得进行其他配置 2、内部整个网络基于192.168.1.0/24进行地址规划 3、R1、R2之间启动OSPF协议&#xff0c;单区域 4、PC1~PC4自动获取IP地址 5、PC1不能telnetR1&#xff0c;PC1外的其他内网PC可以t…

Windows PC版微信内置浏览器调试

需求背景 有时候你会可能遇到这种情况&#xff0c;因为微信的限制&#xff0c;一些网页只能用微信内置的浏览器打开&#xff0c;这就导致有时候一些生产环境的问题&#xff0c;不方便排查。下面将介绍如何通过老版本的PC端微信&#xff0c;打开微信内置浏览器调试。本教程提到…

Nature子刊:高通量蛋白质组学方法学综述

在后基因组时代&#xff0c;蛋白质组学在生物医学研究中发挥着重要作用。近日&#xff0c;Nature子刊《Laboratory Investigation》发表了一篇高通量蛋白组的mini-review&#xff0c;概述了高通量蛋白质组学技术、统计和算法的进展。 蛋白质组学作为蛋白质组实验和数据分析的结…

关于windows版本电脑版微信更新后无法显示好友头像以及接收图片和表情的解决方案

关于windows版本电脑版微信更新后无法显示好友头像以及接收图片和表情的解决方案 最近一段时间一直被windows电脑版微信升级之后好友头像和接受的图片以及表情无法显示而困扰&#xff0c;网上也找了许多方法解决&#xff0c;但是都没能解决这个问题&#xff0c;有的说保持网络…

tmall.product.template.get( 产品接口 )

&#xffe5;免费必须用户授权 产品模板获取接口&#xff0c;对于非关键属性的类目&#xff0c;发布达尔文(监管)产品时&#xff0c;必须先根据类目获取产品模板。 产品模板定义产品发布需要的类目属性&#xff0c;包括&#xff1a; 关键属性:关键属性可以在类目上不存在。不…

淘宝获得商品详情接口调用展示

仅以以下的调用数据作为展示案例 更多API调用示例展示及获取Key和secret请移步文章内容以下查看 请从以下链接进入获取&#xff1a; ​​​​​​【登录 - 跨境电商平台接口提供商 数据采集公司 数据接口定制服务 企业级数据服务商】 { "item": { &q…

速卖通,aliexpress,关键词搜索,获取商品数据,销量,评价,价格,上架时间,图片,openpyxl 写入excel中

咋们先来看看运行结果 下面来上代码&#xff0c;完整代码&#xff0c;复制就可以运行的。不懂得或报错的&#xff0c;请留言。 # -*- coding:utf-8 -* import requests import re import os import json from fake_useragent import UserAgent import openpyxl from openpyxl.d…

Lazada 平台:产品详情描述页面的正确编辑方法是什么?

产品详情页面是Lazada店铺展示产品的其中一部分&#xff0c;早已愈来愈遭受卖家的着重点&#xff0c;不论是提升转换率&#xff0c;或是提高全部店面的访问量&#xff0c;产品详情页面都能具有非常大的促进作用。 一开始要确立详情页面是要向消费者介绍产品特点&#xff0c;展示…

购物商城实现点击商品列表某商品,进入其详情页!

一、实现思路 1.如何实现列表页面商品点击进入详情页面。 首先我们需要把这个商品的id带给他。 methods: {gotolink(id) {this.$router.push({path: /Detailed/,query: {id: Number.prototype.toString.call(id)}});}} 在商品详情页拼接一下 created() {let _that this;th…

如何生成api接口获取宝贝商品详情,商品详情接口,产品详情

API (Application Programming Interface)是指应用程序接口&#xff0c;它是一种通过编写一组统一的规则&#xff0c;开发一个软件来与其他应用程序进行通讯的技术。API可以方便应用程序之间的交流和数据共享&#xff0c;以及增强应用程序的功能。 在现代应用程序中&#xff0…

lazada商品详情采集接口 商品列表接口 商品数据获取 测试实例分享

Lazada&#xff08;来赞达&#xff09;&#xff0c;东南亚地区最大的在线购物网站之一。获得德国创业孵化器RocketInternet桑威尔兄弟(SamwerBrothers)支持&#xff0c;Lazada的目标主要是印尼、马来西亚、菲律宾以及泰国用户。 item_get-获得lazada商品详情 这次尝试通过API…

新版开运网运势测算网站源码 支持微信/支付宝H5支付 支持分销代理 可封装APP

源码介绍 我在外面花钱购买的某站VIP资源&#xff0c;就是那种搬砖站&#xff0c;买来没时间调试发给大家看看吧&#xff0c;喜欢的就下去玩玩&#xff01; 支持微信/支付宝H5和电脑端扫码支付、手机端可以调起微信/支付宝应用支付 支持后台设置价格、后台设置支付接口信息 支持…

爬取星座运势数据并进行词频分析

试着自己做了下爬虫&#xff0c;从星座屋网站爬取十二星座30天的运势数据。 import requests from bs4 import BeautifulSoup import pandas as pd#获取12星座的网址 urllhttp://www.xzw.com rrequests.get(urlhttp://www.xzw.com/fortune/aries/) soupBeautifulSoup(r.text,l…

今天应该去买彩票的~

刚刚CSDN Blog登录&#xff0c;验证码居然是88888&#xff0c;特开一帖&#xff0c;以作纪念&#xff5e;

体彩 超级大乐透(C++) 测测你的中奖概率

随机购买n注彩票&#xff0c;或者手动输入彩票数字&#xff0c;看看你的幸运值如何&#xff1f; 对体彩超级大乐透的前区5个数字和后区2个数字进行区分&#xff0c;前区&#xff08;1-35&#xff09;&#xff0c;后区&#xff08;1-12&#xff09;&#xff0c;避免错误输入&…

彩票中奖率的真相:用 JavaScript 看透彩票背后的随机算法

原本这篇文章是打算叫「假如我是彩票系统开发者」&#xff0c;但细想一下&#xff0c;如果在文章中引用太多的 JavaScript 的话&#xff0c;反而不是那么纯粹&#xff0c;毕竟也只是我的一厢情愿&#xff0c;彩票开发也不全如本文所讲&#xff0c;有所误导的话便也是得不偿失了…

彩票中奖概率计算过程

周六周末无聊&#xff0c;想着买彩票&#xff0c;万一中奖了就不用上班啦&#xff0c;哈哈。所以就计算了一下中奖概率。 中奖规则&#xff1a; 一等奖&#xff1a;投注号码与当期开奖号码全部相同&#xff08;顺序不限&#xff0c;下同&#xff09;&#xff0c;即中奖&#…

使用 ChatGPT 进行研究的先进技术

在这篇文章中&#xff0c;您将探索改进您研究的先进技术。尤其&#xff0c; 分析和解释研究数据进行文献综述并找出研究差距废话不多说直接开始吧&#xff01;&#xff01;&#xff01; 分析和解释研究数据 一家小企业主希望分析客户满意度数据以改善客户服务。他们使用包含 10…

认真聊聊中断(软中断)

文章目录 软中断与硬中断很像软中断的守护进程注册软中断向量表触发一次软中断总结 前面认认真真聊聊中断&#xff0c;其实讲的都是硬中断&#xff0c;注意是硬中断不是硬件中断哦&#xff0c;硬中断的概念更大。 硬中断包括中断、异常以及 INT 指令这种软件中断&#xff0c;整…