C# 獲取關注微信公眾號後訪問人的openid進行功能擴充套件
阿新 • • 發佈:2019-01-10
using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Net; using System.Web.Script.Serialization; namespace WebClientSearchApp { public partial class GetWeiXinCode : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!base.IsPostBack) { string str = base.Server.UrlEncode("http://www.xxxx.com.cn/WeiXin/GetWeiXinCode.aspx"); string text = base.Request.QueryString["Code"]; if (string.IsNullOrEmpty(text)) { string url = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri=" + str + "&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect", ConfigurationManager.AppSettings["AppId"]); base.Response.Redirect(url); return; } WebClient webClient = new WebClient(); webClient.Encoding =System.Text.Encoding.UTF8; string address = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", ConfigurationManager.AppSettings["AppId"], ConfigurationManager.AppSettings["AppSecret"], text); string input = webClient.DownloadString(address); JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); Dictionary<string, string> dictionary = javaScriptSerializer.Deserialize<Dictionary<string, string>>(input); string text2; if (!dictionary.TryGetValue("access_token", out text2)) { return; } string opentid = dictionary["openid"]; using (ClientSearchDataContext clientSearchDataContext = new ClientSearchDataContext()) { IQueryable<WeiXinApiToken> source = from p in clientSearchDataContext.WeiXinApiToken where p.OpenID == opentid select p; if (source.Count<WeiXinApiToken>() > 0) { base.Response.Redirect("http://www.xxxx.com.cn/WeiXin/UserBind.aspx?status=succes&openid= " + opentid); } else { base.Response.Redirect("http://www.xxxx.com.cn/WeiXin/UserBind.aspx?openid=" + opentid); } } } } } }
config 配置檔案:
<appSettings>
<add key="SqlserverConnectionString" value="data source=192.168.33.13;User ID=sa;pwd=sa;Initial Catalog=xxxx;" />
<add key="DBConnectionError" value="資料庫連線失敗。" />
<add key="MaxWeeks" value="13" />
<add key="MinPWD" value="8" />
<add key="ThemeRoot" value="Default" />
<add key="MiniteInterval" value="15" />
<add key="TimeLimit" value="2013-07-20" />
<!--微信的Token-->
<add key="WeixinToken" value="haixinda"/>
//開發者ID(AppID)
<add key="AppId" value="wx55d5944a0be2d2e6b906"/>
//開發者密匙
<add key="AppSecret" value="444444444444"/>
</appSettings>
AppId、AppSecret 都可以登陸微信公眾平臺後找到
獲取訪問公眾號連結得到的openid
http://www.xxxx.com.cn/WeiXin/UserBind.aspx?openid=oepJesytIaBw4BSxENiv8geHddfdffdCE