iOS微信机器人研究

2018-02-07  本文已影响435人  Jackson_Z

webwxinit 报错

"BaseResponse": {
"Ret": 1,//或1100
"ErrMsg": ""
}

当前微信网页版客户端分两个版本,本站楼主所说的是wx2.qq.com第二版,很多用户登录网页版客户端后会自动跳转到第一版wx.qq.com地址,这个版本跟具体用户绑定的,你们试一下使用网页版微信登录,看看你们出现的地址是第一版还是第二版;第一版微信和第二版请求数据是不一样的。拿登陆后重定向地址来说:第一版地址【https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=WXTICKET&uuid=WXUUID&lang=zh_CN&scan=时间字符串前10位数字&fun=new&version=v2】,第二版地址【https://wx2.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage?ticket=WXTICKET&uuid=WXUUID&lang=zh_CN&scan=时间字符串前10位数字】,大写字母为需要给出参数的变量。

Ret 返回1101,在别处登录了;数据返回空,传参方式错误,是request payload 方式传参,解决如下
    /**
   微信初始化
   */
    -(void)webwxinitSuccess:(void(^)(BOOL ret))callback {
    NSString *deviceID = [self getDeviceID];
    NSDictionary *dict = @{ @"Uin": _wxuin,
                            @"Sid": _wxsid,
                            @"Skey": _skey,
                            @"DeviceID":deviceID};
    NSDictionary *para = @{@"BaseRequest":dict};
    NSString *r = [self currentTimeStr];
    NSString *url = [NSString stringWithFormat:@"https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxinit?r=%@&pass_ticket=%@",r,_pass_ticket];
    HPNetWorkTool *manager = [HPNetWorkTool sharedNetworkTool];
    NSMutableURLRequest *request = [manager.requestSerializer requestWithMethod:@"POST" URLString:url parameters:nil error:nil];
    NSData *data = [NSJSONSerialization dataWithJSONObject:para options:NSJSONWritingPrettyPrinted error:nil];
    [request setHTTPBody:data];

    __block NSURLSessionDataTask *task = [manager
                                          dataTaskWithRequest:request
                                          completionHandler:^(NSURLResponse * __unused
                                                              response, id responseObject, NSError *error) {
                                              if (error) {
                                                  FBLog(@"%@",error);
                                              } else {
                                                  NSString *str = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
                                                  FBLog(@"str:%@",str);
                                              }
                                          }];
    
    [task resume];

    
    
}
上一篇下一篇

猜你喜欢

热点阅读