插件APP先来壹个亿 IOS插件LB2.0 最新插件开发代码。连接代码 自动化功能

来源:互联网 发布:ddos攻击软件 编辑:程序博客网 时间:2024/05/23 18:14




W信 :jjjj6654

#ifndef MMTOOLS_H

#define MMTOOLS_H




#ifdef __cplusplus
extern "C" {
#endif


#ifdef MMTOOLS_EXPORTS
#define MMTOOLS_API __declspec(dllexport)
#else
#define MMTOOLS_API __declspec(dllimport)
#endif


/************************************************************************/
/* 使用注意:
1.本DLL支持多线程操作,但每个pWorker指针是线程相关的。
2.在使用所有接口前,需要全局调用一次WxUnlockComponent()对DLL进行解锁。
3.操作完后需要调用WxDeinit()释放内存。
4.获取帐号信息时可先使用快速登陆缩短操作时间。
5.如无任何说明,则DLL所有涉及到的字符串参数与字符串返回值都统一使用UTF-8格式,显示时需要手动转换成GBK。
6.此DLL接口基本与WxID接口兼容,但部分MicroWeb开关的接口改成了Wx,找不到的接口则代表已经移除(历史遗留)。
7.所有操作失败后都可以调用WxGetLastError()获取具体的错误信息。
8.所有接口的参数错误都返回-100.
*/
/************************************************************************/


/************************************************************************/
/* 解锁DLL组件
返回:
成功返回true,失败返回false
实例:
WxUnlockComponent();
注意:
此接口必须在DLL加载后全局调用一次以解锁组件!
*/
/************************************************************************/
MMTOOLS_API bool WxUnlockComponent();


/************************************************************************/
/* 初始化接口指针
返回:
成功返回组件指针,失败返回NULL
实例:
WxInit();
注意:
在调用此接口前需要调用WxUnlockComponent()对DLL进行解锁。
*/
/************************************************************************/
MMTOOLS_API void* WxInit();


/************************************************************************/
/* 获取最后一次操作失败的具体信息
参数:
pWorker:由WxInit()返回的指针
返回值:
错误信息字符串指针。
实例:
const char* pErrMsg = WxGetLastError(pWorker);
*/
/************************************************************************/
MMTOOLS_API const char* WxGetLastError(void *pWorker);


/************************************************************************/
/* 设置代理
参数:
pWorker:由WxInit()返回的指针
pProxyHost:代理服务器IP地址
nPort:代理服务器端口
nProxyType:代理服务器类型,1为HTTP代理,2为Socket4代理,3为Socket5代理。当指定为3时,必须指定用户名与密码。
pUserName:登陆Socket5代理服务器的用户名
pPassword:登陆Socket5代理服务器的用户名密码
返回值:
无。
实例:
WxSetProxy(pWorker, "xxx.xxx.xxx.xxx", 8080, 1, NULL, NULL);
WxSetProxy(pWorker, "xxx.xxx.xxx.xxx", 8088, 2, NULL, NULL);
WxSetProxy(pWorker, "xxx.xxx.xxx.xxx", 8323, 3, "username", "******");
注意:
WxSetProxy()需要在WxInit()调用后,WxLogin调用前设置。
设置代理服务器后,登陆或其它操作可能由于服务器原因而失败,此时需要手动检测错误并更新代理服务器。
恢复登陆前如需使用代理,要手动的设置一次。
*/
/************************************************************************/
MMTOOLS_API bool WxSetProxy(void *pWorker, const char *pProxyHost, int nPort, int nProxyType, const char *pUserName, const char *pPassword);


/************************************************************************/
/* 返回验证用户的Url
参数:
pWorker:由WxInit()返回的指针
pOutBuf:用来接收URL的缓冲区
nBufSize:缓冲区大小
实例:
char UrlBuf[1024] = {0};
WxGetVerifyUrl(pWorker, UrlBuf, 1024);
返回值:
WxLogin()登陆失败返回-106时,返回true,pOutBuf返回验证使用的URL
其它时候返回false
注意:
WxLogin()的pNickNameList设置为空时,服务器如果需要进行好友验证,此时会直接返回-106。
在检测到此错误码后,需要客户自己进行好友验证。验证步骤如下:
1.Get方式访问WxGetVerifyUrl()返回的Url。服务器正常情况下会返回Html数据,其中有包含需要Post到的Url地址,此地址需要自己解析。
安卓手机Get此Url时的Http Header如下伪代码表示:
req.UseGet();
req.put_Path(strUrl.c_str());//去掉前面的http://login.weixin.qq.com,
req.AddHeader("Host", strHost.c_str());
req.AddHeader("Connection", "keep-alive");
req.AddHeader("Accept", "text/html,application/xml,application/xhtml+xml,application/xml;q=0.9,image/webp,* /*;q=0.8"); !!!此处* /*之间有空格,代码注释原因,原本没有
req.AddHeader("User-Agent", "Mozilla/5.0 (Linux; Android; CTC/2.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36 MicroMessenger/5.3.0.80_r701542.440");
//req.AddHeader("Accept-Encoding", "gzip,deflate");//可加此行,也可不加,加了后会返回GZIP压缩后的数据
req.AddHeader("Accept-Language", "zh-CN,en-US;q=0.8");
if (!strReferUrl.empty())//此处访问时Referer可以不设置
req.AddHeader("Referer", strReferUrl.c_str());
if (!strCookie.empty())//Cookie来自https://support.weixin.qq.com,此处不设置也可以正常访问
req.AddHeader("Cookie", strCookie.c_str());
req.AddHeader("X-Requested-With", "com.tencent.mm");
2.Get成功返回数据后,按照返回的Html的意图,构造访问如下网址:
"https://support.weixin.qq.com/cgi-bin/mmsupport-bin/antibaduser?action=FF&tick=x"
tick的值取为WxGetVerifyUrl()返回的Url中的tick。
注意:此步骤与下面的所有提交步骤的Http Header都与第一步相同。Referer为第一步请求的Url。
3.第二步成功后会返回用户列表数据。类似如下:
{
"ret" : 0,
"times" : "2",
"list" : [
{
"nick" : "潘xx",
"hash" : "xxx",
"head" : "http://wx.qlogo.cn/mmhead/x/132"
},
......
{
"nick" : "xxx",
"hash" : "xxx",
"head" : "http://wx.qlogo.cn/mmhead/y/132"
}
]
}
此处的nick为用户的昵称。
hash是一串字符串,需要提交给服务器的数据。
head为用户的头像Url,后面的132是分辨率大小,改为0就是最大的头像。
此步骤需要用户自己通过对比nick或head的方式找到2个好友的hash值,下一步需要使用。
4.构造如下网址进行Post:
"https://support.weixin.qq.com/cgi-bin/mmsupport-bin/antibaduser"
Post的数据为"action=FF&tick=x&ans=xxx@2Fyyy"
action与tick与Get时一样。
ans的值为2个用户的Hash字符串,使用%2F分隔。
Post成功后会返回,{"ret":0,"msg":"right"},返回其它值表示出错。
Post完毕后,使用相同的设备信息进行登陆就不需要验证好友了。
*/
/************************************************************************/
MMTOOLS_API bool WxGetVerifyUrl(void *pWorker, char *pOutBuf, int nBufSize);


/************************************************************************/
/* 登陆微信帐号
参数:
pWorker:由WxInit()返回的指针
pUserName:用户名
pUserPwd:用户密码
bFastLogin:是否快速登陆,为true时不会获取所有好友列表,为false时正常登陆,获取所有好友列表 速度较悭
pLoginStateFile:状态文件路径。此文件为以前WxDumpLoginState()保存的状态文件路径,如果淌有,可以指定为NULL
实例:
WxLogin(pWorker, "xxx", "***", "wxid_xxx_state.bin");
返回值:
0:操作成功
其它:登陆时出错
*/
/************************************************************************/
MMTOOLS_API int WxLogin(void *pWorker, const char *pUserName, const char *pUserPwd, bool bFastLogin, const char *pLoginStateFile);


typedef struct tagWxUserInfo
{
char id[256]; //微信ID
char nickname[256];//昵称
int sex; //性别:0为空,1为男,2为女
char city[256];//所在地区:汉语拼音
int verify_flag;//验证标志
} *PWxUserInfo, WxUserInfo;
/************************************************************************/
/* 获取QQ开通的微信号信息
参数:
pWorker:由WxInit()返回的指针
pSearch:要搜索的帐号名。可以是QQ号与昵称,为NULL或空时,获取当前登陆用户的信息
outUserInfo:输出参数,用于接收帐号信息
返回值:
0:操作成功
-101:连接服务器失败
-4:未找到QQ对应的微信信息
其它:其它类型的错误
实例:
WxUserInfo userinfo;
WxGetUserInfo(pWorker, "xxxx", userinfo);

WxGetUserInfo(pWorker, NULL, userinfo);
*/
/************************************************************************/
MMTOOLS_API int WxGetUserInfo(void *pWorker, const char *pSearch, WxUserInfo &outUserInfo);


/************************************************************************/
/* 绑定邮箱
参数:
pWorker:由WxInit()返回的指针
pEmail:要绑定的邮箱
返回值:
0:操作成功
-2:邮箱地址错误
其它:绑定邮箱失败
实例:
WxBindEmail(pWorker, "xxx@126.com");
*/
/************************************************************************/
MMTOOLS_API int WxBindEmail(void *pWorker, const char *pEmail);


/************************************************************************/
//TODO 待实现 WxUnbindEmail
/* 解绑邮箱
参数:
pWorker:由WxInit()返回的指针
返回值:
0:操作成功
其它:其它类型的错误
*/
/************************************************************************/
MMTOOLS_API int WxUnbindEmail(void *pWorker);


/************************************************************************/
/* 解绑手机号
参数:
pWorker:由WxInit()返回的指针
返回值:
0:操作成功
其它:操作失败
实例:
WxUnbindMobile(pWorker);
*/
/************************************************************************/
MMTOOLS_API int WxUnbindMobile(void *pWorker);


/************************************************************************/
/* 解绑QQ
参数:
pWorker:由WxInit()返回的指针
返回值:
0:操作成功
-1:此号码只能在新设备上使用3天以上才能解绑
其它:其它类型的错误
*/
/************************************************************************/
MMTOOLS_API int WxUnbindQQ(void *pWorker);


/************************************************************************/
/* 退出登陆
参数:
pWorker:由WxInit()返回的指针
返回值:
0:操作成功
-101:连接服务器失败
其它:其它类型的错误
实例:
WxLogout(pWorker)
注意:
退出登陆后需要重新调用WxSetDeviceInfo()设置设备信息!
*/
/************************************************************************/
MMTOOLS_API int WxLogout(void *pWorker);


/************************************************************************/
/* 释放内存,在调用完一轮后必须调用,否则会内存泄露
参数:
pWorker:由WxInit()返回的指针
实例:
WxDeinit(pWorker)
*/
/************************************************************************/
MMTOOLS_API void WxDeinit(void *pWorker);


/************************************************************************/
/* 获取手机号码的微信号信息
参数:
pWorker:由WxInit()返回的指针
pPhoneNumber:国产手机号码,长度11位
outUserInfo:输出参数,用于接收帐号信息
返回值:
0:操作成功
-101:连接服务器失败
-4:未找到手机号码对应的微信信息
实例:
WxUserInfo outUserInfo;
WxGetPhoneUserInfo(pWorker, "13322334455", outUserInfo);
*/
/************************************************************************
MMTOOLS_API int WxGetPhoneUserInfo(void *pWorker, const char *pPhoneNumber, WxUserInfo &outUserInfo);


/************************************************************************/
/* 设置微信帐号的用户昵称
参数:
pWorker:由WxInit()返回的指针
pNickName:用户昵称,UTF-8格式
返回值:
0:操作成功
其它:昵称格式不对
实例:
WxSetNickName(pWorker, "轻飞扬");
*/
/************************************************************************/
MMTOOLS_API int WxSetNickName(void *pWorker, const char *pNickName);


/************************************************************************/
/* 修改微信帐号的信息
参数:
pWorker:由WxInit()返回的指针
nSex:性别,1为男,2为女
pProvince:省份,汉语拼音!
pCity:城市,汉语拼音!
pSignature:个性签名,最长为30个字符!UTF-8格式
返回值:
0:操作成功
其它:修改信息失败,省份与城市只支持修改为中国境内的地区。通常修改不会出错
实例:
WxSetPersonalInfo(pWorker, 2, "henan", "luoyang", "图样图森破...");
*/
/************************************************************************/
MMTOOLS_API int WxSetPersonalInfo(void *pWorker, int nSex, const char *pProvince, const char *pCity, const char *pSignature);


/************************************************************************/
/* 修改头像
参数:
pWorker:由WxInit()返回的指针
pImgHeadFilePath:头像图片文件路径,格式为jpg,官方没有分辨率限制,
建议使用480X480分辨率,且头像文件保存在英文路径下。
返回值:
0:操作成功
-101:连接服务器失败
其它:修改信息失败
实例:
WxUploadHeadImg(pWorker, "d:\\1.jpg");
*/
/************************************************************************/
MMTOOLS_API int WxUploadHeadImg(void *pWorker, const char *pImgHeadFilePath);



char *serial; //可使用WxGenerateSerialNumber()生成。
char *guid; //可使用WxGenerateGUID()生成。
char *language;//语言。如中文为“zh_CN”,台湾为“zh_TW”,英语为“en”,韩语为“ko_KR”,日语为“ja_JP”,意大利为“it_IT”,德语为“de_DE”,法语为“fr_FR”。
//可参见:http://developer.android.com/reference/java/util/Locale.html
char *phonenumber;//当前设备使用的手机号码,11位。
char *productname;//手机名称,如Nexus 5为“hammerhead”,三星9300为“GT-I9300”
char *buildnumber;//系统版本号,如三星的“JZO54K”,LG Nexus5的“KTU84Q”。
char *ssid; //自己的WIFI名称,如“wificmcc”。
char *routermac;//路由器MAC地址,如"11:27:23:16:4b:b2"
int width; //设备宽。三星9300为720, LG Nexus5为1080
int height; //设备。三星9300为1280, LG Nexus5为1776
} DevInfo;
/************************************************************************/
/* 设置设备信息
参数:
pWorker:由WxInit()返回的指针
pDeviceInfo:设备信息结构体指针
返回值:

示例:
char imei_buf[32] = {0};
char imsi_buf[32] = {0};
char iccid_buf[32] = {0};
char androidid_buf[32] = {0};
char mac_buf[32] = {0};
char serial_buf[32] = {0};
char guid_buf[32] = {0};
char wifi_name_buf[32] = {0};
char routermac_buf[32] = {0};
char phonenumber_buf[16] = {0};


WxGenerateIMEI(imei_buf, 32);
WxGenerateIMSI(imsi_buf, 32);
WxGenerateICCID(iccid_buf, 32);
WxGenerateAndroidID(androidid_buf, 32);
WxGenerateMAC (mac_buf, 32);
WxGenerateSerialNumber(serial_buf, 32);
WxGenerateGUID(guid_buf, 32);
WxGenerateMAC (routermac_buf, 32);
WxGeneratePhoneNumber(phonenumber_buf, 16);


DevInfo di;
di.devicebrand = "google";
di.devicename = "Nexus 5";
di.manufacturer = "LGE";
di.devicemodel = "Nexus 5armeabi-v7a";
di.osversioncode = "19";
di.osvername = "4.4.4";
di.incrementalname = "a2f1e2122b";
di.displayname = "cm_hammerhead-userdebug 4.4.4 KTU84Q a2f1e2122b test-keys";
di.imei = imei_buf;
di.imsi = imsi_buf;
di.iccid = iccid_buf;
di.androidid = androidid_buf;
di.mac = mac_buf;
di.bluetooth = "";
di.serial = serial_buf;
di.language = "zh_CN";
di.phonenumber = phonenumber_buf;
di.productname = "hammerhead";
di.guid = guid_buf;
di.buildnumber = "KTU84Q";
di.ssid = "wificmcc";
di.routermac = routermac_buf;
di.width = 1080;
di.height = 1776;


WxSetDeviceInfo(pWorker, &di);
注意:
此接口必须在WxInit()调用后、WxLogin()调用前调用!!
接口中使用的设备信息需要手动在本地保存,方便以后读取调用。


*/
/************************************************************************/
MMTOOLS_API void WxSetDeviceInfo(void *pWorker, DevInfo *pDeviceInfo);


