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

本人一度当浩如烟海文章被的《C#开微信门户及运用(11)–微信菜单的多呈现方式介绍》中牵线了微信菜单中的重定向操作,通过这个重定向操作,我们可拿走一个code值,然后拿走用户的openID,进而就能得到还多的用户信息,这个当会员信息之场景之中用的生多,本篇介绍在网站遭遇迅速布局这样的菜单链接,并介绍如何在后台获取有关的用户信息,实现页面数据个性化的变现操作。

咱理解,微信的自定义菜单分为两死接近,分别针对应Click类型和View类型的,而重定向属于View类型的相同栽,如下所示。

bifa365必发 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地址便足以了,如下所示。

bifa365必发 2

假若用安排成重定向的菜谱链接地址,那么调用【转换重定向菜单】按钮操作,使用脚本函数进行转移就得了,转换后的结果如下所示。

bifa365必发 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();
        }

然安排后的重定向菜单地址列表就如下所示了,我们开辟对应的记录详细页面,可以通过页面中的效能按钮,随时对重定向菜单的地点进行转移,方便了解详细的链接内容。

bifa365必发 4

3、重定向页面的统筹与处理 

布局了点的链接地址后,我们得以网站中长这样的一个页面进行拍卖用户之音讯,一般情形下,我们或是为着便于用户查看自己之微信基础信息,也为让用户绑定用户个人数据利用的用的,如用户可以绑定手机、Email邮箱等操作,还好绑定和事务体系有关的用户称。这样用户就是可快速注册会员或者和后台的体系进行关联了。

本身设计的星星点点单用户信息显示界面如下所示。

立马简单只界面主要采用了Jquery
Mobile的相关内容,对界面进行了拍卖,整个模块组合了短信验证码的艺术,对用户之无绳电话机进行求证处理,这样能再度高效之落实信息准确无误之绑定操作,当然,还可以结合外部系统,绑定用户之账号密码,这样用户可当微信上微网站平台展开购物、数据保护、业务管理等操作了,其实要绑定外部系统的ID,也不怕是供了一个很快进行表面系统的输入了。

bifa365必发 5  bifa365必发 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)–开始采用微信接口

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注