public static WXBaseMessage GetWXMsgEntity(string content) { WXBaseMessage message = new WXBaseMessage(); if (string.IsNullOrEmpty(content)) { return(message); } ; XmlDocument xml = new XmlDocument(); xml.LoadXml(content); var msgtype = xml.SelectSingleNode("/xml/MsgType").InnerText; XmlNode node = xml.SelectSingleNode("xml"); if (msgtype.ToLower().Equals(WXMsgType.text.ToString())) { message = HttpClient.DeserializeXmlStr <WXTextMessage>(content); } else if (msgtype.ToLower().Equals(WXMsgType.image.ToString())) { message = HttpClient.DeserializeXmlStr <WXImageMessage>(content); } else if (msgtype.ToLower().Equals(WXMsgType.video.ToString())) { message = HttpClient.DeserializeXmlStr <WXVideoMessage>(content); } else if (msgtype.ToLower().Equals(WXMsgType.voice.ToString())) { message = HttpClient.DeserializeXmlStr <WXVoiceMessage>(content); } return(message); }
//用户选择内容后,应用组织响应数据,发给微信 //所有发送数据的按钮的处理函数,根据点击不同,组织不同数据发送给微信 private void Button_Click_1(object sender, RoutedEventArgs e) { string AppID = ConstString.APPID; int scene = SendMessageToWX.Req.WXSceneSession; WXBaseMessage message = null; byte[] png = readRes("Res/1.png"); byte[] jpg = readRes("Res/1.jpg"); byte[] gif = readRes("Res/1.gif"); byte[] txt = readRes("Res/1.txt"); byte[] doc = readRes("Res/1.doc"); //文本数据的组装 if (sender == btnTxt) { WXTextMessage msg = new WXTextMessage(); msg.Title = "text"; msg.ThumbData = null; msg.Text = "this is a text"; message = msg; } //图片数据的组装 if (sender == btnImg) { WXImageMessage msg = new WXImageMessage(); msg.Title = "picture"; msg.Description = "this is a picture"; msg.ThumbData = png; //图片的byte[]数据 msg.ImageData = jpg; //图片的网络链接,ImageUrl和ImageData二者取其一,不要同时都填值 //msg.ImageUrl = "http://soso7.gtimg.cn/sosopic/0/4085165533549977883/150"; msg.ImageUrl = " "; message = msg; } //动态表情数据的组装 if (sender == btnEmj) { WXEmojiMessage msg = new WXEmojiMessage(); msg.Title = "Gif"; msg.Description = "this is a Gif"; msg.ThumbData = png; msg.EmojiData = gif; message = msg; } //文件数据的组装 if (sender == btnFile) { WXFileMessage msg = new WXFileMessage(); msg.Title = "file"; msg.Description = "this is a file"; msg.ThumbData = png; msg.FileData = doc; msg.FileName = "1.doc"; message = msg; } //链接数据的组装 if (sender == btnUrl) { WXWebpageMessage msg = new WXWebpageMessage(); msg.Title = "qq homepage"; msg.Description = "goto qq homepage"; msg.ThumbData = png; msg.WebpageUrl = "http://www.qq.com"; message = msg; } //音乐数据的组装 if (sender == btnMusic) { WXMusicMessage msg = new WXMusicMessage(); msg.Title = "music"; msg.Description = "by XXX"; msg.ThumbData = png; msg.MusicUrl = "http://y.qq.com/i/song.html#p=7B22736F6E675F4E616D65223A2220E998BFE5A3ABE58CB9E781B5222C22736F6E675F5761704C69766555524C223A22687474703A2F2F74736D7573696334382E74632E71712E636F6D2F586B30305156374F4141414134674141414250657376594E4D7A55327A4441784E654D35586A4A63366F76484F415942443174754251414F4347384439394B343965776F6244733D2F31313134383332342E6D34613F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D30222C22736F6E675F5769666955524C223A22687474703A2F2F73747265616D31312E71716D757369632E71712E636F6D2F33313134383332342E6D7033222C226E657454797065223A2277696669222C22736F6E675F416C62756D223A22E88BB1E79A87E7B2BEE9808932303038222C22736F6E675F4944223A313134383332342C22736F6E675F54797065223A312C22736F6E675F53696E676572223A22E99988E5A595E8BF85222C22736F6E675F576170446F776E4C6F616455524C223A22687474703A2F2F74736D757369633132382E74632E71712E636F6D2F586C464E4D31376C414141415977414141442F6954452B656E7A457A6D6A59324D4D55314F444C5230483937504B344142713850446D3550476C56436366394D536661644D5464704E7A3163665451344D673D3D2F33313134383332342E6D70333F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D3026616D703B73747265616D5F706F733D35227D"; msg.MusicLowBandUrl = "http://y.qq.com/i/song.html#p=7B22736F6E675F4E616D65223A2220E998BFE5A3ABE58CB9E781B5222C22736F6E675F5761704C69766555524C223A22687474703A2F2F74736D7573696334382E74632E71712E636F6D2F586B30305156374F4141414134674141414250657376594E4D7A55327A4441784E654D35586A4A63366F76484F415942443174754251414F4347384439394B343965776F6244733D2F31313134383332342E6D34613F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D30222C22736F6E675F5769666955524C223A22687474703A2F2F73747265616D31312E71716D757369632E71712E636F6D2F33313134383332342E6D7033222C226E657454797065223A2263617272696572222C22736F6E675F416C62756D223A22E88BB1E79A87E7B2BEE9808932303038222C22736F6E675F4944223A313134383332342C22736F6E675F54797065223A312C22736F6E675F53696E676572223A22E99988E5A595E8BF85222C22736F6E675F576170446F776E4C6F616455524C223A22687474703A2F2F74736D757369633132382E74632E71712E636F6D2F586C464E4D31376C414141415977414141442F6954452B656E7A457A6D6A59324D4D55314F444C5230483937504B344142713850446D3550476C56436366394D536661644D5464704E7A3163665451344D673D3D2F33313134383332342E6D70333F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D3026616D703B73747265616D5F706F733D35227D"; message = msg; } //视频数据的组装 if (sender == btnVedio) { WXVideoMessage msg = new WXVideoMessage(); msg.Title = "music"; msg.Description = "by XXX"; msg.ThumbData = png; msg.VideoUrl = "http://y.qq.com/i/song.html#p=7B22736F6E675F4E616D65223A2220E998BFE5A3ABE58CB9E781B5222C22736F6E675F5761704C69766555524C223A22687474703A2F2F74736D7573696334382E74632E71712E636F6D2F586B30305156374F4141414134674141414250657376594E4D7A55327A4441784E654D35586A4A63366F76484F415942443174754251414F4347384439394B343965776F6244733D2F31313134383332342E6D34613F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D30222C22736F6E675F5769666955524C223A22687474703A2F2F73747265616D31312E71716D757369632E71712E636F6D2F33313134383332342E6D7033222C226E657454797065223A2277696669222C22736F6E675F416C62756D223A22E88BB1E79A87E7B2BEE9808932303038222C22736F6E675F4944223A313134383332342C22736F6E675F54797065223A312C22736F6E675F53696E676572223A22E99988E5A595E8BF85222C22736F6E675F576170446F776E4C6F616455524C223A22687474703A2F2F74736D757369633132382E74632E71712E636F6D2F586C464E4D31376C414141415977414141442F6954452B656E7A457A6D6A59324D4D55314F444C5230483937504B344142713850446D3550476C56436366394D536661644D5464704E7A3163665451344D673D3D2F33313134383332342E6D70333F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D3026616D703B73747265616D5F706F733D35227D"; msg.VideoLowBandUrl = "http://y.qq.com/i/song.html#p=7B22736F6E675F4E616D65223A2220E998BFE5A3ABE58CB9E781B5222C22736F6E675F5761704C69766555524C223A22687474703A2F2F74736D7573696334382E74632E71712E636F6D2F586B30305156374F4141414134674141414250657376594E4D7A55327A4441784E654D35586A4A63366F76484F415942443174754251414F4347384439394B343965776F6244733D2F31313134383332342E6D34613F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D30222C22736F6E675F5769666955524C223A22687474703A2F2F73747265616D31312E71716D757369632E71712E636F6D2F33313134383332342E6D7033222C226E657454797065223A2263617272696572222C22736F6E675F416C62756D223A22E88BB1E79A87E7B2BEE9808932303038222C22736F6E675F4944223A313134383332342C22736F6E675F54797065223A312C22736F6E675F53696E676572223A22E99988E5A595E8BF85222C22736F6E675F576170446F776E4C6F616455524C223A22687474703A2F2F74736D757369633132382E74632E71712E636F6D2F586C464E4D31376C414141415977414141442F6954452B656E7A457A6D6A59324D4D55314F444C5230483937504B344142713850446D3550476C56436366394D536661644D5464704E7A3163665451344D673D3D2F33313134383332342E6D70333F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D3026616D703B73747265616D5F706F733D35227D"; message = msg; } //给微信发送响应数据,会回到微信的聊天界面,数据错误或发送错误,会抛出WXException。 try { GetMessageFromWX.Resp resp = new GetMessageFromWX.Resp(mRequest.Transaction, mRequest.Username, message); IWXAPI api = WXAPIFactory.CreateWXAPI(AppID); api.SendResp(resp); } catch (WXException ex) { MessageBox.Show(ex.Message); } }
//所有发送数据的按钮的处理函数,根据点击不同,组织不同数据发送给微信 private void Button_Click_1(object sender, RoutedEventArgs e) { System.Diagnostics.Debug.WriteLine("############################"); System.Diagnostics.Debug.WriteLine("Button_Click_1 in"); string AppID = ConstString.APPID; int scene = SendMessageToWX.Req.WXSceneSession; //发给微信朋友 WXBaseMessage message = null; //拉起微信 if (btnLaunch == sender) { WXAPIFactory.CreateWXAPI(AppID).OpenWXApp(); return; } //读取实例数据,示例数据都是从res中读取,实现时根据你的应用实际情况取得数据 byte[] png = readRes("Res/1.png"); //thumb byte[] jpg = readRes("Res/1.jpg"); //pic byte[] gif = readRes("Res/1.gif"); //emoji byte[] txt = readRes("Res/1.txt"); //text byte[] doc = readRes("Res/1.doc"); //word file //发送到朋友圈,设置scene为WXSceneTimeline if (sender == btnTxtSns || sender == btnImgSns || sender == btnUrlSns || sender == btnMusicSns) { scene = SendMessageToWX.Req.WXSceneTimeline; } //用户选择发给好友还是朋友圈,设置scene为WXSceneChooseByUser if (sender == btnTxt_ChooseByUser) { scene = SendMessageToWX.Req.WXSceneChooseByUser; } //文本数据的组装 if (sender == btnTxt || sender == btnTxtSns) { WXTextMessage msg = new WXTextMessage(); msg.Title = "text"; msg.ThumbData = null; msg.Text = "this is a text"; message = msg; } //图片数据的组装 if (sender == btnImg || sender == btnImgSns) { WXImageMessage msg = new WXImageMessage(); msg.Title = "picture"; msg.Description = "this is a picture"; msg.ThumbData = png; //图片的byte[]数据 //msg.ImageData = jpg; //图片的网络链接,ImageUrl和ImageData二者取其一,不要同时都填值 msg.ImageUrl = "http://soso7.gtimg.cn/sosopic/0/4085165533549977883/150"; message = msg; } //动态表情数据的组装 if (sender == btnEmj) { WXEmojiMessage msg = new WXEmojiMessage(); msg.Title = "Gif"; msg.Description = "this is a Gif"; msg.ThumbData = png; msg.EmojiData = gif; message = msg; } //文件数据的组装 if (sender == btnFile) { WXFileMessage msg = new WXFileMessage(); msg.Title = "file"; msg.Description = "this is a file"; msg.ThumbData = png; msg.FileData = doc; msg.FileName = "1.doc"; message = msg; } //链接数据的组装 if (sender == btnUrl || sender == btnUrlSns) { WXWebpageMessage msg = new WXWebpageMessage(); msg.Title = "qq homepage"; msg.Description = "goto qq homepage"; msg.ThumbData = png; msg.WebpageUrl = "http://www.qq.com"; message = msg; } //音乐数据的组装 if (sender == btnMusic || sender == btnMusicSns || sender == btnTxt_ChooseByUser) { WXMusicMessage msg = new WXMusicMessage(); msg.Title = "music"; msg.Description = "by XXX"; msg.ThumbData = png; msg.MusicUrl = "http://y.qq.com/i/song.html#p=7B22736F6E675F4E616D65223A2220E998BFE5A3ABE58CB9E781B5222C22736F6E675F5761704C69766555524C223A22687474703A2F2F74736D7573696334382E74632E71712E636F6D2F586B30305156374F4141414134674141414250657376594E4D7A55327A4441784E654D35586A4A63366F76484F415942443174754251414F4347384439394B343965776F6244733D2F31313134383332342E6D34613F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D30222C22736F6E675F5769666955524C223A22687474703A2F2F73747265616D31312E71716D757369632E71712E636F6D2F33313134383332342E6D7033222C226E657454797065223A2277696669222C22736F6E675F416C62756D223A22E88BB1E79A87E7B2BEE9808932303038222C22736F6E675F4944223A313134383332342C22736F6E675F54797065223A312C22736F6E675F53696E676572223A22E99988E5A595E8BF85222C22736F6E675F576170446F776E4C6F616455524C223A22687474703A2F2F74736D757369633132382E74632E71712E636F6D2F586C464E4D31376C414141415977414141442F6954452B656E7A457A6D6A59324D4D55314F444C5230483937504B344142713850446D3550476C56436366394D536661644D5464704E7A3163665451344D673D3D2F33313134383332342E6D70333F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D3026616D703B73747265616D5F706F733D35227D"; msg.MusicLowBandUrl = "http://y.qq.com/i/song.html#p=7B22736F6E675F4E616D65223A2220E998BFE5A3ABE58CB9E781B5222C22736F6E675F5761704C69766555524C223A22687474703A2F2F74736D7573696334382E74632E71712E636F6D2F586B30305156374F4141414134674141414250657376594E4D7A55327A4441784E654D35586A4A63366F76484F415942443174754251414F4347384439394B343965776F6244733D2F31313134383332342E6D34613F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D30222C22736F6E675F5769666955524C223A22687474703A2F2F73747265616D31312E71716D757369632E71712E636F6D2F33313134383332342E6D7033222C226E657454797065223A2263617272696572222C22736F6E675F416C62756D223A22E88BB1E79A87E7B2BEE9808932303038222C22736F6E675F4944223A313134383332342C22736F6E675F54797065223A312C22736F6E675F53696E676572223A22E99988E5A595E8BF85222C22736F6E675F576170446F776E4C6F616455524C223A22687474703A2F2F74736D757369633132382E74632E71712E636F6D2F586C464E4D31376C414141415977414141442F6954452B656E7A457A6D6A59324D4D55314F444C5230483937504B344142713850446D3550476C56436366394D536661644D5464704E7A3163665451344D673D3D2F33313134383332342E6D70333F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D3026616D703B73747265616D5F706F733D35227D"; message = msg; } //视频数据的组装 if (sender == btnVedio) { WXVideoMessage msg = new WXVideoMessage(); msg.Title = "music"; msg.Description = "by XXX"; msg.ThumbData = png; msg.VideoUrl = "http://y.qq.com/i/song.html#p=7B22736F6E675F4E616D65223A2220E998BFE5A3ABE58CB9E781B5222C22736F6E675F5761704C69766555524C223A22687474703A2F2F74736D7573696334382E74632E71712E636F6D2F586B30305156374F4141414134674141414250657376594E4D7A55327A4441784E654D35586A4A63366F76484F415942443174754251414F4347384439394B343965776F6244733D2F31313134383332342E6D34613F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D30222C22736F6E675F5769666955524C223A22687474703A2F2F73747265616D31312E71716D757369632E71712E636F6D2F33313134383332342E6D7033222C226E657454797065223A2277696669222C22736F6E675F416C62756D223A22E88BB1E79A87E7B2BEE9808932303038222C22736F6E675F4944223A313134383332342C22736F6E675F54797065223A312C22736F6E675F53696E676572223A22E99988E5A595E8BF85222C22736F6E675F576170446F776E4C6F616455524C223A22687474703A2F2F74736D757369633132382E74632E71712E636F6D2F586C464E4D31376C414141415977414141442F6954452B656E7A457A6D6A59324D4D55314F444C5230483937504B344142713850446D3550476C56436366394D536661644D5464704E7A3163665451344D673D3D2F33313134383332342E6D70333F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D3026616D703B73747265616D5F706F733D35227D"; msg.VideoLowBandUrl = "http://y.qq.com/i/song.html#p=7B22736F6E675F4E616D65223A2220E998BFE5A3ABE58CB9E781B5222C22736F6E675F5761704C69766555524C223A22687474703A2F2F74736D7573696334382E74632E71712E636F6D2F586B30305156374F4141414134674141414250657376594E4D7A55327A4441784E654D35586A4A63366F76484F415942443174754251414F4347384439394B343965776F6244733D2F31313134383332342E6D34613F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D30222C22736F6E675F5769666955524C223A22687474703A2F2F73747265616D31312E71716D757369632E71712E636F6D2F33313134383332342E6D7033222C226E657454797065223A2263617272696572222C22736F6E675F416C62756D223A22E88BB1E79A87E7B2BEE9808932303038222C22736F6E675F4944223A313134383332342C22736F6E675F54797065223A312C22736F6E675F53696E676572223A22E99988E5A595E8BF85222C22736F6E675F576170446F776E4C6F616455524C223A22687474703A2F2F74736D757369633132382E74632E71712E636F6D2F586C464E4D31376C414141415977414141442F6954452B656E7A457A6D6A59324D4D55314F444C5230483937504B344142713850446D3550476C56436366394D536661644D5464704E7A3163665451344D673D3D2F33313134383332342E6D70333F7569643D3233343931313534393826616D703B63743D3026616D703B636869643D3026616D703B73747265616D5F706F733D35227D"; message = msg; } //把数据发送给微信,数据错误或发送错误,会抛出WXException,调试时,可从WXException中得知是什么错误。 //发布应用时,可直接向用户提示错误,也可以根据自己实际需要定制错误的处理 try { SendMessageToWX.Req req = new SendMessageToWX.Req(message, scene); IWXAPI api = WXAPIFactory.CreateWXAPI(AppID); Console.WriteLine("api.SendReq in"); api.SendReq(req); } catch (WXException ex) { MessageBox.Show(ex.Message); } }
public void share(string argsJSON) { var args = JsonHelper.Deserialize <string[]>(argsJSON); var options = JsonHelper.Deserialize <WeChatShareOptions>(args[0]); if (options == null) { dispatchResult(PluginResult.Status.JSON_EXCEPTION, ERR_INVALID_OPTIONS); return; } WXBaseMessage message = null; var messageOptions = options.message; if (messageOptions != null) { switch (messageOptions.type) { case WeChatShareType.app: break; case WeChatShareType.emotion: break; case WeChatShareType.file: break; case WeChatShareType.image: if (!String.IsNullOrEmpty(messageOptions.url)) { message = new WXImageMessage(messageOptions.url); } else if (!String.IsNullOrEmpty(messageOptions.data)) { message = new WXImageMessage(Convert.FromBase64String(messageOptions.data)); } else { dispatchResult(PluginResult.Status.ERROR, ERR_INVALID_OPTIONS); return; } break; case WeChatShareType.music: break; case WeChatShareType.video: break; case WeChatShareType.webpage: default: message = new WXWebpageMessage(messageOptions.url); break; } if (message == null) { dispatchResult(PluginResult.Status.ERROR, ERR_UNSUPPORTED_MEDIA_TYPE); return; } message.Title = messageOptions.title; message.Description = messageOptions.description; if (!String.IsNullOrEmpty(messageOptions.thumbData)) { message.ThumbData = Convert.FromBase64String(messageOptions.thumbData); } } else if (options.text != null) { message = new WXTextMessage(options.text); } else { dispatchResult(PluginResult.Status.ERROR, ERR_INVALID_OPTIONS); return; } var scene = options.scene; if (scene == null) { scene = WeChatScene.timeline; } try { var request = new SendMessageToWX.Req(message, (int)scene); api.SendReq(request); } catch (WXException e) { dispatchResult(PluginResult.Status.ERROR, e.Message); return; } }