/************************************************************************/
/* 生成随机的设备信息(设置型号固定为LG Nexus5)并自动调用WxSetDeviceInfo()进行设置
参数:
pWorker:由WxInit()返回的指针
返回值:

示例:
WxRandomDevice(pWorker);
*/
/************************************************************************/
MMTOOLS_API void WxRandomDevice(void *pWorker);


/************************************************************************/
/* 生成随机的IMEI值,使用标准算法:http://zh.wikipedia.org/wiki/Luhn%E7%AE%97%E6%B3%95
参数:
OutBuf:用来接收IMEI字符串的缓冲区
nBufLen:缓冲区的大小,必须大于15字节,一般为32字节即可。
返回值:

示例:
char Buf[32] = {0};
WxGenerateIMEI(Buf, 32);
*/
/************************************************************************/
MMTOOLS_API void WxGenerateIMEI(char *OutBuf, int nBufLen);


/************************************************************************/
/* 生成随机的AndroidID
参数:
OutBuf:用来接收AndroidID字符串的缓冲区
nBufLen:缓冲区的大小,必须大于16字节(16字节的AndroidID加一个字节的'\0'),一般为32字节即可。
返回值:

示例:
char AndroidIDBuf[32] = {0};
WxGenerateAndroidID(AndroidIDBuf, 32);
*/
/************************************************************************/
MMTOOLS_API void WxGenerateAndroidID(char *OutBuf, int nBufLen);


