国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET Core2靜默獲取微信公眾號的用戶OpenId實例代碼

2024-07-10 12:48:39
字體:
來源:轉載
供稿:網友

前言

最近在做個微信公眾號的項目,需要將入口放置在公眾號二級菜單內,通過點擊該菜單鏈接后進入到該項目中去,進入到項目后程序會自動通過微信公眾號的API完成用戶的OpenId獲取。需求很簡單,實現起來也不復雜,于是在一番折騰后需求實現了。為此,寫下此文僅為初次接觸的朋友提供個小小的幫助。

準備

老規矩,在開始動手前,咱們先簡單介紹下實現的組成部分,如下:

微信公眾號靜默獲取用戶OpenId:要實現該功能,可以通過微信公眾號提供的“網頁授權”接口完成(官網描述:以snsapi_base為scope發起的網頁授權,是用來獲取進入頁面的用戶的openid的,并且是靜默授權并自動跳轉到回調頁的。用戶感知的就是直接進入了回調頁(往往是業務頁面)),具體說明在此:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

Lezhima.Site:是一個基于ASP.NET Core2的Web Mvc帶視圖的程序,用來模擬接受微信公眾號菜單鏈接的請求,并自動獲取用戶的OpenId。

準備

如上面所述,我們已經清楚了整個實現思路,那么下面就來看看Lezhima.Site項目內的代碼實現吧:

1、首先我們先創建一個名為“BasicController”的業務基類,并繼承“Controller”類。其作用有兩個,一是將驗證是否正確獲取OpenId的業務封裝成基類,二是方便其它業務控制器使用OpenId。具體代碼如下:

/// <summary>/// 業務基類/// </summary>public class BasicController:Controller{	//當前用戶openId	protected string CurrentUserOpenId { set; get; }	public BasicController()	{		//從Cookie中獲取當前用戶的openId		var cookie = Cookies.GetCookieByUser();		//如果沒有,則導航到指定提示頁,需要用戶關閉后重新進入		if (string.IsNullOrEmpty(cookie))		{			System.Web.HttpContext.Current.Response.Redirect("/VxinWeb/Index");			return;		}		CurrentUserOpenId = cookie;	}}

2、再創建一個名為“VxinWebController”的控制器與View視圖。其作用是用來接受來自微信公眾號菜單內的鏈接入口,并自動完成獲取用戶OpenId。代碼如下:

/// <summary>/// 此頁面用于對外微信菜單地址,用于獲取用戶openId/// 這是本系統網頁的入口/// </summary>public class VxinWebController : Controller{	public ActionResult Index()	{		//獲取當前進到本系統的微信用戶的openid		//該請求從微信那邊過來		if (Request.QueryString["code"] != null)		{			var code = Request.QueryString["code"].ToString();			var openId = VxinUtils.GetOpenID(code);			if (openId == null)//沒有獲取到openId			{				//返回當前視圖,需要提示用戶關閉窗口,嘗試重新進入				return View();			}			//將openId放入cookie,放到cookie之前需將openId進行加密,取出來后再解密			Cookies.SetUserToCookie(openId);			return RedirectToAction("Index", "Home");		}		return View();	}}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 垫江县| 静乐县| 塔河县| 桂平市| 时尚| 大关县| 赣州市| 丽水市| 巴东县| 方山县| 齐河县| 苗栗县| 花莲县| 天镇县| 贵德县| 龙陵县| 娄底市| 蓬莱市| 乐至县| 诏安县| 静安区| 大港区| 弋阳县| 扶风县| 桐庐县| 井陉县| 高平市| 连江县| 新田县| 嘉禾县| 威远县| 荔波县| 长武县| 织金县| 沅江市| 合作市| 连城县| 长寿区| 大姚县| 清苑县| 孟连|