最近在做一个扫码登录功能,为此我还在网上搜了一下关于微信的扫描登录的实现方式。当这个功能完成了后,我决定将整个实现思路整理出来,方便自己以后查看也方便其他有类似需求的程序猿些。
要实现扫码登录我们需要解决两个问题:
首先,获取OPENID。
其次,生成一个随机数,然后把随机数登录后的OPENID写入服务器文本里!
我们需要一个AJAX每一秒对服务器进行验证,是否登录成功!
直接上代码吧!
首先是登录页面
Session[“OPENID“] = ““;
Random ra = new Random();
int RaNo = ra.Next(0, 100000);
string SID = Session.SessionID;
Session[“Rano“] = RaNo;
string TwoCode = QR.create_two(“http://“ + Request.Url.Host + “login.aspx?sid=“ + SID + “$rn=“ + RaNo, “/CodeTemp/“, SID);
接下来是判断用户是否登录
public bool ChangeLogin()
{
try
{
string SingleUser = com.ReadHtmlFile(Server.MapPath(“文本“));
if (SingleUser != ““)
{
if (SingleUser.IndexOf(“$“) > 0)
{
string[] Arr = SingleUser.Split(\'$\');
if (Arr[0] == Session[“Rano“].ToString())
{
Session[“OPENID“] = Arr[1];
return true;
}
}
}
return false;
}
catch
{
return false;
}
}
下一步是微信扫码
string code = Request[“code“];
string SID = Request[“sid“] == null ? ““ : Request[“sid“];
string RaNo = Request[“rn“] == null ? ““ : Request[“rn“];
if (SID != ““ && RaNo != ““)
{
string OpenID = AT.CodeGetOpenid(code);
com.WriteHtmlFile(RaNo.ToString() + “$“ + OpenID, Server.MapPath(“文本“));
}
AJAX 就不写了。如果要请发邮箱到admin@14352669.com