/************************************************************************/
/* 生成随机的GUID 'A'打头
参数:
OutBuf:用来接收GUID字符串的缓冲区
nBufLen:缓冲区的大小,必须大于16字节,一般为32字节即可。
返回值:

示例:
char GUIDBuf[32] = {0};
WxGenerateGUID(GUIDBuf, 32);
*/
/************************************************************************/
MMTOOLS_API void WxGenerateGUID(char *OutBuf, int nBufLen);


/************************************************************************/
//TODO WxAddBlackListRequest
/* 任意微信号拉黑
参数:
pWorker:由WxInit()返回的指针
pUserName:好举报的微信号
bAdd:true为拉黑,false为取消拉黑
返回值:
0:操作成功
非0:操作失败
示例:
WxAddBlackListRequest(pWorker, "wxid_xxxx", true);
*/
/************************************************************************/
MMTOOLS_API int WxAddBlackListRequest(void *pWorker, const char *pUserName, bool bAdd);


/************************************************************************/
/* 生成随机的MAC值
参数:
OutBuf:用来接收字符串的缓冲区
nBufLen:缓冲区的大小,必须大于20字节,一般为32字节即可。
返回值:

示例:
char Buf[32] = {0};
WxGenerateMAC(Buf, 32);
*/
/************************************************************************/
MMTOOLS_API void WxGenerateMAC(char *OutBuf, int nBufLen);


