微信公众号微信网页开发网页授权/回调自定义参数问题处理方法。
微信公众号页面授权回调自定义参数问题
我们知道微信页面回调接口,获得用户信息后,回调地址:
redirect_uri:授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理。
授权后跳转回页面:
redirect_uri&code=code&state=yourstate(maxlength=128byte)
问题:如果redirect_uri中包括带参数的页面链接,就会造成回到地址有两个 ? 。
而state最大只有128字节。
处理方法:
把 redirect_uri 中含有url的参数进行base64编码,处理页进行解码!
使用base64.js 库
github、gitee都可下载
业务Page(获取Openid)
<!-- 引入Base64 js库文件 --><script src="/res/yssss32d/page/buss/js/base64.js"></script>...<script>
let aurl = BASE64.urlsafe_encode(window.location.href).trim();window.location.href='https://open.weixin.qq.com/connect/oauth2/authorize?appid={{.vwxconf.appid}}&redirect_uri='+escape('http://xxx.xxxxxxx.com/p/yssss32d/guoxx/gc0000001?aurl='+aurl)+'&response_type=code&scope=snsapi_base&state=yxydev.com#wechat_redirect';
</script>
回调页:
http://xxx.xxxxxxx.com/p/yssss32d/guoxx/gc0000001
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>yxydev.com·{{DOMAIN}}</title><script src="/res/yssss32d/page/buss/js/base64.js"></script>
</head>
<body style="font-size:16pt;">{{if and .code .aurl}} <!-- 有效云平台系统解析的参数 服务端引用 --><!-- 获取 access_token 和 用户的 OpenID -->{{$surl1:= FUNC_PLUS "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" .vwxconf.appid "&secret=" .vwxconf.appsecret "&code=" .code "&grant_type=authorization_code"}}{{$r1:= FUNC_STR2MAP (FUNC_HTTPGET $surl1)}} {{if $r1.access_token}}{{$sr1:=SESSIONSET "vuwid_ss" $r1.openid}}{{$ssql:=FUNC_PLUS "call proc_wx_update_user(1,'" .vwxconf.appid "','" $r1.openid "','',0,'')" }}{{$dbr1:=FUNC_SQLEXEC "app-conn-code" $ssql}}<script>//console.log(">>>>>>> ",BASE64.urlsafe_decode('{{.aurl}}')+'&vuwid2={{$r1.openid}}');window.location.href=BASE64.urlsafe_decode('{{.aurl}}')+'&vuwid2={{$r1.openid}}'; </script>{{/*$return_url:=FUNC_PLUS .aurl .state "&vuwid2=" $r1.openid}} {{HTTP_REDIRECT 302 $return_url*/}}{{else}}<!-- 异常信息提示信息 -->{{end}} {{else}}<!-- 异常信息提示信息 -->{{end}}
</body>
</html>
微信公众号微信网页开发网页授权/回调自定义参数问题处理方法。相关推荐
- 设置网页打开默认全屏_微信公众号里的视频不能进行全屏播放的解决方法
我们手机版的微信视频,发现视频播放只能竖屏播放,点击右下角对放大按钮也是如此,网页版也是小窗口播放,而视频这样显示特别影响我们的观看感受, 下面说下微信公众号里的视频不能进行全屏播放的解决方法. 1. ...
- 微信公众号打开的h5网页点击按钮返回公众号
从微信公众号打开的h5网页 退出h5返回到公众号方法 closePage() {if (typeof WeixinJSBridge == "undefined") {if (doc ...
- 微信公众号三方平台开发【获取授权方的授权信息以及基本信息】
今天开始之前,先对上期的内容做一个小的补充,第三方平台在开发(即待全网发布)模式下,用来测试的微信公众号必须为第二期里说到的"授权测试公众号列表"(即测试白名单)里填写的微信公众号 ...
- 微信公众号的简单开发
这里是修真院前端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析前端知识/技能. 今天给大家分享一下,修真院官网 ...
- 微信公众号H5页面开发--微信JS-SDK引用
微信公众号H5页面开发–微信JS-SDK引用 微信提供了微信公众号开发者手册,官方地址:https://mp.weixin.qq.com/ 公众号内许多复杂的业务场景,都是通过网页形式来提供服务,这时 ...
- 微信公众号通过第三方平台完成授权
微信公众号通过第三方平台完成授权前,第三方平台与公众号绑定关系. 为什么要使用第三方平台来完成授权,公众号本身授权也可以,但是微信平台会认为你具有开发能力,免费提供给你的自定义菜单以及其他功能将不能再 ...
- 微信公众号三方平台开发【全网发布及全网发布接入检测】
经过之前系列内容过后,接下来的代微信公众号实现业务部分跟微信公众号开发业务逻辑一样,所以公众号其他业务功能部分后面我会单独整理一套相关内容,今天,咱们就来说说微信第三方平台开发的最后一步-- 全网发布 ...
- 【delphi】微信公众号控件开发(一)
Delphi 微信公众号控件开发: Delphi微信公众号控件开发: 一.公共属性定义 1. AppID(开发者ID) 2. AppSecret(开发者密码) 3. Token(令牌) 4. Base ...
- 微信公众号Java开发-笔记01【微信公众号介绍、开发环境搭建】
学习网址:哔哩哔哩网站 微信公众号开发-Java版 微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] 微信公众号Java开发-笔记02[] 微信公众号Java开发-笔记03[] 微信公 ...
- 微信公众号消息模板开发
为什么80%的码农都做不了架构师?>>> ##背景 新需求,需要在订单的时候给用户,商家,配送员发送想对于的微信消息模板,之前没有做过微信公众号相关的开发,这次就一并熟悉吧 # ...
最新文章
- 微型计算机系统外文,微型计算机控系统(单片机控制系统) 毕业论文外文翻译.doc...
- Spring中@Pattern的使用
- jq的form data中保留加号_使用Fourier+EMD水管中传播的单频音波进行滤波(Python)...
- JDK9的JShell简单使用
- ulp通信_Java Math类ulp()方法及示例
- Linux环境变量的设置和查看
- docker安装mysql5.7_docker安装mysql5.7
- 【android自定义控件】ProgressBar自定义
- 苹果HomeKit、小米、谷歌HomeKit等智能家居系统,哪一款适合你?【智能家居评测】
- 合肥二手房房价分析(多元线性回归)
- 时尚透气的KN95口罩,防护可靠的穿搭小件
- linux下多线程验证数独,6.6.1 数独求解服务器
- iOS - 暗黑模式图片、颜色的适配
- python 柱状图折线图共用一个图例_使用python的seaborn绘制折线图与柱状图的组合图...
- 学习笔记 Unsupervised Domain Adaptive Re-Identification: Theory and Practice
- 【Redis】RedisCluster 批量删除key
- 维吉尼亚密码加密/解密在线工具
- java hid_Java和HID通讯
- 电脑打印机卡住端口(打印机无显示)
- 20-40K| 梅卡曼德3D视觉算法/软件/产品经理招聘