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




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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值