微信公众平台 - java 微信模拟登录错误,微信改版后不能使用
黄舟
黄舟 2017-04-17 11:15:33
[Java讨论组]

这段代码是我java里面的代码

        Map map = new HashMap();
        //用户名 and 密码是正确的
        map.put("username", username);
        //密码转md5值也是正确的.根据多种md5加密工具测试
        map.put("pwd", MD5.getMD5(password.getBytes()));
        // map.put("imgcode", "");
        map.put("f", "json");
        Response response = Jsoup.connect("http://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN").ignoreContentType(true).method(Method.POST).data(map).execute();
        Map cookies = response.cookies();
        // 新添加代码
        String json = response.body();
        //地下这个是得到的返回结果.ErrCode=-2.是用户名或密码错误的提示.
        //{
        //"Ret": 400,
        //"ErrMsg": "",
        //"ShowVerifyCode": 0,
        //"ErrCode": -2
        //}

下面这段是腾讯登录界面的代码,

var e = m.getVal();
t.post("/cgi-bin/login?lang=zh_CN", {
username: e.account,
pwd: t.md5(e.password.substr(0, 16)),
imgcode: c.data("isHide") ? "" : e.verify,
f: "json"
}, function(t) {
var n = t.ErrCode + "", i;
u.hasClass("checkbox_checked") ? WXM.Helpers.setCookie("remember_acct", e.account, 30) : WXM.Helpers.setCookie("remember_acct", "EXPIRED", -1);
switch (n) {
case "-1":
i = "系统错误,请稍候再试。";
break;
case "-2":
i = "帐号或密码错误。";
break;
case "-3":
i = "您输入的帐号或者密码不正确,请重新输入。";
break;
case "-4":
i = "不存在该帐户。";
break;
case "-5":
i = "您目前处于访问受限状态。";
break;
case "-6":
i = "请输入图中的验证码", r();
return;
case "-7":
i = "此帐号已绑定私人微信号,不可用于公众平台登录。";
break;
case "-8":
i = "邮箱已存在。";
break;
case "-32":
i = "您输入的验证码不正确,请重新输入", r();
break;
case "-200":
i = "因频繁提交虚假资料,该帐号被拒绝登录。";
break;
case "-94":
i = "请使用邮箱登陆。";
break;
case "10":
i = "该公众会议号已经过期,无法再登录使用。";
break;
case "65201":
case "65202":
i = "成功登陆,正在跳转...", location.href = t.ErrMsg;
return;
case "0":
i = "成功登陆,正在跳转...", location.href = t.ErrMsg;
return;
case "-100":
i = '海外帐号请在公众平台海外版登录,点击登录';
break;
default:
i = "未知的返回。";
return;
}
s.trigger("Response", [ n, i ]);
}, "json");
黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
高洛峰

我使用JavaScript进行模拟登录当我输入正确的用户与密码时能正常登录,输入错误的密码返回状态码为-3,密码错误,并非是-2状态码的用户名或密码错误. 所以上面的代码可能还有一些底层的东西需要修改.杯具啊.

说明下,account.value 是用户名, password.value.substr(0,16)是密码,需要md5加密后在进行传输.

jQuery.post("https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN",{username:account.value,pwd:jQuery.md5(password.value.substr(0,16)),f:"json"})
Object {readyState: 1, setRequestHeader: function, getAllResponseHeaders: function, getResponseHeader: function, overrideMimeType: function…}
abort: function (e) {
always: function () {
complete: function () {
done: function () {
error: function () {
fail: function () {
getAllResponseHeaders: function () {
getResponseHeader: function (e) {
isRejected: function () {
isResolved: function () {
overrideMimeType: function (e) {
pipe: function (e, t, n) {
progress: function () {
promise: function (e) {
readyState: 4
responseText: "{↵"Ret": 400,↵"ErrMsg": "",↵"ShowVerifyCode": 0,↵"ErrCode": -3↵}↵"
setRequestHeader: function (e, t) {
state: function () {
status: 200
statusCode: function (e) {
statusText: "OK"
success: function () {
then: function (e, t, n) {
__proto__: Object
高洛峰

请看我的最新博文,微信改版后主动推送~http://50vip.com/blog.php?i=349

PHP中文网

我也遇到了同样的问题,求解

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号