当前位置: 首页 > news >正文

微信网页授权回调地址放多个参数的方法

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

跳转后地址 redirect_uri/?code=CODE&state=STATE。

redirect_uri如果不进行urlencode编码, 跳转后地址只能拿到一个参数。
如果要放置多个参数, 就按照文档上对其进行urlencode进行编码。

注: 如果有参数名为openId,跳转后地址栏是拿不到的

微信文档微信网页授权回调地址放多个参数的方法微信文档


用户同意授权,获取code

在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(已认证服务号,默认拥有scope参数中的snsapi_base和snsapi_userinfo 权限),引导关注者打开如下页面:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。

尤其注意:由于授权操作安全等级较高,所以在发起授权请求时,微信会对授权链接做正则强匹配校验,如果链接的参数顺序不对,授权页面将无法正常访问

参考链接(请在微信客户端中打开此链接体验):

scope为snsapi_base:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect

scope为snsapi_userinfo:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx807d86fb6b3d4fd2&redirect_uri=http%3A%2F%2Fdevelopers.weixin.qq.com&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

尤其注意:跳转回调redirect_uri,应当使用https链接来确保授权code的安全性。

参数说明

参数是否必须说明
appid公众号的唯一标识
redirect_uri授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
response_type返回类型,请填写code
scope应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
state重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
#wechat_redirect无论直接打开还是做页面302重定向时候,必须带此参数
forcePopup强制此次授权需要用户弹窗确认;默认为false;需要注意的是,若用户命中了特殊场景下的静默授权逻辑,则此参数不生效

下图为scope等于snsapi_userinfo时的授权页面:

用户同意授权后

如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。

通过获取url参数获取code 换取openid

 

http://www.lryc.cn/news/468962.html

相关文章:

  • 相机工作距离计算
  • Pandas模块之垂直或水平交错条形图
  • ArcGIS必会的选择要素方法(AND、OR、R、IN等)位置选择等
  • 快速创建一个微信小程序,详细步骤以及示范程序代码
  • 【继承】讲解
  • 无人机之低空管控技术
  • 探索 DevOps:从概念到实践
  • 联通国际云视频:高清、稳定、易用的云端会议平台
  • 表达式求值(2020cspj)
  • 算法的学习笔记—数组中只出现一次的数字(牛客JZ56)
  • 《Pyhon入门:07 map与filter函数的常用用法》
  • 基于vue框架的的高校消防设施管理系统06y99(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • ffmpeg视频滤镜:定向模糊-dblur
  • 【数据结构初阶】二叉树---堆
  • Lucas带你手撕机器学习——决策树
  • OpenIPC开源FPV之Ardupilot配置
  • 合并数组的两种常用方法比较
  • qt 下载安装
  • Oracle SQL Developer 同时打开多个table的设置
  • NVIDIA发布Nemotron-70B-Instruct,超越GPT-4o和Claude 3.5的AI模型
  • 死锁(Deadlock)C#
  • 前端-基础CSS 知识总结
  • 最新版本jdbcutils集成log4j做详细sql日志、自动释放连接...等
  • jQuery快速填充非form数据
  • 语音语言模型最新综述! 关于GPT-4o背后技术的尝试
  • 根据用户选择的行和列数据构造数据结构(跨行跨列)
  • Spark教程5-基本结构化操作
  • 内置数据类型、变量名、字符串、数字及其运算、数字的处理、类型转换
  • Win/Mac/Android/iOS怎麼刪除代理設置?
  • 数据结构------手撕顺序表