• c# 微信开发 《获取用户的信息》


    public const string WeiXin_User_GetInfoUrl = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang=zh_CN";
    
    /// <summary>
            /// 根据OpenID 获取用户在微信的基本信息(需关注公众号)
            /// </summary>
            /// <param name="openId"></param>
            public static WeiXinUserInfo GetUserInfo(string openId)
            {
                WeiXinUserInfo info = new WeiXinUserInfo();
                try {
                    var token = GetAccsss_token();
                    string url = string.Format(WeiXin_User_GetInfoUrl, token, openId);
                    string result = GetData(url);
                    if (string.IsNullOrEmpty(result))
                        return null;
                    info = JsonConvert.DeserializeObject<WeiXinUserInfo>(result);
                }catch(Exception ex){
                    LogHelper.WriteFileLog("getUserWeixinInfoError", ex.Message);
                }
                
                return info;
            }
         
    
    /// <summary>
            /// 保存用户信息
            /// </summary>
            public void SaveUserInfo(string FromUserName) {
                //第一次关注
                WeiXinCommom.WeiXinUserInfo info = WeiXinCommom.GetUserInfo(FromUserName);
                string SaveUserWeiXinInfurl = RequestUrl.ServiceUrl + RequestUrl.SaveUserWeiXinInfo;
                Entity SaveUserWeiXinInfdata = new Entity(new PropertyCollection());
                string WeixinQrCodePath = ConfigurationManager.AppSettings["UserHeadUploadPath"].TryString();
                string rootpath = System.AppDomain.CurrentDomain.BaseDirectory;//程序运行地址
                string path = rootpath + WeixinQrCodePath; //文件夹绝对路径
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                string Guidcode = Guid.NewGuid().TryString();
                string HeadImgPath = path + "/" + Guidcode + ".jpg";//用户头像的绝对路径
                string SaveImg = "/" + WeixinQrCodePath + "/" + Guidcode + ".jpg";
                WeiXinCommom.SaveUrlImage(info.HeadImgUrl, HeadImgPath);
                SaveUserWeiXinInfdata.AddSimple("WeiXinOpenID", FromUserName, typeof(string));
                SaveUserWeiXinInfdata.AddSimple("NickName", (info.NickName == null ? "" : info.NickName), typeof(string));
                SaveUserWeiXinInfdata.AddSimple("HeadImgUrl", SaveImg, typeof(string));
                SaveUserWeiXinInfdata.AddSimple("Subscribe", 1, typeof(int));
                RequestUrl.RequestWebByPost(SaveUserWeiXinInfurl, SaveUserWeiXinInfdata);//更新用户关注状态
            }     
    
    /// <summary>
            /// 保存网络图片
            /// </summary>
            /// <param name="stUrl"></param>
            /// <param name="imgPath"></param>
            /// <returns></returns>
            public static void SaveUrlImage(string stUrl, string imgPath)
            {
                HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(stUrl);
    
                req.Method = "GET";
    
                using (WebResponse wr = req.GetResponse())
                {
                    HttpWebResponse myResponse = (HttpWebResponse)req.GetResponse();
                    string strpath = myResponse.ResponseUri.ToString();
                    WebClient mywebclient = new WebClient();
    
                    try
                    {
                        mywebclient.DownloadFile(strpath, imgPath);
                    }
                    catch (Exception ex)
                    {
                        LogHelper.WriteFileLog("WebResponse", ex.Message);
                    }
                }
            }
    

      

  • 相关阅读:
    java jni 调用c语言函数
    BeautifulSoup入门
    Python单引号、双引号、三个双引号的区别
    Request库的安装与使用
    awk命令入门
    sed命令入门
    编译生成protobuf的jar包
    编辑crontab添加Linux计划任务
    tar命令详解及使用实例
    MySQL用户管理
  • 原文地址:https://www.cnblogs.com/yyyuguo/p/8426804.html
Copyright © 2020-2023  润新知