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

微信网页授权真实项目实例微信网页授权获取用户 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • use ida6.8 + windbg on win10[通俗易懂]

    use ida6.8 + windbg on win10[通俗易懂]序用ida6.8pro+windbgx64调试x64的pip.exe,说找不到windbg.我已经装了一个从csdn下载的windbgx64-v6.x.找资料,说要修改ida.cfg,添加IDA环境变量DBGTOOLS为x86版的windbg路径。尝试在dbg_windbg.cfg中添加DBGTOOLS,IDA启动时说在dbg_windbg.cfg中的DBGTOOLS环境

    2022年6月2日
    48
  • Linux下的crontab定时执行任务命令详解

    Linux下的crontab定时执行任务命令详解

    2021年10月22日
    51
  • java 调用win32 api 学习总结

    java 调用win32 api 学习总结java使用JInvoke调用windowsAPI使用jinvoke调用windowsAPI。jna使用比较麻烦,需要写c代码和参数转换,jinvoke的使用就像jdk中的包一样。 官网使用参考:http://www.jinvoke.com/calling-the-win32-api-from-java 一个弹出框的例子(这种代码用于调用任何dll,不只是windows的

    2022年10月9日
    5
  • pycharm 2021.11.3激活补丁【2021.10最新】[通俗易懂]

    (pycharm 2021.11.3激活补丁)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~2…

    2022年3月29日
    72
  • Python基础知识归纳「建议收藏」

    Python基础知识归纳「建议收藏」Python基础教程Python基础教程Python简介Python环境搭建Python中文编码Python基础语法Python变量类型Python运算符Python条件语句Python循环语句PythonWhile循环语句Pythonfor循环语句Python循环嵌套Pythonbreak语句Python…

    2022年10月16日
    1
  • 边缘检测算子Canny原理概述并利用OpenCV的库函数Canny()对图像进行边缘检测[通俗易懂]

    边缘检测算子Canny原理概述并利用OpenCV的库函数Canny()对图像进行边缘检测[通俗易懂]图像边缘检测的概念和大概原理可以参考我的另一篇博文,链接如下:https://blog.csdn.net/wenhao_ir/article/details/51743382本篇博文介绍边缘检测算子Canny,并利用OpenCV的库函数Canny()对图像进行边缘检测。Canny算子是JohnCanny在1986年发表的论文中首次提出的边缘检测算子,该算子检测性能比较好,应用广泛。Canny算法被推崇为当今最优的边缘检测的算法。Canny算子进行边缘检测的原理和步骤如下:⑴消除噪声。边缘

    2022年5月29日
    39

发表回复

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

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