old_flsystem/PCRobot/PCWechat/Wechat_Xiaoxie_QY_Analysis.cs

1159 lines
84 KiB
C#
Raw Normal View History

2022-09-20 03:10:29 +00:00
using CsharpHttpHelper;
using Newtonsoft.Json;
using NM_WeChat;
using PCRobot.Entitys;
using PCRobot.Pack;
using PCRobot.Properties;
using PCRobot.Utils;
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
using System.Web.Caching;
using System.Windows.Forms;
using Newtonsoft.Json.Linq;
namespace PCRobot.PCWechat
{
/*
https://www.showdoc.cc/WxWorkNewHook?page_id=3846144660177490
/////密码784615627.
*/
public partial class Wechat_Xiaoxie_QY
{
private static Dictionary<uint, int> MT_APP_READY_MSG_BIND = new Dictionary<uint, int>();
// 接收消息回调
private static void WxRecvCallback(uint _dwClient, IntPtr intPtr, uint dwSize)
{
try
{
byte[] body = new byte[dwSize];
Marshal.Copy(intPtr, body, 0, body.Length);
var recvData = Encoding.UTF8.GetString(body).Replace("\0", "").Trim();//再转成UTF8
var dwClientid = _dwClient;
if (WechatClient.IsDebug)
LogHelper.GetSingleObj().Debug("调试企业收到文本消息", $"{dwClientid} -> {recvData}\r\n");
//var method = new Action(delegate ()
Task.Factory.StartNew(delegate ()
{
try
{
Console.WriteLine("企业收到消息:" + recvData);
var jObj = JObject.Parse(recvData);
if (jObj == null) return;
if (!jObj.ContainsKey("type") || jObj["type"] == null)
return;
var data = jObj["data"];
var type = jObj["type"].ToString();
MsgType msgType;
if (!Enum.TryParse(type, out msgType)) return;
//获取机器人对象
WechatUser user = WechatClient.GetUser(dwClientid, WechatType.Xiaoxie_QY);
Console.WriteLine($"dwClientid = {dwClientid}");
switch (msgType)
{
case MsgType.MT_APP_READY_MSG:
MT_APP_READY_MSG_BIND[dwClientid] = int.Parse(data["pid"].ToString());
break;
case MsgType.MT_PARAMS_ERROR_MSG:
{ }
break;
case MsgType.MT_USER_LOGIN://登陆消息
{
var wxid = data["user_id"].ToString();
user = WechatClient.GetUser(wxid, dwClientid, WechatType.Xiaoxie_QY);
user.Nickname = data["username"].ToString();
user.HeaderUrl = data["avatar"].ToString();
//user.DBFile = data["wx_user_dir"].ToString();
user.Pid = MT_APP_READY_MSG_BIND.ContainsKey(dwClientid) ? MT_APP_READY_MSG_BIND[dwClientid] : 0; //uint.Parse(data["pid"].ToString());
user.Phone = data["mobile"].ToString();
user.Uin = wxid;
WechatClient.OnRefUserEvent(user, WaitLoginResult);
}
break;
case MsgType.MT_USER_LOGOUT:
{
var wxid = data["user_id"].ToString();
user = WechatClient.Users.FirstOrDefault(f => f.Key == wxid).Value;
if (user != null)
{
LogHelper.GetSingleObj().Info("系统", $"LogOut_QY事件退出,Uin:{user.Uin},微信:{user.Nickname}({wxid})");
WechatClient.RemoveUser(user);
}
}
break;
case MsgType.MT_LOGIN_QRCODE_MSG:
{
//{"data":{"file":"C:\\Users\\秒单客006\\Documents\\WXWork\\Global\\Image\\089d9de9-cc40-458a-af4a-b39a04e2f95f.jpg"},"type":11028}
if (data["file"] == null) return;
if (MT_APP_READY_MSG_BIND.ContainsKey(dwClientid))
{
var file = data["file"].ToString();
if (File.Exists(file))
{
var cfBase64 = Common.ConvertImageToBase64(Image.FromFile(file));
var codeInfo = new RemoteLoginCode() { pid = MT_APP_READY_MSG_BIND[dwClientid], cImgB64 = cfBase64, b64Md5 = HttpHelper.ToMD5(cfBase64), rType = RobotType., t = HttpExtend.GetTimeStamp(DateTime.Now) };
Cache cache = HttpRuntime.Cache;
//查找 md5 的缓存,不存在则返回null
object item = cache[RemoteCache];
cache.Insert(RemoteCache, codeInfo, null, DateTime.Now.AddSeconds(3), Cache.NoSlidingExpiration);
RemoteLoginCodes.Add(codeInfo);
}
}
}
break;
case MsgType.MT_GET_OWNER_INFO_MSG:// 获取自己信息
{
#region
/*
{
"data": {
"account": "xxxxx@xxx.onexmail.com", // 帐号
"acctid": "xxxxx", // acctid
"avatar": "http://wework.qpic.cn/bizmail/xxxDM808qnyFVjQ/0", // 头像
"corp_id": "1970325032041886", // 公司id
"corp_name": "xxxxxxxxx有限公司", // 公司全称
"corp_short_name": "xxxxx", // 公司简称
"email": "xxxxx@qq.com", // 邮箱
"job_name": "总经理", // 职位
"mobile": "137xxxxxxxxx", // 手机号
"nickname": "小邪212", // 昵称
"position": "总经理", // 职位
"sex": 2, // 性别 0 未知1男2女
"user_id": "1688xxxx353xxxx", // 用户id
"username": "小邪" // 名称
},
"type": 11035
}
*/
#endregion
if (data == null || user == null) return;
var f = new WorkFriendInfo();
f.avatar = data["avatar"]?.ToString();
//f.conversation_id = data["conversation_id"]?.ToString();
//f.desc = item["desc"]?.ToString();
f.nickname = data["nickname"]?.ToString();
f.position = data["position"]?.ToString();
f.realname = data["username"]?.ToString();
f.remark = data["username"]?.ToString();
f.sex = data["sex"].ToObject<int>();
f.user_id = data["user_id"].ToString();
f.username = data["username"].ToString();
var friend = user.WorkFriends.FirstOrDefault(z => z.user_id == f.user_id);
if (friend == null)
user.WorkFriends.Add(f);
}
break;
case MsgType.MT_GET_INNER_USERS_MSG:// 获取内部联系人列表
{
}
break;
case MsgType.MT_GET_EXTERNAL_USERS_MSG:// 获取外部联系列表
{
#region
#region
//{"data":{"page_num":1,"page_size":10000,"total":44,"total_page":1,"user_list":[{"acctid":"AoQi","add_time":1594358458,"avatar":"https://wework.qpic.cn/wwhead/duc2TvpEgST9hicuyypLEKMFMfDnH4KeYskpFLBx46N4YMPdu9ibu6uvic9tRMx1O5oc1e94LvWHZI/0","conversation_id":"S:1688853884018611_1688853956558440","corp_id":"1970325130121266","mobile":"","nickname":"A46「猫七」【置顶常用】","position":"","realname":"**新","remark":"","sex":2,"unionid":"ozynqspv4YiVjaa04jYgRulxWfQ8","user_id":"1688853884018611","username":"A46🐱「猫七」【置顶常用】"},{"acctid":"","add_time":1588747919,"avatar":"http://wx.qlogo.cn/mmhead/Q3auHgzwzM4pFj4ic9BTuoseZNnibY90lvKkoAFichAcjjao0WqvzvHnQ/0","conversation_id":"S:1688853956558440_7881301062943857","corp_id":"1970325134026788","mobile":"","nickname":"","position":"","realname":"","remark":"查优惠小助手(梦瑶)","sex":2,"unionid":"ozynqsjIzu8BxAu_dcoFLWuFSVWA","user_id":"7881301062943857","username":"A查优惠小助手-梦瑶"},{"acctid":"","add_time":1588745188,"avatar":"http://wx.qlogo.cn/mmhead/GtsibMna7cCkYQ3fJffrweyEvlODDOH1SCzOtwflnBsc/0","conversation_id":"S:1688853956558440_7881301162944044","corp_id":"1970325134026788","mobile":"","nickname":"","position":"","realname":"","remark":"查优惠小助手(抹茶)","sex":2,"unionid":"ozynqsjMTV4VYwLqjcDcfcH5VFsI","user_id":"7881301162944044","username":"老妖助理15"}]},"type":11037}
#endregion
if (data == null || user == null)
return;
var _type = RobotIsRunType.;
if (user.IsGetDic.ContainsKey(_type))
{
if (user.IsGetDic[_type])
return;
}
try
{
user.IsGetDic[_type] = true;
var jArr = (JArray)data["user_list"];
for (int i = 0; i < jArr.Count; i++)
{
var item = jArr[i];
var username = item["user_id"]?.ToString();
//if (username.IsGongZhongHao()) continue;
WorkFriendInfo f = new WorkFriendInfo();
f.acctid = item["acctid"]?.ToString();
f.avatar = item["avatar"]?.ToString();
f.conversation_id = item["conversation_id"]?.ToString();
f.corp_id = item["corp_id"]?.ToString();
f.mobile = item["mobile"]?.ToString();
f.nickname = item["nickname"]?.ToString();
f.position = item["position"]?.ToString();
f.realname = item["realname"]?.ToString();
f.remark = item["remark"]?.ToString();
f.sex = item["sex"].ToObject<int>();
f.user_id = username;
f.username = item["username"]?.ToString();
var friend = user.WorkFriends.FirstOrDefault(z => z.user_id == f.user_id);
if (friend == null)
user.WorkFriends.Add(f);
}
}
catch (Exception ex)
{
LogHelper.GetSingleObj().Error("机器人企业获取内部联系人列表", $@"原始数据:{recvData}
:{ex.Message} - {ex.StackTrace}");
}
finally
{
Thread.Sleep(100);
user.IsGetDic.Remove(_type);
}
#endregion
}
break;
case MsgType.MT_GET_ROOMS_MSG:// 获取群聊列表
{
#region
//{"data":{"page_num":1,"page_size":100000,"room_list":[{"conversation_id":"R:10696051756073403","create_time":1587126543,"create_user_id":"7881302509911391","is_admin":0,"is_creator":0,"is_external":1,"nickname":"软件反馈群","total":21},{"conversation_id":"R:238567000711635","create_time":1644470134,"create_user_id":"1688850065257778","is_admin":0,"is_creator":0,"is_external":0,"nickname":"张谊玉、洪荒老道、祁举兵","total":5},{"conversation_id":"R:1970325073072411","create_time":1559292789,"create_user_id":"1688853956450720","is_admin":0,"is_creator":0,"is_external":0,"nickname":"成都秒单客网络科技有限公司","total":20},{"conversation_id":"R:95666354828251","create_time":1644746098,"create_user_id":"1688853956558440","is_admin":0,"is_creator":1,"is_external":0,"nickname":"..............................................","total":4},{"conversation_id":"R:10774828428256418","create_time":1644804316,"create_user_id":"1688853956558440","is_admin":0,"is_creator":1,"is_external":1,"nickname":",,,,,,,,,,","total":3},{"conversation_id":"R:289059290","create_time":1618382594,"create_user_id":"1688853956558440","is_admin":0,"is_creator":1,"is_external":0,"nickname":"转发综合群","total":4},{"conversation_id":"R:10757092148832341","create_time":1648025176,"create_user_id":"1688853956558440","is_admin":0,"is_creator":1,"is_external":1,"nickname":"企业外部群","total":41}],"total":7,"total_page":1},"type":11038}
#endregion
if (data == null || user == null)
return;
var _type = RobotIsRunType.;
if (user.IsGetDic.ContainsKey(_type))
{
if (user.IsGetDic[_type])
return;
}
try
{
user.IsGetDic[_type] = true;
var member_list = (JArray)data["room_list"];
if (member_list == null)
return;
for (int i = 0; i < member_list.Count; i++)
{
//{"conversation_id":"R:10696051756073403","create_time":1587126543,"create_user_id":"7881302509911391","is_admin":0,"is_creator":0,"is_external":1,"nickname":"软件反馈群","total":21}
var item = member_list[i];
var f = new WorkFriendInfo();
f.avatar = string.Empty;
f.user_id = item["conversation_id"]?.ToString();
f.manager_wxid = item["create_user_id"]?.ToString();
f.is_manager = item["is_admin"].ToObject<int>();
f.nickname = item["nickname"]?.ToString();
f.username = item["nickname"]?.ToString();
f.remark = item["nickname"]?.ToString();
var friend = user.WorkFriends.FirstOrDefault(z => z.user_id == f.user_id);
if (friend == null)
user.WorkFriends.Add(f);
}
}
catch (Exception ex)
{
LogHelper.GetSingleObj().Error("机器人企业微信解析群列表", $@"原始数据:{recvData}
:{ex.Message} - {ex.StackTrace}");
}
finally
{
Thread.Sleep(100);
user.IsGetDic.Remove(_type);
}
}
break;
case MsgType.MT_GET_USER_DETAIL_MSG:// 获取用户详细信息
{
#region
//{"avatar":"http://wx.qlogo.cn/mmhead/GPyw0pGicibl4KQicb5bXGu2SibrykeGOH5IicK2d8LTfbA11zNB2A2SoKg/0","conversation_id":"S:1688853956558440_7881301364988874","corp_id":"1970325134026788","desc":"","external_job":"","nickname":"","position":"","realname":"","remark":"","sex":2,"user_id":"7881301364988874","username":"18"}
#endregion
if (user == null || data == null) return;
//有时候接收到的数据为一下情况
//{"data":{"user_id":"7881302484994318"},"type":11039}
var username = data["user_id"]?.ToString();
if (user.IsGetContactDic.ContainsKey(username) && user.IsGetContactDic[username])
return;
try
{
try
{
user.IsGetContactDic[username] = true;
}
catch (Exception)
{
}
var f = new WorkFriendInfo();
f.corp_id = data["corp_id"]?.ToString();
f.mobile = data["mobile"]?.ToString();
f.acctid = data["acctid"].ToString();
f.avatar = data["avatar"]?.ToString();
f.conversation_id = data["conversation_id"]?.ToString();
f.desc = data["desc"]?.ToString();
f.nickname = data["nickname"]?.ToString();
f.position = data["position"]?.ToString();
f.realname = data["realname"]?.ToString();
f.remark = data["remark"]?.ToString();
f.sex = data["sex"].ToObject<int>();
f.user_id = data["user_id"]?.ToString();
f.username = data["username"]?.ToString();
var friend = user.WorkFriends.FirstOrDefault(z => z.user_id == f.user_id);
if (friend != null)
if (!user.WorkFriends.TryTake(out friend)) return;
user.WorkFriends.Add(f);
}
catch (Exception ex)
{
LogHelper.GetSingleObj().Error("机器人企业微信解析用户详细信息", $@"原始数据:{recvData}
:{ex.Message} - {ex.StackTrace}");
}
finally
{
Thread.Sleep(100);
user.IsGetContactDic.Remove(username);
}
}
break;
case MsgType.MT_GET_ROOM_MEMBERS_MSG:// 获取群成员列表
{
#region
/*
{"data":{"conversation_id":"R:10696051756073403","member_list":[{"acctid":"WuJiaHua","avatar":"http://wework.qpic.cn/bizmail/FxrNrXCeEh8Kwv4ia3iahWCbkR7Y0VqoBniaJ5hrlKggVaibBXIxmOBb8A/0","corp_id":"1970325073072411","invite_user_id":"7881302509911391","nickname":"洪荒老道","position":"","realname":"吴嘉华","remark":"","sex":1,"user_id":"1688853956558440","username":"洪荒老道"},{"acctid":"YuQi","avatar":"http://wework.qpic.cn/bizmail/PN2IeoKDkmhqqH0nlh2Lm6TVZRNAtgLPyg2ick4sPBEB0kzP0hDmQmg/0","corp_id":"1970325073072411","invite_user_id":"1688853956558440","nickname":"秒单客_小鱼","position":"","realname":"虞祁","remark":"","sex":2,"user_id":"1688853956590186","username":"小鱼"},{"acctid":"ZhangYiYu","avatar":"http://wework.qpic.cn/bizmail/Yfk60WuPLgEuo6ViauAdDeqqtlOuH8EYEh0K0Cg9KGicYHGyg9gw1o2w/0","corp_id":"1970325073072411","invite_user_id":"1688853956558440","nickname":"小张","position":"","realname":"张谊玉","remark":"","sex":0,"user_id":"1688853956590187","username":"张谊玉"},{"acctid":"XiaoZhangTongXue","avatar":"https://wework.qpic.cn/wwhead/duc2TvpEgST9hicuyypLEKE4HsVWEQswCosv5s4Je9eyrmicu2cvscczGLmSmwQBEzPaZO82TA7IY/0","corp_id":"1970325073072411","invite_user_id":"1688853956558440","nickname":"秒单客-小张","position":"","realname":"张谊玉","remark":"","sex":1,"user_id":"1688853956642143","username":"张谊玉"},{"acctid":"WenQi","avatar":"http://wework.qpic.cn/bizmail/rftUYt0pUSNM9UGLVhJT8SADPRo7UUwEXc1TibElDW2b8OBbrUAibN2w/0","corp_id":"1970325073072411","invite_user_id":"1688853956558440","nickname":"","position":"","realname":"文奇","remark":"","sex":1,"user_id":"1688853956644076","username":"文奇"},{"acctid":"","avatar":"http://wx.qlogo.cn/mmhead/U8XnjHx15KhdibgkJ49XtGJ44Y3bH7VkpMTy2UhJicrOs/0","corp_id":"1970325134026788","invite_user_id":"7881302509911391","nickname":"","position":"","realname":"","remark":"","sex":1,"user_id":"7881299792900727","username":"小锋"},{"acctid":"","avatar":"http://wx.qlogo.cn/mmhead/ETNocE50L3oEX3eSEr47qkodhRfgpya2ZYt3D08Bh6k/0","corp_id":"1970325134026788","invite_user_id":"7881299792900727","nickname":"","position":"","realname":"","remark":"","sex":2,"user_id":"7881299980969589","username":"嘿"},{"acctid":"","avatar":"http://wx.qlogo.cn/mmhead/USH8Nb3Hz5TauZmclE9wV7qAOMo3xTf4mPG8qHWicKjfgTExgLX8MHw/0","corp_id":"1970325134026788","invite_user_id":"7881301450899709","nickname":"","position":"","realname":"","remark":"","sex":2,"user_id":"7881300660017681","username":"Suki_cc"},{"acctid":"","avatar":"http://wx.qlogo.cn/mmhead/PiajxSqBRaELHEV52PNTeBgDTw7WZw5zaXqC3Dx8NlxzoWbZodIV6nA/0","corp_id":"1970325134026788","invite_user_id":"7881303073899390","nickname":"","position":"","realname":"","remark":"","sex":2,"user_id":"7881301052912667","username":"管家助理"},{"acctid":"","avatar":"http://wx.qlogo.cn/mmhead/le1D2uwOTUNrTr97NDfcJfBibsBcv6D95v5G8WaF5pWjRxsgo8AgOqQ/0","corp_id":"1970325134026788","invite_user_id":"7881303073899390","nickname":"","position":"","realname":"","remark":"","sex":2,"user_id":"7881301334966174","username":"M."},{"acctid":"","avatar":"http://wx.qlogo.cn/mmhead/Q3auHgzwzM58vIBW7iaDy1L2LnWp6bFQaZageAQ1dUAQbBhtbFEia9XQ/0","corp_id":"1970325134026788","invite_user_id":"7881302509911391","nickname":"","position":"","realname":"","remark":"","sex":1,"user_id":"7881301450899709","username":"幸运的小蔡"},{"acctid":"","avatar":"http://wx.qlogo.cn/mmhead/9qclib0CZpLj64d8S0eVZCgJhsF1V0wMicHrM3LRia1bq4/0","corp_id":"1970325134026788","invite_user_id":"7881301450899709","nickname":"","position":"","realname":"","remark":"","sex":1,"user_id":"7881301996898661","username":"阿羣"},{"acctid":"","avatar":"http://wx.qlogo.cn/mmhead/PiajxSqBRaEJUq43owiazPpKBwI044FZ6GbmOgiaHlt9TWWC7m7ajYnQQ/0","corp_id":"1970325134026788","invite_user_id":"7881302509911391","nickname":"","position":"","realname":"","remark":"阿威?? ?? ?? ?? ??","sex":1,"user_id":"7881302027905870","username":"阿威?? ?? ?? ?? ??"},{"acctid":"","avatar":"http://wx.qlogo.cn/mmhead/Q3auHgzwzM6CiaVp63VVTIRySkxia2KSGQ6
*/
#endregion
if (user == null || data == null) return;
var conversation_id = data["conversation_id"].ToString();
if (user.IsGetContactDic.ContainsKey(conversation_id) && user.IsGetContactDic[conversation_id])
return;
try
{
user.IsGetContactDic[conversation_id] = true;
var member_list = (JArray)data["member_list"];
if (member_list == null)
return;
var group = new WorkGroupInfo() { conversation_id = conversation_id };
var groupTmp = user.WorkGroups.FirstOrDefault(z => z.conversation_id == conversation_id);
if (groupTmp != null)
group = groupTmp;
group.total = member_list.Count;
group.friends = new List<WorkFriendInfo>();
for (int i = 0; i < member_list.Count; i++)
{
//{"acctid":"WuJiaHua","avatar":"http://wework.qpic.cn/bizmail/FxrNrXCeEh8Kwv4ia3iahWCbkR7Y0VqoBniaJ5hrlKggVaibBXIxmOBb8A/0","corp_id":"1970325073072411","invite_user_id":"7881302509911391","nickname":"洪荒老道","position":"","realname":"吴嘉华","remark":"","sex":1,"user_id":"1688853956558440","username":"洪荒老道"}
var item = member_list[i];
var f = new WorkFriendInfo();
f.acctid = item["acctid"]?.ToString();
f.avatar = item["avatar"]?.ToString();
f.conversation_id = conversation_id;
f.corp_id = item["corp_id"]?.ToString();
f.mobile = item["mobile"]?.ToString();
f.nickname = item["nickname"]?.ToString();
f.position = item["position"]?.ToString();
f.realname = item["realname"]?.ToString();
f.remark = item["remark"]?.ToString();
f.sex = item["sex"].ToObject<int>();
f.nickname = item["username"]?.ToString();
f.user_id = item["user_id"]?.ToString();
var friend = group.friends.FirstOrDefault(z => z.user_id == f.user_id);
if (friend == null)
group.friends.Add(f);
}
}
catch (Exception ex)
{
}
}
break;
case MsgType.MT_ROOM_ADD_MEMBER_NOTIFY_MSG://群成员新增通知
{
#region
//{"data":{"member_list":[{"name":"CoCo😘","user_id":"7881299477994410"},{"name":"秒单客-小张","user_id":"7881301029989846"},{"name":"秒单客-小鱼","user_id":"7881302305959168"}],"op_user_id":"1688853956558440","op_user_name":"洪荒老道","room_conversation_id":"R:10696053211008104","room_name":"洪荒老道、CoCo😘、秒单客-小张"},"type":11072}
#endregion
if (data == null || user == null)
return;
var member_list = (JArray)data["member_list"];
if (member_list == null || member_list.Count == 0) return;
var socketClient = EasySoc.GetSocket();
var roomConversationId = data["room_conversation_id"]?.ToString();
var roomName = data["room_name"]?.ToString();
var opUserId = data["op_user_id"]?.ToString();//邀请人账号
var opUserName = data["op_user_name"]?.ToString();//邀请人昵称
for (int i = 0; i < member_list.Count; i++)
{
var item = member_list[i];
WechatNewMemer newMember = new WechatNewMemer();
newMember.Cmd = PCRobotCMD.newMember_workWeChat;
newMember.RobotType = RobotType.;
newMember.RobotUsername = user.Wxid;
newMember.RobotUsernick = user.Nickname;
newMember.SourceNick = opUserName;
newMember.SourceName = opUserId;
newMember.MemberNick = item["name"]?.ToString(); ;
newMember.MemberName = item["user_id"]?.ToString(); ;
newMember.GroupId = roomConversationId;
newMember.GroupNick = roomName;
newMember.TotalMember = 0;
socketClient.Send(newMember);
Thread.Sleep(50);
}
break;
}
case MsgType.MT_ROOM_DEL_MEMBER_NOTIFY_MSG://剔除群成员通知
break;
case MsgType.MT_RECV_TEXT_MSG://收到文本
{
if (data == null || user == null) return;
var content_type = data["content_type"]?.ToString(); //企业微信消息类型
if (data == null) return;
var socketClient = EasySoc.GetSocket();
#region
#region
//{"data":{"content":"我17","content_type":2,"conversation_id":"S:1688853956558440_7881301610989604","local_id":"19","receiver":"1688853956558440","send_time":"1584013142","sender":"7881301610989604","sender_name":"17","server_id":"1000481"},"type":11041} - 通过好友返回的数据
//{"data":{"content":"哦哦哦","content_type":2,"conversation_id":"S:1688853956558440_7881301610989604","local_id":"33","receiver":"1688853956558440","send_time":"1584014191","sender":"7881301610989604","sender_name":"17","server_id":"1000520"},"type":11041} - 别人给我发了条消息
//{"data":{"content":"图婆","content_type":2,"conversation_id":"S:1688853956558440_7881301610989604","local_id":"36","receiver":"1688853956558440","send_time":"1584014736","sender":"7881301610989604","sender_name":"17","server_id":"1000542"},"type":11041}
//{"data":{"content":"哦哦哦","content_type":0,"conversation_id":"S:1688853956450720_1688853956558440","local_id":"22","receiver":"1688853956450720","send_time":"1584013962","sender":"1688853956558440","sender_name":"华","server_id":"1000498"},"type":11041} - 收到自己发的消息
//{"data":{"content":"给我发条消息","content_type":0,"conversation_id":"S:1688853956450720_1688853956558440","local_id":"23","receiver":"1688853956450720","send_time":"1584014066","sender":"1688853956558440","sender_name":"华","server_id":"1000500"},"type":11041}
//{"data":{"content":"饿的","content_type":0,"conversation_id":"R:10696053211008104","local_id":"42","receiver":"R:10696053211008104","send_time":"1584015069","sender":"1688853956558440","sender_name":"吴嘉华","server_id":"1000574"},"type":11041} - 收到自己发送的群消息
#endregion
//{"data":{"at_list":[],"content":"我是机器学习","content_type":2,"conversation_id":"S:1688853764215634_7881300713013122","local_id":"27946","receiver":"1688853764215634","send_time":"1589009390","sender":"7881300713013122","sender_name":"机器学习","server_id":"1088720"},"type":11041}
//0、2 - 发送的文字 0
//if (content_type == "0" || content_type == "2")
{
var content = data["content"]?.ToString(); //文本消息内容
var conversation_id = data["conversation_id"]?.ToString(); //会话ID
var local_id = data["local_id"]?.ToString(); //消息的本地ID
var receiver = data["receiver"]?.ToString(); //接收者的user_id
var send_time = data["send_time"]?.ToString(); //消息时间戳
var sender = data["sender"]?.ToString(); //发送者的user_id
var sender_name = data["sender_name"]?.ToString(); //发送者昵称
var server_id = data["server_id"]?.ToString(); //消息的服务器ID
//是否为辅助
var isSend = false;
var RobotUsername = string.Empty;
var RobotUsernick = string.Empty;
var FromUsername = string.Empty;
var FromUsernick = string.Empty;
var wmsg = new WorkWechatReceiveMsg();
#region
var sendWxid = sender;
var sendNick = sender_name;
if (!WechatClient.IsAuxiliaryInput(sender, conversation_id, content))
{
Console.WriteLine("此消息被过滤,因为是机器人自己发送的:" + content);
return;
}
var ass = WechatClient.IsAssistance(sender, conversation_id, dwClientid, WechatType.Xiaoxie_QY);
if (ass.type == WechatClient.AssistanceType.) return;
wmsg.IsSend = ass.type == WechatClient.AssistanceType.;
var usernick = string.Empty;
if (conversation_id.IsQun())
{
wmsg.FromGroupid = conversation_id;
//wmsg.GroupNick = hook.FindNick(conversation_id);
}
else if (wmsg.IsSend)
{
sendWxid = receiver;
sendNick = user.FindNick(receiver);
}
wmsg.FromUsername = sendWxid;
wmsg.FromUsernick = sendNick;
#endregion
wmsg.Cmd = PCRobotCMD.rcvTxt_workWeChat;
wmsg.IsSend = isSend;
wmsg.RobotUsername = RobotUsername;
wmsg.RobotUsernick = RobotUsernick;
wmsg.RobotType = RobotType.;
//if (content == "[你收到了一个微信红包,暂时无法查看]")
// wmsg.FromMessageType = WechatMsgType.红包;
//else
wmsg.FromMessageType = WechatMsgType.;
wmsg.FromMessage = content;
socketClient.Send(wmsg);
}
#endregion
}
break;
//case MsgType.MT_RECV_IMG_MSG://收到图片
// {
// #region 图片消息
// #region 消息样式
// //{"data":{"content_type":101,"conversation_id":"R:10696053211008104","file_name":"7305d3cd-e94f-47db-a604-ce079e6c9ac5.jpg","file_path":"C:\\Users\\先森吳\\Documents\\WXWork\\1688853956558440\\Cache\\Image\\2020-03\\7305d3cd-e94f-47db-a604-ce079e6c9ac5.jpg","file_size":19457,"local_id":"73","receiver":"1688853956558440","send_time":"1584028981","sender":"7881301364988874","sender_name":"18","server_id":"1000677"},"type":11042} - 别人在群发的图片
// //{"data":{"content_type":101,"conversation_id":"S:1688853956558440_7881301364988874","file_name":"29c9c19d-e8d7-4cb0-95b5-e1a7d385003a.jpg","file_path":"C:\\Users\\先森吳\\Documents\\WXWork\\1688853956558440\\Cache\\Image\\2020-03\\29c9c19d-e8d7-4cb0-95b5-e1a7d385003a.jpg","file_size":19457,"local_id":"74","receiver":"1688853956558440","send_time":"1584029032","sender":"7881301364988874","sender_name":"18","server_id":"1000680"},"type":11042} - 别人私聊发的图片
// //{"data":{"content_type":14,"conversation_id":"R:10696053211008104","file_name":"0f7890b8ea01f7205a76d1195dab66b0.png","file_path":"C:\\Users\\先森吳\\Documents\\WXWork\\1688853956558440\\Cache\\Image\\2020-03\\0f7890b8ea01f7205a76d1195dab66b0.png","file_size":1627,"local_id":"75","receiver":"R:10696053211008104","send_time":"1584029085","sender":"1688853956558440","sender_name":"吴嘉华","server_id":"1000685"},"type":11042} - 自己群里发的图片
// //{"data":{"content_type":14,"conversation_id":"S:1688853956558440_7881301364988874","file_name":"9c6d1a59d8f122fc85c3435ea2aa46fc.jpg","file_path":"C:\\Users\\先森吳\\Documents\\WXWork\\1688853956558440\\Cache\\Image\\2020-03\\9c6d1a59d8f122fc85c3435ea2aa46fc.jpg","file_size":178092,"local_id":"76","receiver":"7881301364988874","send_time":"1584029534","sender":"1688853956558440","sender_name":"吴嘉华","server_id":"1000689"},"type":11042} - 自己私聊发的图片
// #endregion
// //14、101 14
// if (data == null) return;
// var content_type = data["content_type"]?.ToString(); //企业微信消息类型
// if (content_type == "14") return;
// var socketClient = EasySoc.GetSocket();
// var conversation_id = data["conversation_id"]?.ToString(); //会话ID
// var local_id = data["local_id"]?.ToString(); //消息的本地ID
// var receiver = data["receiver"]?.ToString(); //接收者的user_id
// var send_time = data["send_time"]?.ToString(); //消息时间戳
// var sender = data["sender"]?.ToString(); //发送者的user_id
// var sender_name = data["sender_name"]?.ToString(); //发送者昵称
// var server_id = data["server_id"]?.ToString(); //消息的服务器ID
// var file_path = data["file_path"]?.ToString(); //图片路径
// var wmsg = new WorkWechatReceiveMsg();
// wmsg.Cmd = PCRobotCMD.rcvImg_workWeChat;
// wmsg.RobotType = RobotType.客户端企业微信;
// wmsg.IsSend = false;
// wmsg.RobotUsername = user.Wxid;
// wmsg.RobotUsernick = user.Nickname;
// wmsg.FromMessage = $"[图片={file_path}]";
// wmsg.FromMessageType = WechatMsgType.图片;
// if (conversation_id.Contains("R:"))
// {
// wmsg.FromGroupid = conversation_id;
// wmsg.FromUsername = sender;
// wmsg.FromUsernick = sender_name;
// }
// else
// {
// wmsg.FromUsername = sender;
// wmsg.FromUsernick = sender_name;
// }
// wmsg.FromMessage = string.Empty;
// socketClient.Send(wmsg);
// #endregion
// }
// break;
//case MsgType.MT_RECV_VIDEO_MSG://收到视频
// {
// #region 收到视频
// #region 消息样式
// //{"data":{"content_type":103,"conversation_id":"S:1688853956558440_7881301364988874","duration":1,"file_name":"video.MP4","file_path":"C:\\Users\\先森吳\\Documents\\WXWork\\1688853956558440\\Cache\\Video\\2020-03\\video.MP4","file_size":198490,"height":960,"local_id":"77","receiver":"1688853956558440","send_time":"1584031142","sender":"7881301364988874","sender_name":"18","server_id":"1000691","width":544},"type":11043} - 别人发
// //{"data":{"content_type":23,"conversation_id":"S:1688853956558440_7881301364988874","duration":1,"file_name":"video.MP4","file_path":"C:\\Users\\先森吳\\Documents\\WXWork\\1688853956558440\\Cache\\Video\\2020-03\\video.MP4","file_size":198490,"height":960,"local_id":"78","receiver":"7881301364988874","send_time":"1584031203","sender":"1688853956558440","sender_name":"吴嘉华","server_id":"1000696","width":544},"type":11043} - 自己发
// #endregion
// //23、103 23
// if (data == null) return;
// var content_type = data["content_type"]?.ToString(); //企业微信消息类型
// if (content_type == "23") return;
// var socketClient = EasySoc.GetSocket();
// var user = WechatClient.GetUser(dwClientid, WechatType.Xiaoxie_QY);
// if (user == null)
// return;
// var conversation_id = data["conversation_id"]?.ToString(); //会话ID
// var local_id = data["local_id"]?.ToString(); //消息的本地ID
// var receiver = data["receiver"]?.ToString(); //接收者的user_id
// var send_time = data["send_time"]?.ToString(); //消息时间戳
// var sender = data["sender"]?.ToString(); //发送者的user_id
// var sender_name = data["sender_name"]?.ToString(); //发送者昵称
// var server_id = data["server_id"]?.ToString(); //消息的服务器ID
// var file_path = data["file_path"]?.ToString(); //图片路径
// var wmsg = new WorkWechatReceiveMsg();
// wmsg.Cmd = PCRobotCMD.rcvFile_workWeChat;
// wmsg.RobotType = RobotType.客户端企业微信;
// wmsg.IsSend = false;
// wmsg.RobotUsername = user.Wxid;
// wmsg.RobotUsernick = user.Nickname;
// wmsg.FromMessage = $"[视频={file_path}]";
// wmsg.FromMessageType = WechatMsgType.视频;
// if (conversation_id.Contains("R:"))
// {
// wmsg.FromGroupid = conversation_id;
// wmsg.FromUsername = sender;
// wmsg.FromUsernick = sender_name;
// }
// else
// {
// wmsg.FromUsername = sender;
// wmsg.FromUsernick = sender_name;
// }
// wmsg.FromMessage = string.Empty;
// socketClient.Send(wmsg);
// #endregion
// }
// break;
case MsgType.MT_RECV_IMG_MSG: //收到图片
case MsgType.MT_RECV_VIDEO_MSG: //收到视频
{
if (data == null || user == null) return;
var content_type = data["content_type"]?.ToString(); //企业微信消息类型
var conversation_id = data["conversation_id"]?.ToString(); //会话ID
var local_id = data["local_id"]?.ToString(); //消息的本地ID
var receiver = data["receiver"]?.ToString(); //接收者的user_id
var send_time = (long)data["send_time"]; //消息时间戳
var sender = data["sender"]?.ToString(); //发送者的user_id
var sender_name = data["sender_name"]?.ToString(); //发送者昵称
var server_id = data["server_id"]?.ToString(); //消息的服务器ID
var cdn_type = data["cdn_type"].ToObject<int>(); //Cdn类型
var wmsg = new WorkWechatReceiveMsg();
wmsg.Cmd = PCRobotCMD.rcvFile_workWeChat;
wmsg.RobotType = RobotType.;
wmsg.IsSend = false;
wmsg.RobotUsername = user.Wxid;
wmsg.RobotUsernick = user.Nickname;
var filePath = string.Empty;
#region
if (MsgType.MT_RECV_IMG_MSG == msgType)
{
#region cdn
var cdn = data["cdn"];
if (cdn != null)
{
if (cdn_type == 1)
{
var aes_key = cdn["aes_key"].ToObject<string>();
var auth_key = cdn["auth_key"].ToObject<string>();
var ld_size = cdn["ld_size"].ToObject<int>();
var ld_url = cdn["ld_url"].ToObject<string>();
var md5 = cdn["md5"].ToObject<string>();
var md_size = cdn["md_size"].ToObject<int>();
var md_url = cdn["md_url"].ToObject<string>();
var size = cdn["size"].ToObject<int>();
var url = cdn["url"].ToObject<string>();
filePath = user.CdnDown(url, auth_key, aes_key, size, FileSuffixType.jpg).Result;
if (string.IsNullOrWhiteSpace(filePath) || !File.Exists(filePath))
throw new Exception("企业接收图片消息Cdn下载失败");
}
else if (cdn_type == 2)
{
var aes_key = cdn["aes_key"].ToObject<string>();
var file_id = cdn["file_id"].ToObject<string>();
var file_name = cdn["file_name"].ToObject<string>();
var md5 = cdn["md5"].ToObject<int>();
//var preview_img_url = cdn["preview_img_url"].ToObject<string>();
var size = cdn["size"].ToObject<int>();
filePath = hook.C2cCdnDown(aes_key, file_id, size, QyCdnFileType._视频, FileSuffixType.jpg).Result;
if (string.IsNullOrWhiteSpace(filePath) || !File.Exists(filePath))
throw new Exception("企业接收图片消息C2cCdn下载失败");
}
rmsg.Message = $"[图片={filePath}]";
rmsg.MessageType = WechatMsgType.;
}
#endregion
}
else if (MsgType.MT_RECV_VIDEO_MSG == msgType)
{
#region cdn
var cdn = data["cdn"];
if (cdn != null)
{
if (cdn_type == 1)
{
var aes_key = cdn["aes_key"].ToObject<string>();
var auth_key = cdn["auth_key"].ToObject<string>();
var md5 = cdn["md5"].ToObject<string>();
var preview_img_size = cdn["preview_img_size"].ToObject<int>();
var preview_img_url = cdn["preview_img_url"].ToObject<string>();
var size = cdn["size"].ToObject<int>();
var url = cdn["url"].ToObject<string>();
filePath = hook.CdnDown(url, auth_key, aes_key, size, FileSuffixType.mp4).Result;
if (string.IsNullOrWhiteSpace(filePath) || !File.Exists(filePath))
throw new Exception("企业接收视频消息Cdn下载失败");
}
else if (cdn_type == 2)
{
var aes_key = cdn["aes_key"].ToObject<string>();
var file_id = cdn["file_id"].ToObject<string>();
var file_name = cdn["file_name"].ToObject<string>();
var md5 = cdn["md5"].ToObject<int>();
//var preview_img_url = cdn["preview_img_url"].ToObject<string>();
var size = cdn["size"].ToObject<int>();
filePath = hook.C2cCdnDown(aes_key, file_id, size, QyCdnFileType._视频, FileSuffixType.silk).Result;
if (string.IsNullOrWhiteSpace(filePath) || !File.Exists(filePath))
throw new Exception("企业接收视频消息C2cCdn下载失败");
}
rmsg.Message = $"[视频={filePath}]";
rmsg.MessageType = WechatMsgType.;
}
#endregion
}
if (conversation_id.IsQun())
{
rmsg.GroupId = conversation_id;
rmsg.GroupNick = hook.FindNick(conversation_id);
}
rmsg.SendUserWxid = sender;
rmsg.SendUserNick = sender_name;
rmsg.Timestamp = send_time;
rmsg.MsgId = server_id.Trim();
rmsg.IsSend = false;
rmsg.OriMessage = JsonConvert.SerializeObject(new { data = data, filePath = filePath });
RobotClient.Events.OnEvent(hook, rmsg);
#endregion
}
break;
case MsgType.MT_RECV_VOICE_MSG: //收到语音
break;
case MsgType.MT_RECV_FILE_MSG://收到文件
break;
case MsgType.MT_RECV_LOCATION_MSG://收到位置
break;
case MsgType.MT_RECV_LINK_CARD_MSG://收到链接
{
#region
#region
//{"data":{"content_type":13,"conversation_id":"S:1688853956558440_7881301364988874","desc":"【正品险·全国联保】听音乐、语音遥控家电的人工智能音箱","image_url":"","local_id":"82","receiver":"1688853956558440","send_time":"1584033150","sender":"7881301364988874","sender_name":"18","server_id":"1000715","title":"78元 小米(MI)小爱音箱 Play全新小爱同学升级版智能人工蓝牙WiFi音响 拼多多","url":"https://mobile.yangkeduo.com/goods1.html?goods_id=19287381820&page_from=35&share_uin=H3Z5B2UR6DQLWBIKN24YVO5XPQ_GEXDA&refer_share_id=e0d9d244358640aa853a8dcd1ff84216&refer_share_uid=4918926726&refer_share_channel=message&refer_share_form=card"},"type":11047} - 别人发送的私聊链接
//{"data":{"content_type":13,"conversation_id":"R:10696053211008104","desc":"【正品险·全国联保】听音乐、语音遥控家电的人工智能音箱","image_url":"","local_id":"85","receiver":"1688853956558440","send_time":"1584034341","sender":"7881301364988874","sender_name":"18","server_id":"1000724","title":"78元 小米(MI)小爱音箱 Play全新小爱同学升级版智能人工蓝牙WiFi音响 拼多多","url":"https://mobile.yangkeduo.com/goods1.html?goods_id=19287381820&page_from=35&share_uin=H3Z5B2UR6DQLWBIKN24YVO5XPQ_GEXDA&refer_share_id=e0d9d244358640aa853a8dcd1ff84216&refer_share_uid=4918926726&refer_share_channel=message&refer_share_form=card"},"type":11047} - 别人发送的群聊链接
//{"data":{"content_type":13,"conversation_id":"S:1688853956558440_7881301364988874","desc":"【正品险·全国联保】听音乐、语音遥控家电的人工智能音箱","image_url":"https://wework.qpic.cn/wwpic/51458_1ermIpIgTJu-_11_1584034011/0","local_id":"83","receiver":"7881301364988874","send_time":"1584034011","sender":"1688853956558440","sender_name":"吴","server_id":"1000720","title":"78元 小米(MI)小爱音箱 Play全新小爱同学升级版智能人工蓝牙WiFi音响 拼多多","url":"https://mobile.yangkeduo.com/goods1.html?goods_id=19287381820&page_from=35&share_uin=H3Z5B2UR6DQLWBIKN24YVO5XPQ_GEXDA&refer_share_id=e0d9d244358640aa853a8dcd1ff84216&refer_share_uid=4918926726&refer_share_channel=message&refer_share_form=card"},"type":11047} - 自己发送的私聊
//{"data":{"content_type":13,"conversation_id":"R:10696053211008104","desc":"【正品险·全国联保】听音乐、语音遥控家电的人工智能音箱","image_url":"https://wework.qpic.cn/wwpic/51458_1ermIpIgTJu-_11_1584034011/0","local_id":"84","receiver":"R:10696053211008104","send_time":"1584034246","sender":"1688853956558440","sender_name":"吴","server_id":"1000722","title":"78元 小米(MI)小爱音箱 Play全新小爱同学升级版智能人工蓝牙WiFi音响 拼多多","url":"https://mobile.yangkeduo.com/goods1.html?goods_id=19287381820&page_from=35&share_uin=H3Z5B2UR6DQLWBIKN24YVO5XPQ_GEXDA&refer_share_id=e0d9d244358640aa853a8dcd1ff84216&refer_share_uid=4918926726&refer_share_channel=message&refer_share_form=card"},"type":11047} - 自己发送的群聊
#endregion
var content_type = data["content_type"]?.ToString();
//if (content_type != "13") return;
var socketClient = EasySoc.GetSocket();
var conversation_id = data["conversation_id"]?.ToString(); //会话ID
var desc = data["desc"]?.ToString(); //链接描述
var image_url = data["image_url"]?.ToString(); //链接缩略图url
var local_id = data["local_id"]?.ToString(); //消息的本地ID
var receiver = data["receiver"]?.ToString(); //接收者的user_id
var send_time = data["send_time"]?.ToString(); //消息时间戳
var sender = data["sender"]?.ToString(); //发送者的user_id
var sender_name = data["sender_name"]?.ToString(); //发送者昵称
var server_id = data["server_id"]?.ToString(); //消息的服务器ID
var title = data["title"]?.ToString(); //链接标题
var url = data["url"]?.ToString(); //链接url
var isSend = false;
var RobotUsername = string.Empty;
var RobotUsernick = string.Empty;
var FromUsername = string.Empty;
var FromUsernick = string.Empty;
var user = WechatClient.GetUser(dwClientid, WechatType.Xiaoxie_QY);
if (user == null)
return;
if (user.Wxid == sender) //0自己发送的消息
{
if (!WechatClient.IsAuxiliaryInput(sender, receiver, url))
{
Console.WriteLine("此消息被过滤,因为是机器人自己发送的:" + url);
return;
}
var ass = WechatClient.IsAssistance(sender, receiver, dwClientid, WechatType.Xiaoxie_QY);
if (ass.type == WechatClient.AssistanceType.) return;
isSend = ass.type == WechatClient.AssistanceType.;
RobotUsername = ass.robotName;
RobotUsernick = ass.robotNick;
FromUsername = ass.fromName;
FromUsernick = ass.fromNick;
}
else
{
RobotUsername = user.Wxid;
RobotUsernick = user.Nickname;
FromUsername = sender;
FromUsernick = sender_name;
}
var wmsg = new WorkWechatReceiveMsg();
wmsg.Cmd = PCRobotCMD.rcvTxt_workWeChat;
wmsg.IsSend = isSend;
wmsg.RobotUsername = RobotUsername;
wmsg.RobotUsernick = RobotUsernick;
wmsg.RobotType = RobotType.;
wmsg.FromMessageType = WechatMsgType.;
if (conversation_id.Contains("R:"))
{
wmsg.FromGroupid = conversation_id;
wmsg.FromUsername = sender;
wmsg.FromUsernick = sender_name;
}
else
{
wmsg.FromUsername = FromUsername;
wmsg.FromUsernick = FromUsernick;
}
wmsg.FromMessage = url;
socketClient.Send(wmsg);
#endregion
}
break;
case MsgType.MT_RECV_EMOTION_MSG://收到表情
break;
case MsgType.MT_RECV_RED_PACKET_MSG://收到红包
{
}
break;
case MsgType.MT_RECV_PERSON_CARD_MSG://收到个人名片
{
//{"data":{"content":"推荐噢噢噢哦哦","content_type":2,"conversation_id":"S:1688853956558440_7881301364988874","local_id":"81","receiver":"1688853956558440","send_time":"1584031525","sender":"7881301364988874","sender_name":"18","server_id":"1000703"},"type":11041}
/*
{"data":{"avatar":"http://wx.qlogo.cn/mmhead/PiajxSqBRaELtKaBvIBMGI7xTZdLA9mZglMaZQxPeBASJT1lCXCJnKg/0","content_type":41,"conversation_id":"S:1688853956558440_7881301364988874","local_id":"80","nickname":"??欧尼桑","receiver":"1688853956558440","send_time":"1584031525","sender":"7881301364988874","sender_name":"18","server_id":"1000700","source":"微信","user_id":"7881301516989639"},"type":11050}
:{"data":{"content":"推荐噢噢噢哦哦","content_type":2,"conversation_id":"S:1688853956558440_7881301364988874","local_id":"81","receiver":"1688853956558440","send_time":"1584031525","sender":"7881301364988874","sender_name":"18","server_id":"1000703"},"type":11041}
*/
//var content = data["content"]?.ToString();
//var content_type = data["content_type"]?.ToString();
//var conversation_id = data["conversation_id"]?.ToString();
//var local_id = data["local_id"]?.ToString();
//var receiver = data["receiver"]?.ToString();
//var send_time = data["send_time"]?.ToString();
//var sender = data["sender"]?.ToString();
//var sender_name = data["sender_name"]?.ToString();
//var server_id = data["server_id"]?.ToString();
}
break;
case MsgType.MT_RECV_MINIAPP_MSG://收到小程序
{
//个人微信/企业微信
//{"data":{"content_type":78,"conversation_id":"R:10696053211018728","enterpoint":"pages/tab/home/index.html?_um_ssrc=oucfI5QRI-8SbyOTKSGYt5-ia0dk&_um_sts=1610033684099","ghid":"gh_a0d7a7672cf7@app","headimg":"http://wx.qlogo.cn/mmhead/Q3auHgzwzM43LsxpXHKd7ua7kwMZQ8WHmZlkYTzr3Tdm8sMOJ7Ypog/96","image_key1":"306b020102046430620201000204bafc490e02030f4df9020473e6607102045ff72a530436333133373039353935305f313734393433343231315f3262393764653133616335373232353633383831336564376334396563616164020100020300ab1004000201010201000400","image_key2":"61747072666A766977766D69726D6168","image_key3":"2b97de13ac57225638813ed7c49ecaad","image_size":43791,"is_pc":0,"local_id":"155","name":"啄木鸟家庭维修","receiver":"1688853956558440","send_time":"1610033747","sender":"7881302484994318","sender_name":"、","server_id":"1042188","title":"直营一口价,维修无猫腻","wxid":"wx3d6b1af0cb07fa5a"},"type":11066}
if (data == null) return;
var socketClient = EasySoc.GetSocket();
//var content_type = data["content_type"]?.ToString();//内容类型 78
//var conversation_id = data["conversation_id"]?.ToString();//接收者的的会话ID
//var enterpoint = data["enterpoint"]?.ToString();//入口点 - 链接(小程序里面的链接)
//var receiver = data["receiver"]?.ToString();// 接收者的user_id
//var sender = data["sender"]?.ToString();// 发送者的user_id
//var sender_name = data["sender_name"]?.ToString();//发送者昵称
//var server_id = data["server_id"]?.ToString();//消息的服务器ID
var content_type = data["content_type"]?.ToString();//内容类型 78
var conversation_id = data["conversation_id"]?.ToString();//接收者的的会话ID
var enterpoint = data["enterpoint"]?.ToString();//入口点 - 链接(小程序里面的链接)
var headimg = data["headimg"]?.ToString();//小程序的头像
var name = data["name"]?.ToString();//小程序的名称
var receiver = data["receiver"]?.ToString();// 接收者的user_id
var sender = data["sender"]?.ToString();// 发送者的user_id
var sender_name = data["sender_name"]?.ToString();//发送者昵称
var title = data["title"]?.ToString();//小程序标题
var wxid = data["wxid"]?.ToString();
var server_id = data["server_id"]?.ToString();//消息的服务器ID
var isSend = false;
var RobotUsername = string.Empty;
var RobotUsernick = string.Empty;
var FromUsername = string.Empty;
var FromUsernick = string.Empty;
//if (content_type != "78")//0自己发送的消息
//{
// if (!WechatClient.IsAuxiliaryInput(sender, receiver, enterpoint))
// {
// Console.WriteLine("此消息被过滤,因为是机器人自己发送的:" + enterpoint);
// return;
// }
// var ass = WechatClient.IsAssistance(sender, receiver, dwClientid, WechatType.Xiaoxie_QY);
// if (ass.type == WechatClient.AssistanceType.终止) return;
// isSend = ass.type == WechatClient.AssistanceType.辅助;
// RobotUsername = ass.robotName;
// RobotUsernick = ass.robotNick;
// FromUsername = ass.fromName;
// FromUsernick = ass.fromNick;
//}
//else
//{
var user = WechatClient.GetUser(dwClientid, WechatType.Xiaoxie_QY);
if (user == null)
return;
RobotUsername = user.Wxid;
RobotUsernick = user.Nickname;
FromUsername = sender;
FromUsernick = sender_name;
//}
var wmsg = new WorkWechatReceiveMsg();
wmsg.Cmd = PCRobotCMD.rcvTxt_workWeChat;
wmsg.IsSend = isSend;
wmsg.RobotUsername = RobotUsername;
wmsg.RobotUsernick = RobotUsernick;
wmsg.RobotType = RobotType.;
wmsg.FromMessageType = WechatMsgType.;
if (conversation_id.Contains("R:"))
{
wmsg.FromGroupid = conversation_id;
wmsg.FromUsername = sender;
wmsg.FromUsernick = sender_name;
}
else
{
wmsg.FromUsername = FromUsername;
wmsg.FromUsernick = FromUsernick;
}
wmsg.FromMessage = enterpoint.Replace("pages/index/index.html?goods_id=", "https://mobile.yangkeduo.com/goods.html?goods_id=").Replace("pages/item/detail/detail.html?sku=", @"https://item.jd.com/");
socketClient.Send(wmsg);
}
break;
case MsgType.MT_RECV_OTHER_MSG:
break;
case MsgType.MT_SEARCH_USER_MSG://查询联系人
break;
case MsgType.MT_ADD_SEARCH_USER_MSG://添加查询的联系人
break;
case MsgType.MT_MODIFY_USER_REMARK_MSG://修改用户备注
break;
case MsgType.MT_MODIFY_USER_DESC_MSG:
break;
case MsgType.MT_MODIFY_EXTERNAl_USER_PHONES_MSG:
break;
case MsgType.MT_MODIFY_EXTERNAl_USER_COMPANY_MSG:
break;
case MsgType.MT_CREATE_ROOM_MSG:
{
}
break;
case MsgType.MT_MODIFY_ROOM_NAME_MSG:
break;
case MsgType.MT_ROOM_ADD_MEMBERS_MSG:
{
}
break;
case MsgType.MT_ROOM_DEL_MEMBERS_MSG://删除群成员
break;
case MsgType.MT_RECV_FRIEND_REQUEST://接收好友请求
{
//{"data":{"avatar":"http://wx.qlogo.cn/mmhead/0T8yO33zeeg33jJCQibIWobapj6GX4xFBbOECtmG9VdkYpnzyiaUr5iag/0","corp_id":"1970325134026788","nickname":"17","sex":2,"user_id":"7881301610989604","verify":"我17"},"type":11063}
//{"data":{"avatar":"http://wx.qlogo.cn/mmhead/PiajxSqBRaEI8qvnXF9KjgTpvaSAzfhbE2kGoIspb7ibbEHGZEQxRibAQ/0","corp_id":"1970325134026788","nickname":"助将","sex":0,"user_id":"7881303410988876","verify":"欧珀new"},"type":11063}
//{"data":{"avatar":"http://wx.qlogo.cn/mmhead/zroWGtm5tmsxaCHfI2ibibuBxtzsZc6brAIDCicIianoDYI/0","corp_id":"1970325134026788","nickname":"Boom","sex":1,"user_id":"7881303336175964","verify":"我是Boom"},"type":11063}
if (data == null) return;
var socketClient = EasySoc.GetSocket();
var avatar = data["avatar"]?.ToString();//头像
var corp_id = data["corp_id"]?.ToString();//公司id
var nickname = data["nickname"]?.ToString();//申请人昵称
var sex = data["sex"]?.ToString();//性别
var user_id = data["user_id"]?.ToString();//用户id
var verify = data["verify"]?.ToString();//申请摘要
var user = WechatClient.GetUser(dwClientid, WechatType.Xiaoxie_QY);
if (user == null)
return;
var wXApply = new WorkWechatApplyFriend();
wXApply.Cmd = PCRobotCMD.applyFriend_workWeChat;
wXApply.RobotUsername = user.Wxid;
wXApply.RobotUsernick = user.Nickname;
wXApply.RobotType = RobotType.;
wXApply.Message = verify;
wXApply.NewFriendWxid = user_id;
wXApply.NewFriendNick = nickname;
wXApply.OldFriendWxid = string.Empty;
wXApply.OldFriendNick = string.Empty;
wXApply.Token = CsharpHttpHelper.HttpHelper.ObjectToJson(new { user_id = user_id, corp_id = corp_id });
//记录申请人,用于记录
if (!FriendRequestRecord.ContainsKey(user_id))
FriendRequestRecord.TryAdd(user_id, new FriendInfo() { account = user_id, avatar = avatar, nickname = nickname, sex = int.Parse(sex), wxid = user_id });
socketClient.Send(wXApply);
}
break;
case MsgType.MT_ACCEPT_FRIEND_REQUEST://接受加好友请求
break;
default:
break;
}
}
catch (Exception ex)
{
//Console.WriteLine("解析消息异常:" + ex.Message + "," + recvData);
LogHelper.GetSingleObj().Error(new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name, ex.Message + ".._" + recvData);
}
});
}
catch (Exception ex)
{
LogHelper.GetSingleObj().Error(new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name, ex.Message + "_.");
}
}
private static ConcurrentDictionary<string, FriendInfo> FriendRequestRecord = new ConcurrentDictionary<string, FriendInfo>();
private static void WxCloseCallback(uint dwClientId)
{
try
{
var v = WechatClient.Users.FirstOrDefault(f => f.Value.DwClientId == dwClientId && f.Value.Type == WechatType.Xiaoxie_QY).Value;
if (v != null)
{
LogHelper.GetSingleObj().Info("系统", $"WxCloseCallbackQY关闭回调,Uin:{v.Uin},微信:{v.Nickname}({v.Wxid})");
WechatClient.RemoveUser(v);
}
}
catch (Exception ex)
{
LogHelper.GetSingleObj().Error(new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name, ex.Message + "_.-");
}
}
private static void WxAcceptCallback(uint dwClientId)
{
Console.WriteLine("注入成功:" + dwClientId);
}
/// <summary>
/// 启动微信
/// </summary>
/// <param name="FileName"></param>
/// <returns></returns>
public static uint StartWechat(bool isError = false)
{
InitPc();
var WechatWinFile = HttpExtend.MapFile("WXWork.exe", $"WXWork\\{Version}");
var md5 = Common.GetMD5Hash(WechatWinFile).ToUpper();
if (!File.Exists(WechatWinFile) || md5 != PcMd5.ToUpper())
{
if (isError) throw new Exception("易转发客户端企业微信版本不支持,请登录易转发端手动处理");
var _rst = MessageBox.Show("您的企业微信版本暂时不支持,立即重新安装吗?", "版本不兼容", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (_rst == DialogResult.Yes)
{
var f = new WechatUpdate(Version);
f.ShowDialog();
if (!f.IsOk) return 0;
}
else return 0;
}
// 注入并多开
//return InjectWxWork(Encoding.UTF8.GetBytes(DllPath), Encoding.UTF8.GetBytes(""));
var path = HttpExtend.MapFile("WXWork.exe", $"WXWork\\{Version}");
LogHelper.GetSingleObj().Debug("注入前", $"DPath = {DllPath},Path = {path}");
return InjectWxWorkMultiOpen(Encoding.UTF8.GetBytes(DllPath), Encoding.UTF8.GetBytes(path));
}
}
}