using Newtonsoft.Json.Linq; using System.Net; using System.Text; namespace Utils { /// /// 微信公众号工具类 /// public class VxinUtils { /// /// 微信token /// public static string WeiXinToken { get { return AppSettingsHelper.Configuration["WxPay:WeiXinToken"]; } } /// /// 微信appID /// public static string AppID { get { return AppSettingsHelper.Configuration["WxPay:AppID"]; } } /// /// 微信Appsecret /// public static string Appsecret { get { return AppSettingsHelper.Configuration["WxPay:Appsecret"]; } } /// /// 获得access_token地址 /// public static string Access_token_URL { get { return string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", AppID, Appsecret); } } /// /// 通过code换取网页授权access_token地址 /// public static string Web_Access_token_URL { get { return string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&grant_type=authorization_code&code=", AppID, Appsecret); } } /// /// 微信菜单创建提交地址 /// public static string MENU_POST_URL { get { return "https://api.weixin.qq.com/cgi-bin/menu/create?access_token="; } } /// /// 微信获取用户分组地址 /// public static string Group_Get_Url { get { return "https://api.weixin.qq.com/cgi-bin/groups/get?access_token="; } } /// /// 微信修改用户分组地址 /// public static string Group_Update_Url { get { return "https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token="; } } /// /// 微信获取用户所属分组地址 /// public static string Group_GetUserGroup_Url { get { return "https://api.weixin.qq.com/cgi-bin/groups/getid?access_token="; } } /// /// 拉取用户信息(需scope为 snsapi_userinfo) /// 如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。 /// https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN /// public static string GetUserUserinfo_Url { get { return "https://api.weixin.qq.com/sns/userinfo?lang=zh_CN&access_token="; } } /// /// 获取用户的OpenId /// /// /// public static string GetOpenID(string code) { var openid = ""; using (var wl = new WebClient()) { wl.Headers.Add(HttpRequestHeader.Accept, "json"); wl.Headers.Add(HttpRequestHeader.ContentType, "application/json;charset=UTF-8"); wl.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0"); wl.Encoding = Encoding.UTF8; openid = wl.DownloadString(Web_Access_token_URL + code); } if (!string.IsNullOrEmpty(openid)) { var token = JObject.Parse(openid).SelectToken("openid"); if (token != null) { openid = token.ToString(); } else { openid = ""; } } return openid; } } }