二维码和微信 用C#写一个微信登录软件(自己写协议)
文章浏览阅读2.6k次,点赞2次,收藏10次。本文介绍如何使用C#编写一个微信登录软件,详细阐述从获取UUID到检测二维码状态的整个过程。教程中提到,首先获取UUID以请求二维码
用C#写一个微信登录软件(自己写协议)
为什么会写这个?
我本来想用于参加高中(普通高中 编程是自己学的)的一个竞赛,但是由于微信号被微信限制网页登录,所以无法继续进行编写. 于是想写个教程,从头到尾详细的分享给大家制作过程,造福以后想做的人.
效果预览
打开软件,第一步需要你扫码.
扫码后,会获取微信号头像,并且显示已扫码,要求在微信确认.
当用户登录后,会显示已登录.
一些附加功能: 如果长时间不登录,会提示二维码过期,并且刷新二维码,头像回到默认头像.
一个小菜蛋, 最终也没有用于参赛…
开始教程:
首先我们要知道,制作一个微信登录软件,对接的其实是微信网页版.
大致步骤为:
1.获取UUID
2.获取二维码
3.检测二维码状态
以下URL均可以抓包获取
先创建一个类似于这样的页面 这里使用了 当然,你也可以用wpf
首先,在界面加载事件中,我们需要做的事情有二行代码(有三行代码 建议加第一行)
private void Form1_Load(object sender, EventArgs e)
{
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
flushQRCode();
checkLoginState();
}
我们先来看第一个 刷新二维码() 函数
这里面包含了获取UUID的步骤,先来获取UUID(有了UUID才能像微信要对应的二维码)
我们像微信获取UUID 要访问的URL为: /
当然,光这个URL还不行,我们还需要参数,这里我们使用(GET)请求,然后获取并读取内容.
参数有
1.appid = wx782c26e4c19acffb (固定的)
2.redirect_uri = https%3A%2F%2Fwx.qq.com%2Fcgi-bin%2Fmmwebwx-bin%2Fwebwxnewloginpage
3.fun = new (这个应该是代表新登录协议)
4.lang = zh_CN (语言,zh_CN表示中文)
5._ = 时间戳
知道了参数,我们先先同过这些参数获取UUID
TimeSpan ts = DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0);
String returnn = sendGetRequestAndGetReturn("https://login.wx.qq.com/jslogin?appid=wx782c26e4c19acffb&redirect_uri=https%3A%2F%2Fwx.qq.com%2Fcgi-bin%2Fmmwebwx-bin%2Fwebwxnewloginpage&fun=new&lang=zh_CN&_=" + Convert.ToInt64(ts.TotalSeconds).ToString());
private String