using System; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using PCRobot.Utils; namespace NM_WeChat { public class NMCore { HPSocketCS.TcpPackServer g_HPServer; public NMCore(HPSocketCS.TcpPackServer HPServer) { g_HPServer = HPServer; } public void SendPacket(int ConnID, string Packet) { byte[] PackBytes = System.Text.ASCIIEncoding.Default.GetBytes(Packet.ToString()); g_HPServer.Send((IntPtr)ConnID, PackBytes, PackBytes.Length); } /// /// 初始化,传输DLL调用密码,用于简单的防止DLL被盗用 /// /// /// public void NM_Init(int ConnID, string PassWord) { JObject sendJson = new JObject(); sendJson["PackType"] = 100000; sendJson["PassWord"] = PassWord; SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_读取通讯录列表 /// /// public void NM_GetContactList(int ConnID, int PackMark, int PackSize = 5000) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_GetContactList; sendJson["PackMark"] = PackMark; sendJson["PackSize"] = PackSize; SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_读取群员列表 /// /// /// public void NM_GetGroupMember(int ConnID, string GroupID) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_GetGroupMember; sendJson["GroupID"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(GroupID)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_下载用户详细信息 /// /// /// /// public void NM_GetWxidInfo(int ConnID, string GroupID, string Wxid) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_GetWxidInfo; sendJson["GroupID"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(GroupID)); sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_GetA8Key 微信浏览器操作 /// /// /// /// public void NM_GetA8Key(int ConnID, string Wxid, string URL) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_GetA8Key; sendJson["Type"] = 1; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["URL"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(URL)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_发送文本消息 /// /// /// 3 /// /// public void NM_SendTextMsg(int ConnID, string Wxid, string[] AtWxidArray, string Message) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_SendText; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["Message"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Message)); if (AtWxidArray.Length > 0) { JArray AtList = new JArray(); for (int i = 0; i < AtWxidArray.Length; i++) { if (AtWxidArray[i] != string.Empty) { AtList.Add(Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(AtWxidArray[i]))); } } if (AtList.Count > 0) { sendJson["AtWxid"] = AtList; } } SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_发送文件消息 /// /// /// /// /// 欲发送文件的完整路径 public void NM_SendFileMsg(int ConnID, int Type, string Wxid, string FilePath) { JObject sendJson = new JObject(); sendJson["PackType"] = Type; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["File"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(FilePath)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_发送名片消息 /// /// /// /// public void NM_SendCardMsg(int ConnID, string Wxid, string CardWxid) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_SendCard; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["CardWxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(CardWxid)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_发送地图定位消息 /// /// /// /// public void NM_SendMapMsg(int ConnID, string Wxid, string MapXML) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_SendMap; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["Map"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(MapXML)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_发送图文链接消息 /// /// /// /// public void NM_SendURLMsg(int ConnID, string Wxid, string XML) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_SendURL; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["XML"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(XML)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_发送小程序 2.7及以上版本有效 /// /// /// /// /// public void NM_SendWeChatApp(int ConnID, string Wxid, string XML, string ShowImage) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_SendWeChatApp; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["XML"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(XML)); sendJson["Image"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(ShowImage)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_撤回发出消息 /// /// /// /// /// public void NM_RevokeMsg(int ConnID, string Wxid, string ServerID, string Message) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_RevokeMsg; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["ServerID"] = ServerID; sendJson["Message"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Message)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_接收的消息被撤回本地无提示 /// /// /// public void NM_DesRevoke(int ConnID, bool Opt) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_DesRevoke; sendJson["Opt"] = Opt; SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_接收转账 /// /// /// /// /// public void NM_GetMoney(int ConnID, string Wxid, string Transid, int Time) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_GetMoney; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["Transid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Transid)); sendJson["Time"] = Time; SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_通过Wxid或v1添加好友 /// /// /// /// /// /// /// public void NM_AddFriend(int ConnID, int Type, int AddType, string Wxid, string v2, string Message) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_AddFriend; sendJson["Type"] = Type; sendJson["AddType"] = AddType; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["V2"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(v2)); sendJson["Message"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Message)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_通过请求消息XML通过好友请求 /// /// /// public void NM_PassApply(int ConnID, string ApplyXML) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_PassApply; //sendJson["XML"] = ApplyXML; 原代码,改为如下一行 sendJson["XML"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(ApplyXML)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_删除好友 /// /// /// public void NM_DelFriend(int ConnID, string Wxid) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_DelFriend; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_取消关注公众号 /// /// /// public void NM_DelGHFriend(int ConnID, string GHWxid) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_DelGHFriend; sendJson["GH_Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(GHWxid)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_设置好友备注 /// /// /// /// public void NM_SetFriendMark(int ConnID, string Wxid, string Mark) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_SetFriendMark; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["Mark"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Mark)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_创建群聊 /// /// /// public void NM_CreateGroup(int ConnID, string[] MemberArray) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_CreateGroup; if (MemberArray.Length > 1 && MemberArray.Length < 40) { JArray MemberList = new JArray(); for (int i = 0; i < MemberArray.Length; i++) { if (MemberArray[i] != string.Empty) { MemberList.Add(Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(MemberArray[i]))); } } if (MemberList.Count > 0) { sendJson["List"] = MemberList; SendPacket(ConnID, sendJson.ToString()); } } } /// /// 功能_退出群聊 /// /// /// public void NM_QuitGroup(int ConnID, string GroupID) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_QuitGroup; sendJson["GroupID"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(GroupID)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_批量拉群 - 发送邀请链接或直接拉入 /// /// /// /// /// public void NM_InviteToGroup(int ConnID, int Type, string GroupID, string[] MemberArray) { JObject sendJson = new JObject(); sendJson["PackType"] = Type; sendJson["GroupID"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(GroupID)); if (MemberArray.Length > 0 && MemberArray.Length < 40) { JArray MemberList = new JArray(); for (int i = 0; i < MemberArray.Length; i++) { if (MemberArray[i] != string.Empty) { MemberList.Add(Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(MemberArray[i]))); } } if (MemberList.Count > 0) { sendJson["List"] = MemberList; SendPacket(ConnID, sendJson.ToString()); } } } /// /// 功能_批量提出群员 /// /// /// /// public void NM_KickGroupMember(int ConnID, string GroupID, string[] MemberArray) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_KickGroupMember; sendJson["GroupID"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(GroupID)); if (MemberArray.Length > 0 && MemberArray.Length < 40) { JArray MemberList = new JArray(); for (int i = 0; i < MemberArray.Length; i++) { if (MemberArray[i] != string.Empty) { MemberList.Add(Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(MemberArray[i]))); } } if (MemberList.Count > 0) { sendJson["List"] = MemberList; SendPacket(ConnID, sendJson.ToString()); } } } /// /// 功能_修改群名称 /// /// /// /// public void NM_SetGroupName(int ConnID, string GroupID, string Name) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_SetGroupName; sendJson["GroupID"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(GroupID)); sendJson["Name"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Name)); SendPacket(ConnID, sendJson.ToString()); } /// /// 群主功能_发送群公告(@所有人) /// /// /// /// /// public void NM_SetGroupNotice(int ConnID, string GroupID, string Boss, string Notice) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_SetGroupNotice; sendJson["GroupID"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(GroupID)); sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Boss)); sendJson["Notice"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Notice)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_设置自己的群昵称 /// /// /// /// public void NM_SetMyGroupNick(int ConnID, string GroupID, string Nick) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_SetMyGroupNick; sendJson["GroupID"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(GroupID)); sendJson["Nick"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Nick)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_获取收藏列表 /// /// public void NM_GetFavList(int ConnID) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_GetFavList; SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_发送指定收藏内容 /// /// /// /// public void NM_SendFavMsg(int ConnID, string Wxid, int Index) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_SendFavMsg; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["Index"] = Index; SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_状态操作 /// /// /// 1=免打扰 2=置顶 3=保存通讯录 4=显示群员昵称 /// /// public void NM_StateOpt(int ConnID, int Type, string Wxid, bool Opt) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_StateOpt; sendJson["Type"] = Type; sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); sendJson["Opt"] = Opt; SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_对象操作 /// /// /// 1= 切换聊天对象 /// 2= 设置指定Wxid消息已读(取消红点,不切换聊天对象,移动端同步) /// 3= 一键全部已读(取消全部红点,移动端不同步) /// public void NM_SetObject(int ConnID, int Type, string Wxid) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_SetObject; sendJson["Type"] = Type; if (Wxid != string.Empty) { sendJson["Wxid"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Wxid)); } SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_下载高清大图 /// /// /// /// public void NM_GetImageByCDN(int ConnID, string XML, string SavePath) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_GetImageByCDN; sendJson["XML"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(XML)); sendJson["SavePath"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(SavePath)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_获取朋友圈 /// /// public void NM_GetCircles(int ConnID) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_GetCircles; SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_获取朋友圈_详情 /// /// /// 朋友圈ID public void NM_GetCircleDetails(int ConnID, string SnsId) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_GetCircleDetails; sendJson["SnsId"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(SnsId)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_发朋友圈 /// /// /// 朋友圈内容 public void NM_SendCircle(int ConnID, string SnsData) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_SendCircle; sendJson["SnsData"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(SnsData)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_朋友圈上传图片 /// /// /// 图片路径 /// 图片Md5 public void NM_CircleUpLoadImage(int ConnID, string ImageFile, string ImageMD5) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_CircleUpLoadImage; sendJson["ImageFile"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(ImageFile)); sendJson["ImageMD5"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(ImageMD5)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_朋友圈评论 /// /// /// 朋友圈ID /// 评论内容 public void NM_CircleComment(int ConnID, string SnsId, string Comment) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_CircleComment; sendJson["SnsId"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(SnsId)); sendJson["Comment"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(Comment)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_朋友圈点赞 /// /// /// 朋友圈id /// 1=赞 2=取消赞 public void NM_CircleLink(int ConnID, string SnsId, int Opt) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_CircleLink; sendJson["SnsId"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(SnsId)); sendJson["Opt"] = Opt; SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_朋友圈删除 /// /// /// 删除朋友圈ID public void NM_DelCircle(int ConnID, string SnsId) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_DelCircle; sendJson["SnsId"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(SnsId)); SendPacket(ConnID, sendJson.ToString()); } /// /// 功能_朋友圈删除评论 /// /// /// 朋友圈ID /// 评论ID public void NM_DelCircleComment(int ConnID, string SnsId, string CommentId) { JObject sendJson = new JObject(); sendJson["PackType"] = NMHelper.NM_DelCircleComment; sendJson["SnsId"] = Convert.ToBase64String(System.Text.UnicodeEncoding.Unicode.GetBytes(SnsId)); sendJson["CommentId"] = CommentId; SendPacket(ConnID, sendJson.ToString()); } } }