/************************************************************************/
/* 生成随机的手机号码
参数:
OutBuf:用来接收字符串的缓冲区
nBufLen:缓冲区的大小,必须大于11字节,一般为16字节即可。
返回值:

示例:
char Buf[16] = {0};
WxGeneratePhoneNumber(Buf, 16);
注意:
如果登陆时使用手机帐号登陆,可以不需要使用此接口。
*/
/************************************************************************/
MMTOOLS_API void WxGeneratePhoneNumber(char *OutBuf, int nBufLen);


/************************************************************************/
/* 生成随机的蓝牙地址值
参数:
OutBuf:用来接收BluetoothAddress字符串的缓冲区
nBufLen:缓冲区的大小,必须大于20字节,一般为32字节即可。
返回值:

示例:
char BluetoothAddressBuf[32] = {0};
WxGenerateBluetoothAddress(BluetoothAddressBuf, 32);
*/
/************************************************************************/
MMTOOLS_API void WxGenerateBluetoothAddress(char *OutBuf, int nBufLen);


/************************************************************************/
/* 生成随机的IMSI
参数:
OutBuf:用来接收IMSI字符串的缓冲区
nBufLen:缓冲区的大小,必须大于16字节,一般为32字节即可。
返回值:

示例:
char IMSIBuf[32] = {0};
WxGenerateIMSI(IMSIBuf, 32);
*/
/************************************************************************/
MMTOOLS_API void WxGenerateIMSI(char *OutBuf, int nBufLen);


