C#开发微信门户及运用(14)-在微信菜单中拔取重定向获取用户数据

我早已在连串作品中的《C#支付微信门户及接纳(11)–微信菜单的多种显示形式介绍》中介绍了微信菜单里面的重定向操作,通过那一个重定向操作,大家可以赢得一个code值,然后拿走用户的openID,进而就能获取到更多的用户新闻,那些在会员音信的面貌之中用的很多,本篇介绍在网站中快捷布署那样的食谱链接,并介绍如何在后台获取有关的用户信息,完毕页面数据个性化的呈现操作。

俺们领略,微信的自定义菜单分为两大类,分别对应Click类型和View类型的,而重定向属于View类型的一种,如下所示。

图片 1

1、微信重定向菜单的布局

微信重定向的菜谱,就是经过传播一个地址参数,让微信服务器进行跳转,它的要害规则如下所示。

对于scope=snsapi_base方式的链接如下:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx3d81fc2886d86526&redirect\_uri=http%3A%2F%2Fwww.iqidi.com%2Ftestwx.ashx&response\_type=code&scope=snsapi\_base&state=123\#wechat\_redirect 

而对于scope=snsapi_userinfo方式的链接如下:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx3d81fc2886d86526&redirect\_uri=http%3A%2F%2Fwww.iqidi.com%2Ftestwx.ashx&response\_type=code&scope=snsapi\_userinfo&state=123\#wechat\_redirect

这多少个菜单链接主要就是对咱们加以的链接地址进行UrlEncode处理,然后把它赋值给参数redirect_uri实现的。

出于链接地址相比长,假如老是须要在布署菜单的时候,都复制过来修改,格外不便宜,大家得以在自定义菜单的安排界面里面,扩大一个按钮成效,对情节开展拍卖,以便完成大家须要的地点转换,我的帮派应用平台对自定义菜单的操作就是根据那几个思路完成。

默许我们只须求填写一个内需重定向的url地址就能够了,如下所示。

图片 2

假诺急需配备成重定向的食谱链接地址,那么调用【转换重定向菜单】按钮操作,使用脚本函数举办更换就足以了,转换后的结果如下所示。

图片 3

原本就是选择后台的javascript完毕参数的URL转码,还需求取得后台的AppId,那样才能构造成全体的地址连接。

2、脚本转换操作的落成代码

面前说了,第一是索要落成URL转码,第二是赢得后台的AppId,然后生成一个完完全全的URL就可以了。为了幸免大家的双重探究,我把这一部分代码贴出来一起学习下。

在运用前,我们还亟需留意一个问题,就是重定向到指定页面后,那个页面会含有一个code的参数,这么些参数分外首要,我们必要获得出来,当然也是经过javascript来赢得相应的code参数了。

那一个逻辑可以用一个剧本函数来落实,如下所示

        function getUrlVars(){
            var vars = [], hash;
            var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
            for(var i = 0; i < hashes.length; i++)
            {
                hash = hashes[i].split('=');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        }

概念了那个函数后,大家在重定向的页面里面,可以取得code参数的操作如下所示。

var code = getUrlVars()["code"];

先放下那几个,大家先来研讨什么把链接地址转换为需求的链接地址操作。

大家为了完结链接地址的竞相转换(为了便于),大家可以断定链接地址是还是不是包罗qq的域名就足以了。

if (url.indexOf("https://open.weixin.qq.com/connect/oauth2/authorize?") == 0) {
   var redirect_uri = getUrlVars(url)["redirect_uri"];
   if (redirect_uri != "") {
       var newUrl = decodeURIComponent(redirect_uri);
       $("#" + ctrlName).val(newUrl);
   }
}

而倘若是大家输入的正常链接,那么就应当把它转换为重定向的链接地址,如下所示。

else {
                    var newUrl = encodeURIComponent(url);
                    var reNewUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=@ViewBag.appid&redirect_uri=" + newUrl + "&response_type=code&scope=snsapi_base&state=123#wechat_redirect";
                    $("#" + ctrlName).val(reNewUrl);
                }

中间重定向链接必要带有一个脚下微信支付用户的appId,这些不是向来的,是见仁见智的开发人士都差距等的东西,那里运用了MVC的动态目的举办绑定:@ViewBag.appid。

在对应的MenuController控制器里面,给它赋值就可以了。

        /// <summary>
        /// 默认的视图控制方法
        /// </summary>
        /// <returns></returns>
        public override ActionResult Index()
        {
            ViewBag.appid = GetAppId();
            return View();
        }

如此这般安排后的重定向菜单地址列表就好像下所示了,大家开拓对应的笔录详细页面,可以由此页面里面的效能按钮,随时对重定向菜单的地方举行转换,方便精晓详细的链接内容。

图片 4

3、重定向页面的设计及处理 

配置了上面的链接地址后,大家需求在网站内部增添那样的一个页面举行处理用户的音讯,一般情状下,大家或许是为了方便用户查看自己的微信基础音讯,也为了给用户绑定用户个人数据选择的用途的,如用户能够绑定手机、Email邮箱等操作,还足以绑定和工作序列有关的用户名。那样用户就可以长足注册会员或者和后台的序列开展关联了。

自家布置的七个用户音讯浮现界面如下所示。

那四个界面紧要采纳了Jquery
Mobile的连带内容,对界面举办了拍卖,整个模块组成了短信验证码的法门,对用户的手机进行表达处理,那样能够更高速的贯彻音信规范的绑定操作,当然,还足以组成外部系统,绑定用户的账号密码,那样用户可以在微信进入微网站平台开展购物、数据保养、业务管理等操作了,其实只要绑定外部系统的ID,也就是提供了一个飞快展开表面系统的进口了。

图片 5  图片 6

现实的情节在下一篇一连介绍了。 

 

一经对这一个《C#支付微信门户及应用》连串感兴趣,可以关心本身的其他小说,体系小说如下所示:

C#支付微信门户及使用(20)-微信集团号的菜谱管理

C#开发微信门户及接纳(19)-微信公司号的新闻发送(文本、图片、文件、语音、摄像、图文消息等)

C#支付微信门户及运用(18)-微信集团号的通信录管理支出之成员管理

C#开发微信门户及应用(17)-微信集团号的通信录管理支付之部门管理

C#付出微信门户及选取(16)-微信企业号的布局和采取

C#支出微信门户及利用(15)-微信菜单扩大扫一扫、发图片、发地理地点效能

 C#支付微信门户及应用(14)-在微信菜单中利用重定向获取用户数量

C#支付微信门户及拔取(13)-使用地理地点增加相关应用

C#付出微信门户及利用(12)-使用语音处理

C#支出微信门户及选用(11)–微信菜单的有余表现方法介绍

C#支付微信门户及利用(10)–在管理体系中一起微信用户分组信息

C#支付微信门户及利用(9)-微信门户菜单管理及提交到微信服务器

C#支出微信门户及应用(8)-微信门户应用管理种类功能介绍

C#支付微信门户及选择(7)-微信多客服作用及支出集成

C#开发微信门户及利用(6)–微信门户菜单的管制操作

C#付出微信门户及使用(5)–用户分组音讯保管

C#支付微信门户及运用(4)–关心用户列表及详细新闻管理

C#开发微信门户及应用(3)–文本新闻和图文新闻的回应

C#付出微信门户及运用(2)–微信音信的处理和回应

C#支出微信门户及应用(1)–起头使用微信接口

 

相关文章