微信网页授权真实项目实例

微信网页授权真实项目实例微信网页授权获取用户 OpenID 文章目录微信网页授权获取用户 OpenID pushpin 微信网页授权的前提 boom 网页授权域名配置 boom 前端获取 Code 前端拉起微信 OAuth2 0 授权解析 codecode 注意事项 boom 后端根据 code 获取用户 OpenID 通过 code 换取网页授权根据 access tokena 获取用户信息 access token 注意事项 boom 详情以及错误信

微信网页授权获取用户OpenID

?微信网页授权的前提

  • 通过微信认证的微信号或者申请微信测试号
    ?传送门:测试号申请
  • 必须要有自己的服务器以便和微信后台交互
  • 公众平台接口调用仅支持80端口。(网页授权获取OpenID实测无此限制)

?网页授权域名配置

-操作步骤 :

登录微信后台

点击接口权限

网页授权

修改

网页域名授权

下载配置文件

将文件放在绑定域名服务器根目录

接口权限点击修改网页授权域名配置
在这里插入图片描述

  • 点击保存如果微信后台没有报错说明域名配置成功

?前端获取Code

前端拉起微信OAuth2.0授权

直接看图:

在这里插入图片描述在这里插入图片描述

  • 关键字段说明
字段 来源 注释
appid 微信公众后台 微信公众号唯一标示
redirect_uri 开发者 希望用户在授权之后跳转进入的页面,需要进行encode编码
response_type 直接写code
scope snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
state 开发者 其它网页需要但微信无法提供的参数,由开发者自行设置

解析code

https://open.weixin..com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

        当用户点击以上链接之后,一旦用户同意授权用户将跳转到redirect_uri指向的地址,即http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php(url经过 urlEncode 编码)这是前端路径会携带code参数,如果设置了state参数同时还会携带state参数。
        用户跳转的地址:http://nba.bluewebgame.com/oauth_response.php?code=Code&state= State
        此时前端只需要将code参数从页面地址中解析出来并传给后端即可。

code 注意事项

  • 同一code只能使用一次,使用后随即无效
  • 同一code只有5分钟时间,超时需要重新获取。(即需要用户再次点击授权链接)

?后端根据code获取用户OpenID

通过code换取网页授权

        获取code后,请求以下链接获取access_token: https://api.weixin..com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

  • 请求参数说明
    在这里插入图片描述
  • 返回参数说明:

在这里插入图片描述至此,已经获取到微信用户的OpenID了,若需要获取用户昵称和头像等信息继续往下请求

根据access_tokena获取用户信息

  • 请求参数说明
    在这里插入图片描述
  • 返回参数说明
    在这里插入图片描述 至此获取用户OpenID和基本信息流程结束

access_token注意事项

  • 获取的token2小时之内有效,过期需要重新获取
  • 微信限制了获取token的频次,不允许频繁获取,因此开发者最好将token在后台缓存起来,待token快过期时再更新token。

?详情以及错误信息请查验微信开发者文档–>微信网页开发

?传送门:微信开发者文档

? 通过微信公众号发送模板消息

  • 需要目标用户已经关注了当前公众号
  • 后台推送模板消息需要在微信公众号后台配置ip 白名单,主要是获取token 是需要白名单校验

发送模板消息

  • url : https://api.weixin..com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
  • method : post
  • post参数见下方代码:
 { "touser":"OPENID", //接收消息用户的openid "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", //模板消息id "url":"http://weixin..com/download", //消息外链 "miniprogram":{ //设置跳转小程序 "appid":"xiaochengxuappid12345", //小程序appid "pagepath":"index?foo=bar" //跳转小程序的页面地址 }, "data":{ //发送消息字段,需要和模板消息字段对应 "first": { "value":"恭喜你购买成功!", "color":"#" }, "keyword1":{ "value":"巧克力", "color":"#" }, "keyword2": { "value":"39.8元", "color":"#" }, "keyword3": { "value":"2014年9月22日", "color":"#" }, "remark":{ "value":"欢迎再次购买!", "color":"#" } } } 
  • 备注:
  • 1.若要实现小程序跳转,需要在微信公众平台将小程序和微信公众号进行绑定,否则无法跳转。
  • 2.目标小程序必须是已经正式上线,不能是开发版或者是体验版。

微信公众号与小程序进行绑定

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232917.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月31日 下午6:01
下一篇 2025年8月31日 下午6:22


相关推荐

  • 软件测试基础知识大全_软件测试主要学的内容有哪些

    软件测试基础知识大全_软件测试主要学的内容有哪些一、软件测试概述1、软件缺陷软件缺陷:又称之为“Bug”。即计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。缺陷的表现形式:软件没有实现产品规格说明书所要求的功能模块;软件中出现了产品规格说明指明不应该出现的错误;软件实现了产品规格说明中没有提到的功能需求;软件没有实现虽然产品规格说明没有明确提及但应该实现的目标;软件难以理解、不易使用、运行缓慢、用户体验不友好;产生软件缺陷的原因:需求不清晰;系统结构较为复杂;对程序逻辑路径或者数据范围考虑不全面

    2026年4月15日
    16
  • Sobel 算子结构

    Sobel 算子结构Sobel算子结构

    2022年7月14日
    18
  • setContentView剖析[通俗易懂]

    setContentView剖析[通俗易懂]1、setContentView的作用是将View加载到根view之上,这样当显示view时,先显示根view,然后在显示子view,以此类推,最终将所有view显示出来。2、setContentView必须要放在findviewbyid之前,因为view在加载之前是无法引用的。3、setContentView最本质的作用是为要显示的view分配内存。4、act

    2022年6月26日
    33
  • 如何参与一个 GitHub 开源项目?

    如何参与一个 GitHub 开源项目?最近一年开源项目特别的热 很多技术大会或论坛都以开源项目作为主题进行探讨 可见这是一种趋势 而 Github 作为开源项目的著名托管地 可谓无人不知 越来越多的个人和公司纷纷加入到 Github 的大家族里来 为开源尽一份绵薄之力 对于个人来讲 你把自己的项目托管到 Github 上并不表示你参与了 Github 开源项目 只能说你开源了自己的项目 可以任别人自由下载 那么该如何参与 Github 的开源项目呢 相信很多人都有这方面的疑问 网上也有一些参差不齐的教程教大家如何 pullrequest 如何 commit 等

    2026年3月18日
    2
  • 7628刷breed_H大的最新版Breed不死u-boot

    7628刷breed_H大的最新版Breed不死u-boot文件名说明 BreedEnter exeBreed 启动中断工具 实现免按复位键进入 Web 刷机模式 breed mt7620 reset1 binMT7620A MT7620N 全通用 波特率 57600 复位键 GPIO 1breed mt7620 reset2 binMT7620A MT7620N 全通用 波特率 57600 复位键 GPIO 2breed mt7620 reset11

    2026年3月19日
    2
  • windows cmd定时关机命令

    windows cmd定时关机命令windowscmd定时关机命令#7200为倒计时关机时间,单位秒shutdown-S-T7200

    2022年5月14日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号