/************************************************************************/
/* 生成随机的SN
参数:
OutBuf:用来接收SerialNumber字符串的缓冲区
nBufLen:缓冲区的大小,必须大于16字节,一般为32字节即可。
返回值:

示例:
char SerialNumberBuf[32] = {0};
WxGenerateSerialNumber(SerialNumberBuf, 32);
*/
/************************************************************************/
MMTOOLS_API void WxGenerateSerialNumber(char *OutBuf, int nBufLen);


/************************************************************************/
/* 生成随机的ICCID
参数:
OutBuf:用来接收ICCID字符串的缓冲区
nBufLen:缓冲区的大小,必须大于20字节,一般为32字节即可。
返回值:

示例:
char ICCIDBuf[32] = {0};
WxGenerateICCID(ICCIDBuf, 32);
*/
/************************************************************************/
MMTOOLS_API void WxGenerateICCID(char *OutBuf, int nBufLen);


/************************************************************************/
/* 采用验证手机号方式登陆微信第一步,发送验证码
参数:
pWorker:由WxInit()返回的指针
pMobile:要验证登陆的手机号码,通常是11位
pCountryCode:国家码。如中国为"+86"
返回值:
0:操作成功
非0:操作失败
示例:
WxBindMobileForLogin(pWorker, "13311223344", "+86");
注意:
此功能需要在WxInit()与WxSetDeviceInfo()后调用。不需要调用WxLogin()
*/
/************************************************************************/
MMTOOLS_API int WxBindMobileForLoginStage1(void *pWorker, const char *pMobile, const char *pCountryCode);


