首页 > 微信 > 详细

Asp.net 微信企业号网页开发流程

时间:2018-03-13 17:37:16      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:部门   trre   npr   oauth   info   help   AI   authorize   load   

一、在pageload方法中获取code

技术分享图片
    var code = GetCode();
    private string GetCode()
    {
        return HttpContext.Current.Request["code"];
    }
View Code

二、如果code为空,需要重定向到微信获取code

技术分享图片
//当前页面对应的外网地址
            string redirect_url = "http://6018.ynedut.cn/PpWordOrder/default.aspx";
                redirect_url = HttpUtility.UrlEncode(redirect_url);
                var url = WeixinOauth2.GetCodeUrl(redirect_url); 
                HttpContext.Current.Response.Redirect(url);
                return;
            }
    #region ****************获取codeurl****************
    /// <summary>
    /// 获取codeurl
    /// </summary>
    /// <param name="redirectUri"></param>
    /// <returns></returns>
    public static string GetCodeUrl(string redirectUri)
    {
        return string.Format(
            "https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_userinfo&agentid={3}&state={2}#wechat_redirect",
            PubConstant.AppId, redirectUri, new Random().Next(1000, 200000).ToString(),
            PubConstant.AgentId);
    }

    #endregion
View Code

三、根据code获取用户信息

  注:code的有效时间为10分钟,并且只能使用一次,所以这里建议在load方法里直接获取用户信息,并写入cookie中

技术分享图片
    /// <summary>
    /// 获取用户信息
    /// </summary>
    /// <param name="code"></param>
    /// <returns></returns>
    public static UserInfo GetUserInfo(string code)
    {
        var token = GetToken();
        var url = String.Format("https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token={0}&code={1}", token,
            code);
        string strResponse = HttpHelper.HttpGet(url);
        return JsonConvert.DeserializeObject<UserInfo>(strResponse);
    }
public class UserInfo
{
    public string UserId { get; set; }
    public string DeviceId { get; set; }
    [JsonProperty("user_ticket")]
    public string User_ticket { get; set; }
    [JsonProperty("expires_in")]
    public string Expires_in { get; set; }
}
获取用户信息
技术分享图片
    /// <summary>
    /// 获取用户详细信息(包含了获取用户信息操作)
    /// </summary>
    /// <param name="code"></param>
    /// <returns></returns>
    public static UserDetailInfo GetUserDetailInfo(string code)
    {
        var userInfo = GetUserInfo(code);
        var url = String.Format(
            "https://qyapi.weixin.qq.com/cgi-bin/user/getuserdetail?access_token={0}", GetToken());
        JObject obj = new JObject();
        obj["user_ticket"] = userInfo.User_ticket;
        var postDataStr = obj.ToString();
        string strResponse = HttpHelper.HttpPost(url, postDataStr);
        return JsonConvert.DeserializeObject<UserDetailInfo>(strResponse);
    }
public class UserDetailInfo
{
    /// <summary>
    /// 成员UserID
    /// </summary>
    [JsonProperty("userid")]
    public string UserId { get; set; }

    /// <summary>
    /// 成员姓名
    /// </summary>
    [JsonProperty("name")]
    public string Name { get; set; }

    /// <summary>
    /// 成员所属部门
    /// </summary>
    [JsonProperty("department")]
    public List<int> Department { get; set; }

    /// <summary>
    /// 职位信息
    /// </summary>
    [JsonProperty("position")]
    public string Position { get; set; }

    /// <summary>
    /// 成员手机号,仅在用户同意snsapi_privateinfo授权时返回
    /// </summary>
    [JsonProperty("mobile")]
    public string Mobile { get; set; }

    /// <summary>
    /// 性别。0表示未定义,1表示男性,2表示女性
    /// </summary>
    [JsonProperty("gender")]
    public string Gender { get; set; }

    /// <summary>
    /// 成员邮箱,仅在用户同意snsapi_privateinfo授权时返回
    /// </summary>
    [JsonProperty("email")]
    public string Email { get; set; }

    /// <summary>
    /// 头像url。注:如果要获取小图将url最后的”/0”改成”/64”即可
    /// </summary>
    [JsonProperty("avatar")]
    public string Avatar { get; set; } 

}
获取用户详细信息

 

Asp.net 微信企业号网页开发流程

标签:部门   trre   npr   oauth   info   help   AI   authorize   load   

原文:https://www.cnblogs.com/sczmzx/p/8559257.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号