微信公众号微信网页开发网页授权/回调自定义参数问题处理方法。

微信公众号页面授权回调自定义参数问题

我们知道微信页面回调接口,获得用户信息后,回调地址:
在这里插入图片描述
在这里插入图片描述
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>

版权声明:本文为woniu149113662原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。