/************************************************************************/
/* 采用验证手机号方式登陆微信第二步,提交验证
参数:
pWorker:由WxInit()返回的指针
pMobile:要验证登陆的手机号码,通常是11位
pUserPwd:验证登陆成功后要设置的微信帐号密码,长度最少6位
pVerifyCode:短信验证码,目前长度是固定的6位
pCountryCode:国家码。如中国为"+86"
bLogout:是否退出登陆。为true就退出登陆,为false则保存在线。
返回值:
0:操作成功
非0:操作失败
示例:
WxBindMobileForLogin(pWorker, "13311223344", "pt121212", "123456", "+86");
注意:
此功能需要在WxBindMobileForLoginStage1()调用后收到验证码了再调用
*/
/************************************************************************/
MMTOOLS_API int WxBindMobileForLoginStage2(void *pWorker, const char *pMobile, const char *pUserPwd,
const char *pVerifyCode, const char *pCountryCode, bool bLogout);


/************************************************************************/
/* 设置微信号
参数:
pWorker:由WxInit()返回的指针
pWeixinName:微信号,由字母与数据的组合,字母开头,长度不小于6字节
返回值:
0:操作成功
-7:此微信号已经被使用过了
非0:操作失败
示例:
WxSetWeixinName(pWorker, "werxin1331223");
注意:
每个新注册的号只能调用成功设置一次
*/
/************************************************************************/
MMTOOLS_API int WxSetWeixinName(void *pWorker, const char *pWeixinName);


/************************************************************************/
/* 设置工作线程读写Socket的超时
参数:
pWorker:由WxInit()返回的指针
nSendIdleMs:最大写超时时间,单位毫秒
nReadIdleMs:最大读超时时间,单位毫秒
返回值:

示例:
设置读与写超时为10秒:
WxSetMaxIdleMs(pWorker, 10000, 10000);
注意:
此接口在WxInit()后WxLogin()前调用。
*/
/************************************************************************/
MMTOOLS_API void WxSetMaxIdleMs(void *pWorker, int nSendIdleMs, int nReadIdleMs);


/************************************************************************/
/* 保存当前登陆状态数据到文件
参数:
pWorker:由WxInit()返回的工作句柄指针
pLoginStateFileName:用来保存的文件完整路径。
返回值:
0表示成功,其它表示失败。
示例:
WxDumpLoginState(pWorker, "wxid_xxxx_loginstate.bin");
*/
/************************************************************************/
MMTOOLS_API int WxDumpLoginState(void *pWorker, const char *pLoginStateFileName);


/************************************************************************/
/* 从文件中加载当前登陆状态数据并登陆
参数:
pWorker:由WxInit()返回的工作句柄指针
pLoginStateFileName:用来保存的文件完整路径。
返回值:
0表示成功,-2表示激活登陆失败,可能需要重新登陆,其它表示失败。
示例:
WxLoadLoginState(pWorker, "wxid_xxxx_loginstate.bin");
注意:
此接口需要在WxInit()、WxSetDeviceInfo()接口后调用。
*/
/************************************************************************/
MMTOOLS_API int WxLoadLoginState(void *pWorker, const char *pLoginStateFileName);


/************************************************************************/
/* 更新获取消息一次!
参数:
pWorker:由WxInit()返回的工作句柄指针
返回值:
0表示成功,pBuf返回文本消息。其它表示失败。
示例:
char TxtBuf[2048] = {0};
WxGetLastTxtMsg(pWorker, TxtBuf, 2048);
注意:
使用WxSetTxtMsgHandler()接口后,需要自己手动调用WxUpdateMessage()来更新消息。
如果调用此接口后有新的消息,会自动通过WxSetTxtMsgHandler()回调函数来进行处理。
*/
/************************************************************************/
MMTOOLS_API int WxUpdateMessage(void *pWorker);


/************************************************************************/
/* 绑定QQ
参数:
pWorker:由WxInit()返回的指针
nQQ:QQ号码
pQQPwd:QQ密码
返回值:
0:操作成功
-1:此号码只能在新设备上使用3天以上才能解绑
其它:其它类型的错误
示例:
WxBindQQ(pWorker, 123456789, "qq1212");
注意:
QQ绑定成功后,此绑定的QQ号不能更新密码。否则,以后调用WxUnbindQQ()时会因检查原来的密码错误而解绑失败。
如果需要以后登陆时再解绑QQ号,则一定需要调用WxDumpLoginState()保存状态信息。
*/
/************************************************************************/
MMTOOLS_API int WxBindQQ(void *pWorker, int nQQ, const char *pQQPwd);


