二、獲取微信用戶openId


/// <summary>
/// 登錄首頁
/// </summary>
/// <returns></returns>
public ActionResult Index()
{
    if (Session["isTrue"] == null)
    {
        string weixinAppid = System.Configuration.ConfigurationManager.AppSettings["weixinAppid"];
        string weixinBackUrl = System.Configuration.ConfigurationManager.AppSettings["weixinBackUrl"];
        var url = string.Format("//open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", weixinAppid, weixinBackUrl);
        return Redirect(url); //會跳轉到weixinBackUrl填寫的地址(NewHome)上並將code值發過去
    }
    return View();
}

public class NewHomeController : BaseController
{
    public ActionResult Index(string code)
    {
        string openId = GetOpenId(code);
    }
    
    /// <summary>
    /// 獲取openId
    /// </summary>
    /// <param name="code"></param>
    /// <returns></returns>
    public static string GetOpenId(string code)
    {
        string url = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", weixinAppid, weixinSecret, code); //weixinAppid和weixinSecret為公眾號的appID和appsecret

        var client = new System.Net.WebClient();
        client.Encoding = System.Text.Encoding.UTF8;
        string data = client.DownloadString(url);
        JavaScriptSerializer Jss = new JavaScriptSerializer();
        UserInfo userInfo = Jss.Deserialize<UserInfo>(data);
        return userInfo.OpenId;
    }
}

public class UserInfo
{
    /// <summary>
    /// 用戶是否訂閱該公眾號標識,值為0時,代表此用戶沒有關注該公眾號,拉取不到其余信息
    /// </summary>
    public int SubScribe { get; set; }
    /// <summary>
    /// 用戶的標識,對當前公眾號唯一
    /// </summary>
    public string OpenId { get; set; }
    /// <summary>
    /// 用戶的昵稱
    /// </summary>
    public string NickName { get; set; }
    /// <summary>
    /// 用戶的性別,值為1時是男性,值為2時是女性,值為0時是未知
    /// </summary>
    public int Sex { get; set; }
    /// <summary>
    /// 語言
    /// </summary>
    public string Language { get; set; }
    /// <summary>
    /// 用戶所在城市
    /// </summary>
    public string City { get; set; }
    /// <summary>
    /// 用戶所在省份
    /// </summary>
    public string Province { get; set; }
    /// <summary>
    /// 用戶所在國家
    /// </summary>
    public string Country { get; set; }
    /// <summary>
    /// 用戶頭像,最后一個數值代表正方形頭像大小(有0、46、64、96、132數值可選,0代表640*640正方形頭像),用戶沒有頭像時該項為空。若用戶更換頭像,原有頭像URL將失效
    /// </summary>
    public string Headimgurl { get; set; }
    /// <summary>
    /// 用戶關注時間,為時間戳。如果用戶曾多次關注,則取最后關注時間
    /// </summary>
    public int Subscribe_time { get; set; }
    /// <summary>
    /// 只有在用戶將公眾號綁定到微信開放平台帳號后,才會出現該字段
    /// </summary>
    public string Unionid { get; set; }
    /// <summary>
    /// 公眾號運營者對粉絲的備注,公眾號運營者可在微信公眾平台用戶管理界面對粉絲添加備注
    /// </summary>
    public string Remark { get; set; }
    /// <summary>
    /// 用戶所在的分組ID
    /// </summary>
    public int Groupid { get; set; }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM