這篇文章給大家分享的是有關(guān)C#如何在微信菜單中采用重定向獲取用戶數(shù)據(jù) 的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)與策劃設(shè)計,定邊網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:定邊等地區(qū)。定邊做網(wǎng)站價格咨詢:18982081108微信的自定義菜單分為兩大類,分別對應(yīng)Click類型和View類型的,而重定向?qū)儆赩iew類型的一種,如下所示。
微信重定向的菜單,就是通過傳入一個地址參數(shù),讓微信服務(wù)器進(jìn)行跳轉(zhuǎn),它的主要規(guī)則如下所示。
對于scope=snsapi_base方式的鏈接如下:
https://open.weixin.qq.com/connect/oauth3/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/oauth3/authorize?appid=wx3d81fc2886d86526&redirect_uri=http%3A%2F%2Fwww.iqidi.com%2Ftestwx.ashx&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect
這兩個菜單鏈接主要就是對我們給定的鏈接地址進(jìn)行UrlEncode處理,然后把它賦值給參數(shù)redirect_uri實現(xiàn)的。
由于鏈接地址比較長,如果每次需要在配置菜單的時候,都復(fù)制過來修改,非常不方便,我們可以在自定義菜單的配置界面里面,增加一個按鈕功能,對內(nèi)容進(jìn)行處理,以便實現(xiàn)我們需要的地址轉(zhuǎn)換,我的門戶應(yīng)用平臺對自定義菜單的操作就是基于這個思路實現(xiàn)。
默認(rèn)我們只需要填寫一個需要重定向的url地址就可以了,如下所示。
如果需要配置成重定向的菜單鏈接地址,那么調(diào)用【轉(zhuǎn)換重定向菜單】按鈕操作,使用腳本函數(shù)進(jìn)行轉(zhuǎn)換就可以了,轉(zhuǎn)換后的結(jié)果如下所示。
原來就是利用后臺的javascript實現(xiàn)參數(shù)的URL轉(zhuǎn)碼,還需要獲取后臺的AppId,這樣才能構(gòu)造成完整的地址連接。
前面說了,第一是需要實現(xiàn)URL轉(zhuǎn)碼,第二是獲取后臺的AppId,然后生成一個完整的URL就可以了。為了避免大家的重復(fù)研究,我把這部分代碼貼出來一起學(xué)習(xí)下。
在使用前,我們還需要注意一個問題,就是重定向到指定頁面后,這個頁面會帶有一個code的參數(shù),這個參數(shù)非常重要,我們需要獲取出來,當(dāng)然也是通過javascript來獲取對應(yīng)的code參數(shù)了。
這個邏輯可以用一個腳本函數(shù)來實現(xiàn),如下所示
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; }
定義了這個函數(shù)后,我們在重定向的頁面里面,可以獲取code參數(shù)的操作如下所示。
var code = getUrlVars()["code"];
先放下這些,我們先來討論如何把鏈接地址轉(zhuǎn)換為需要的鏈接地址操作。
我們?yōu)榱藢崿F(xiàn)鏈接地址的互相轉(zhuǎn)換(為了方便),我們可以判斷鏈接地址是否含有qq的域名就可以了。
(url.indexOf("https://open.weixin.qq.com/connect/oauth3/authorize?") == 0 redirect_uri = getUrlVars(url)["redirect_uri" (redirect_uri != "" newUrl ="#" +
而如果是我們輸入的正常鏈接,那么就應(yīng)該把它轉(zhuǎn)換為重定向的鏈接地址,如下所示。
else { var newUrl = encodeURIComponent(url); var reNewUrl = "https://open.weixin.qq.com/connect/oauth3/authorize?appid=@ViewBag.appid&redirect_uri=" + newUrl + "&response_type=code&scope=snsapi_base&state=123#wechat_redirect"; $("#" + ctrlName).val(reNewUrl); }
其中重定向鏈接需要帶有一個當(dāng)前微信開發(fā)用戶的appId,這個不是固定的,是不同的開發(fā)人員都不一樣的東西,這里使用了MVC的動態(tài)對象進(jìn)行綁定:@ViewBag.appid。
在對應(yīng)的MenuController控制器里面,給它賦值就可以了。
/// <summary> /// 默認(rèn)的視圖控制方法 /// </summary> /// <returns></returns> public override ActionResult Index() { ViewBag.appid = GetAppId(); return View(); }
這樣配置后的重定向菜單地址列表就如下所示了,我們打開對應(yīng)的記錄詳細(xì)頁面,可以通過頁面里面的功能按鈕,隨時對重定向菜單的地址進(jìn)行轉(zhuǎn)換,方便了解詳細(xì)的鏈接內(nèi)容。
配置了上面的鏈接地址后,我們需要在網(wǎng)站里面增加這樣的一個頁面進(jìn)行處理用戶的信息,一般情況下,我們可能是為了方便用戶查看自己的微信基礎(chǔ)信息,也為了給用戶綁定用戶個人數(shù)據(jù)使用的用途的,如用戶可以綁定手機(jī)、Email郵箱等操作,還可以綁定和業(yè)務(wù)系統(tǒng)相關(guān)的用戶名。這樣用戶就可以快速注冊會員或者和后臺的系統(tǒng)進(jìn)行關(guān)聯(lián)了。
我設(shè)計的兩個用戶信息展示界面如下所示。
這兩個界面主要使用了Jquery Mobile的相關(guān)內(nèi)容,對界面進(jìn)行了處理,整個模塊結(jié)合了短信驗證碼的方式,對用戶的手機(jī)進(jìn)行驗證處理,這樣能夠更高效的實現(xiàn)信息準(zhǔn)確的綁定操作,當(dāng)然,還可以結(jié)合外部系統(tǒng),綁定用戶的賬號密碼,這樣用戶可以在微信進(jìn)入微網(wǎng)站平臺進(jìn)行購物、數(shù)據(jù)維護(hù)、業(yè)務(wù)管理等操作了,其實一旦綁定外部系統(tǒng)的ID,也就是提供了一個快速進(jìn)行外部系統(tǒng)的入口了。
感謝各位的閱讀!關(guān)于“C#如何在微信菜單中采用重定向獲取用戶數(shù)據(jù) ”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
當(dāng)前標(biāo)題:C#如何在微信菜單中采用重定向獲取用戶數(shù)據(jù)-創(chuàng)新互聯(lián)
鏈接地址:http://muchs.cn/article20/dhgsjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、域名注冊、微信公眾號、做網(wǎng)站、網(wǎng)站策劃、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容