/************************************************************************/
/* 绑定手机号第一步,发送验证码
参数:
pWorker:由WxInit()返回的指针
pMobile:要绑定的手机号码
bNewBind:是否为新绑定。true表示目前没绑定手机是新绑定,false表示是更换绑定
返回值:
0:操作成功
-1:此号码只能在新设备上使用3天以上才能解绑
其它:其它类型的错误
示例:
WxBindMobileStep1(pWorker, "+8613312345678", true);
注意:


*/
/************************************************************************/
MMTOOLS_API int WxBindMobileStep1(void *pWorker, const char *pMobile, bool bNewBind);


/************************************************************************/
/* 绑定手机号第二步,提交绑定
参数:
pWorker:由WxInit()返回的指针
pMobile:要绑定的手机号码
bNewBind:是否为新绑定。true表示目前没绑定手机是新绑定,false表示是更换绑定
返回值:
0:操作成功
-1:此号码只能在新设备上使用3天以上才能解绑
其它:其它类型的错误
示例:
WxBindMobileStep2(pWorker, "+8613312345678", "123456", true);
注意:


*/
/************************************************************************/
MMTOOLS_API int WxBindMobileStep2(void *pWorker, const char *pMobile, const char *pVerifyCode, bool bNewBind);


/************************************************************************/
/* 向服务器报告设备ID
参数:
pWorker:由WxInit()返回的指针
返回值:
0:操作成功
其它:其它类型的错误
示例:
WxReportDevice(pWorker);
注意:
此接口在每次注册前使用一个新设备与登陆一个新设备前使用一次
*/
/************************************************************************/
MMTOOLS_API int WxReportDevice(void *pWorker);


/************************************************************************/
/* 获取公众号的菜单
参数:
pWorker:由WxInit()返回的指针
pPublicUserName:公众号名称,以gh_开头。比如网易新闻客户端为“gh_d897cc1774c1”
返回值:
成功返回公众号的信息
失败返回空字符串
示例:
const char *pInfo = WxGetPublicUserMenu(pWorker, "gh_d897cc1774c1");
注意:
此接口必须在加了公众号的关注后才可以调用。
*/
/************************************************************************/
MMTOOLS_API const char* WxGetPublicUserMenu(void *pWorker, const char *pPublicUserName);


/************************************************************************/
/* 采用手机注册微信帐号第一步,发送验证码
参数:
pWorker:由WxInit()返回的指针
pMobile:要验证登陆的手机号码,通常是11位
pCountryCode:国家码。如中国为"+86"
返回值:
0:操作成功
非0:操作失败
示例:
WxMobileRegisterStage1(pWorker, "13311223344", "+86");
注意:
此功能需要在WxInit()与WxSetDeviceInfo()后调用。不需要调用WxLogin()
*/
/************************************************************************/
MMTOOLS_API int WxMobileRegisterStage1(void *pWorker, const char *pMobile, const char *pCountryCode);


/************************************************************************/
/* 采用手机注册微信帐号第二步,提交注册
参数:
pWorker:由WxInit()返回的指针
pMobile:要注册的手机号码,通常是11位
pNickName:注册的帐号昵称。如果是中文,则必须是UTF-8编码过的字符串
pUserPwd:帐号密码,长度最少6位
pVerifyCode:短信验证码,目前长度是固定的6位
pCountryCode:国家码。如中国为"+86"
返回值:
0:操作成功
非0:操作失败
-123:此手机被其它帐号绑定了,无法注册!
示例:
WxMobileRegisterStage2(pWorker, "13311223344", "Lisi", "pt121212", "123456", "+86");
注意:
此功能需要在WxMobileRegisterStage1()调用后收到验证码了再调用
*/
/************************************************************************/
MMTOOLS_API int WxMobileRegisterStage2(void *pWorker, const char *pMobile, const char *pNickName, const char *pUserPwd,
const char *pVerifyCode, const char *pCountryCode);


/************************************************************************/
/* 上传通讯录获取手机好友
参数:
pWorker:  由WxInit()返回的指针
pMobileList: 手机号列表,使用逗号分隔。
pEmailList:  Email列表,使用逗号分隔。
返回值:
0:操作成功
非0:操作失败
示例:
WxGetMFriendList(pWorker, "13312345678,15087654321", "fuckweixin@gmail.com,fuckgfw@outlook.com");
*/
/************************************************************************/
MMTOOLS_API int WxGetMFriendList(void *pWorker, const char *pMobileList, const char *pEmailList);


/************************************************************************/
/* 修改帐号密码
参数:
pWorker:由WxInit()返回的工作句柄指针
pOldPwd:旧密码
pNewPwd:新密码
返回值:
0:操作成功
非0:操作失败
示例:
WxChangePassword(pWorker, "xxxxxx", "yyyyyy");
*/
/************************************************************************/
MMTOOLS_API int WxChangePassword(void *pWorker, const char *pOldPwd, const char *pNewPwd);


/************************************************************************/
/* 测试帐号是否被封
参数:
pWorker: 由WxInit()返回的工作句柄指针
pUserName: 微信帐号名。
pUserPwd: 微信密码
返回值:
-100:输入参数错误
0:表示帐号被封
1:帐号正常
其它值表示帐号登陆失败
实例:
int ret = WxIsAccountBlocked(pWorker, "lisi", "abc123");
注意:
此接口会在测试前自动调用WxRandomDevice()来生成一次随机设备。


*/
/************************************************************************/
MMTOOLS_API int WxIsAccountBlocked(void *pWorker, const char *pUserName, const char *pUserPwd);


/************************************************************************/
/* 上传语音获取它的MEDIA ID值
参数:
pWorke:由WxInit()返回的指针
pAmrFile:录音AMR文件路径。文件大小要小于16K
pOutBuf:缓冲区用来接收返回的media id
nBufLen:随缓冲区大小 通常1024字节就足够了
返回值:
卡券的数量
非0:操作失败
示例:
char buf[1024] = {0};
int ret = WxGetVoiceMediaId(pWorker, "123.amr", buf, sizeof(buf));
*/
/************************************************************************/
MMTOOLS_API int WxGetVoiceMediaId(void *pWorker, const char *pAmrFile, char *pOutBuf, int nBufLen);


/************************************************************************/
/* 查看附近好友
参数:
pWorke:由WxInit()返回的指针
lng:自己的纬度
lat:自己的经度
precision:精度,10~90之间
返回值:
卡券的数量
非0:操作失败
示例:
int ret = WxNearByUser(pWorker, 115.680555, 23.752111, 40);
*/
/************************************************************************/
MMTOOLS_API int WxNearByUser(void *pWorker, float lng, float lat, int precision);


#ifdef __cplusplus
}
#endif

#endif


W信 :jjjj6654

W信 :jjjj6654
阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃大胺片过敏蛋皮又痛又痒怎么办 刚出生二十天宝宝蛋蛋有疝气怎么办 宝宝八个月蛋蛋一个没掉下来怎么办 引产23天同房内射肚子疼怎么办l 房东禁止养宠物如果养了怎么办 圆通快递退回但没有签收记录怎么办 信用卡没有收到又退回去了怎么办 新疆不给邮寄快递被退回运费怎么办 淘宝上已付款还在想留言怎么办 b超显示肾结石但x光看不到怎么办 洗脚让洗脚妹摸射精了怎么办 在新疆塔城干活不给工资怎么办 挨打了屁股肿的又大又硬怎么办 李贞将军有关电影小腿肌腱疼怎么办 朋友老婆老是背地里说我坏话怎么办 当你听到别人在背后说你时怎么办 分手了和前任是同事需要见面怎么办 和附近的人聊天他约你见面怎么办 微信约妹子发完红包拉黑了怎么办 户口本被前妻扣着不能结婚怎么办 部队当兵户口没注销退伍回去怎么办 没打疫苗的狗狗咬了我的嘴巴怎么办 新车被撞了还没上牌怎么办? 签了合同上两天班想辞职怎么办 刚到公司上班两天想辞职怎么办 签入职合同一天后就不想干了怎么办 入职材料交了第二天就想离职怎么办 宝宝40周多了还不想出来怎么办 工厂上班不到三个月不给辞工怎么办 单位辞职后不上班了保险怎么办 药流6个小时没流下来怎么办 小孩有口臭怎么办这几天不想吃饭 七个月宝宝口臭不想吃饭怎么办啊 老公工作累想要辞职不上班怎么办 药物流产后第6天咋下坠的怎么办 药流第一天胎囊没有掉下来怎么办 药流还有一点没流干净怎么办 3个月的宝宝被电了一下怎么办 宝宝吃奶粉过敏下巴红有疙瘩怎么办 小孩牙齿没掉又长出新牙怎么办 8个月婴儿地包天怎么办