參數有4個,javascript
access_token這個就不用介紹了,就是以前獲得的那個AccessToken,就是在這個接口裏邊當中參數用的css
touser是關注了公衆號的微信用戶的openid,這個其實就是就是第一篇:微信公衆號平臺接口開發:成爲開發者,裏邊的關注了測試帳號的帳戶html
咱們再看一篇,就是圈起來的那個IDjava
msgtype=text是固定的;
content就是要發送的文本內容;ajax
1 public abstract class MessageBase 2 { 3 protected string requestUri; 4 5 public MessageBase() 6 { } 7 8 public string Send() 9 { 10 try 11 { 12 var httpContent = this.CreateHttpClient(); 13 return WeCharBase.Post(this.requestUri, httpContent); 14 } 15 catch (Exception ex) 16 { 17 return ex.Message; 18 } 19 } 20 21 protected abstract HttpContent CreateHttpClient(); 22 } 23 24 public abstract class SingleMessageBase : MessageBase 25 { 26 public SingleMessageBase() 27 { 28 base.requestUri = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token={0}"; 29 } 30 } 31 32 public class TextSingleMessage : SingleMessageBase 33 { 34 public string ToUser { get; set; } 35 public string TextContent { get; set; } 36 37 public TextSingleMessage() { } 38 39 protected override HttpContent CreateHttpClient() 40 { 41 return new StringContent(JsonConvert.SerializeObject(new 42 { 43 touser = ToUser, 44 msgtype = "text", 45 text = new 46 { 47 content = TextContent 48 } 49 })); 50 } 51 }
1 public class SingleMessageController : Controller 2 { 3 /// <summary>發送文本信息</summary> 4 /// <returns></returns> 5 public ActionResult ViewTextSingleMessage() 6 { 7 return View(); 8 } 9 10 /// <summary>發送文本信息</summary> 11 /// <returns></returns> 12 public ActionResult TextSingleMessage(string id) 13 { 14 var textSingleMessage = new TextSingleMessage() 15 { 16 ToUser = "ombxUwMY-l-0rFyQkubkFcl4-Ggw", 17 TextContent = id 18 }; 19 20 return Content(textSingleMessage.Send()); 21 } 22 }
1 <script type="text/javascript" language="javascript"> 2 $(document).ready(function () { 3 $("#btnTextSingleMessage").click(function () { 4 $.ajax({ 5 type: "POST", 6 url: "/SingleMessage/TextSingleMessage", 7 data: { id: $("#txtContent").val() }, 8 success: function (responseTest) { 9 $("#resultMesage").text(responseTest); 10 } 11 }); 12 }); 13 }); 14 </script> 15 16 <table> 17 <tr> 18 <td> 19 <div class="title">發送文本消息</div> 20 <textarea id="txtContent" name="txtContent" rows="4" cols="40"></textarea> 21 </td> 22 <td><input class="btncss" id="btnTextSingleMessage" type="button" value=" 發送 " /></td> 23 <td id="resultMesage" class="resultMesage"></td> 24 </tr> 25 </table>
點擊 發送api
這個參數media_id能夠先在基礎支持裏邊的在線測試接口裏邊上傳服務器
獲得"media_id": "fJOxpTkVyZDnq7s21ovoeWFHSANKBZpZBBSBOwR2DlVorkRKYXDofqsNxgywL5d8"curl
1 public class ImageSingleMessage : SingleMessageBase 2 { 3 public string ToUser { get; set; } 4 public string MediaId { get; set; } 5 6 public ImageSingleMessage() { } 7 8 protected override HttpContent CreateHttpClient() 9 { 10 return new StringContent(JsonConvert.SerializeObject(new 11 { 12 touser = ToUser, 13 msgtype = "image", 14 image = new 15 { 16 media_id = MediaId 17 } 18 })); 19 } 20 }
新增下邊2個方法ide
/// <summary>發送圖片消息</summary> /// <returns></returns> public ActionResult ViewImageSingleMessage() { return View(); } /// <summary>發送圖片消息</summary> /// <returns></returns> public ActionResult PostImageMessage(string id) { var imageSingleMessage = new ImageSingleMessage() { ToUser = "ombxUwMY-l-0rFyQkubkFcl4-Ggw", MediaId = id }; return Content(imageSingleMessage.Send()); }
1 <script type="text/javascript" language="javascript"> 2 $(document).ready(function () { 3 $("#btnPostImageMessage").click(function () { 4 $.ajax({ 5 type: "POST", 6 url: "/SingleMessage/PostImageMessage", 7 data: { id: $("#txtMediaId").val() }, 8 success: function (responseTest) { 9 $("#resultPostImageMessage").text(responseTest); 10 } 11 }); 12 }); 13 }); 14 </script> 15 16 <table> 17 <tr> 18 <td> 19 <div class="title">發送圖片消息(MediaId)</div> 20 <textarea id="txtMediaId" name="txtMediaId" rows="2" cols="40"></textarea> 21 </td> 22 <td><input class="btncss" id="btnPostImageMessage" type="button" value=" 發送 " /></td> 23 <td id="resultPostImageMessage" class="resultMesage"></td> 24 </tr> 25 </table>
參數沒什麼講的,跟上邊發送圖片信息差很少
1 public class VoiceSingleMessage : SingleMessageBase 2 { 3 public string ToUser { get; set; } 4 public string MediaId { get; set; } 5 6 public VoiceSingleMessage() { } 7 8 protected override HttpContent CreateHttpClient() 9 { 10 return new StringContent(JsonConvert.SerializeObject(new 11 { 12 touser = ToUser, 13 msgtype = "voice", 14 voice = new 15 { 16 media_id = MediaId 17 } 18 })); 19 } 20 }
新增下邊2個方法
1 /// <summary>發送語音消息</summary> 2 /// <returns></returns> 3 public ActionResult ViewVoiceSingleMessage() 4 { 5 return View(); 6 } 7 8 /// <summary>發送語音消息</summary> 9 /// <returns></returns> 10 public ActionResult VoiceSingleMessage(string id) 11 { 12 var voiceSingleMessage = new VoiceSingleMessage() 13 { 14 ToUser = "ombxUwMY-l-0rFyQkubkFcl4-Ggw", 15 MediaId = id 16 }; 17 18 return Content(voiceSingleMessage.Send()); 19 }
1 <script type="text/javascript" language="javascript"> 2 $(document).ready(function () { 3 $("#btnVoiceSingleMessage").click(function () { 4 $.ajax({ 5 type: "POST", 6 url: "/SingleMessage/VoiceSingleMessage", 7 data: { id: $("#txtMediaId").val() }, 8 success: function (responseTest) { 9 $("#resultVoiceSingleMessage").text(responseTest); 10 } 11 }); 12 }); 13 }); 14 </script> 15 16 <table> 17 <tr> 18 <td> 19 <div class="title">發送語音消息(MediaId)</div> 20 <textarea id="txtMediaId" name="txtMediaId" rows="2" cols="40"></textarea> 21 </td> 22 <td><input class="btncss" id="btnVoiceSingleMessage" type="button" value=" 發送 " /></td> 23 <td id="resultVoiceSingleMessage" class="resultMesage"></td> 24 </tr> 25 </table>
media_id與thumb_media_id都是在基礎支持接口上傳獲得,後面會把新增素材寫出來
1 public class VideoSingleMessage : SingleMessageBase 2 { 3 public string ToUser { get; set; } 4 public string MediaId { get; set; } 5 public string ThumbMediaId { get; set; } 6 public string Title { get; set; } 7 public string Description { get; set; } 8 9 public VideoSingleMessage() { } 10 11 protected override HttpContent CreateHttpClient() 12 { 13 return new StringContent(JsonConvert.SerializeObject(new 14 { 15 touser = ToUser, 16 msgtype = "video", 17 video = new 18 { 19 media_id = MediaId, 20 thumb_media_id = ThumbMediaId, 21 title = Title, 22 description = Description 23 } 24 })); 25 } 26 }
修改控制器:SingleMessageController.cs
1 /// <summary>發送視頻消息</summary> 2 /// <returns></returns> 3 public ActionResult ViewVideoSingleMessage() 4 { 5 return View(); 6 } 7 8 /// <summary>發送視頻消息</summary> 9 /// <returns></returns> 10 public ActionResult VideoSingleMessage() 11 { 12 var videoSingleMessage = new VideoSingleMessage() 13 { 14 ToUser = "ombxUwMY-l-0rFyQkubkFcl4-Ggw", 15 Description = "Description", 16 Title = "Title", 17 MediaId = Request["mediaId"], 18 ThumbMediaId = Request["thumbMediaId"] 19 }; 20 21 return Content(videoSingleMessage.Send()); 22 }
1 <script type="text/javascript" language="javascript"> 2 $(document).ready(function () { 3 $("#btnUploadVideo").click(function () { 4 $.ajax({ 5 type: "Get", 6 url: "/Upload/Video", 7 success: function (responseTest) { 8 $("#resultUploadVideo").text(responseTest); 9 } 10 }); 11 }); 12 $("#btnUploadMultimediaThumb").click(function () { 13 $.ajax({ 14 type: "Get", 15 url: "/Upload/Thumb", 16 success: function (responseTest) { 17 $("#resultUploadMultimediaThumb").text(responseTest); 18 } 19 }); 20 }); 21 22 $("#btnVideoSingleMessage").click(function () { 23 $.ajax({ 24 type: "POST", 25 url: "/SingleMessage/VideoSingleMessage", 26 data: { mediaId: $("#textMediaId").val(), thumbMediaId: $("#txtThumbMediaId").val() }, 27 success: function (responseTest) { 28 $("#resultVideoSingleMessage").text(responseTest); 29 } 30 }); 31 }); 32 }); 33 </script> 34 35 <table> 36 <tr> 37 <td> 38 <div class="title">上傳視頻消息素材</div> 39 <a href="~/Files/video.mp4">待上傳的視頻文件:video.mp4</a> 40 </td> 41 <td><input class="btncss" id="btnUploadVideo" type="button" value=" 上傳 " /></td> 42 <td id="resultUploadVideo" class="resultMesage"></td> 43 </tr> 44 <tr><td colspan="3"> </td></tr> 45 <tr> 46 <td> 47 <div class="title">上傳縮略圖消息素材</div> 48 <img src="~/Files/thumb.jpg" width="305" height="150" /> 49 </td> 50 <td><input class="btncss" id="btnUploadMultimediaThumb" type="button" value=" 上傳 " /></td> 51 <td id="resultUploadMultimediaThumb" class="resultMesage"></td> 52 </tr> 53 <tr><td colspan="3"> </td></tr> 54 <tr> 55 <td> 56 <div class="title">發送視頻消息(MediaId,ThumbMediaId)</div> 57 <textarea id="textMediaId" name="textMediaId" rows="2" cols="40"></textarea><br /> 58 <textarea id="txtThumbMediaId" name="txtThumbMediaId" rows="2" cols="40"></textarea> 59 </td> 60 <td><input class="btncss" id="btnVideoSingleMessage" type="button" value=" 發送 " /></td> 61 <td id="resultVideoSingleMessage" class="resultMesage"></td> 62 </tr> 63 </table>
1 public class NewsSingleMessage : SingleMessageBase 2 { 3 public string ToUser { get; set; } 4 5 public List<SendNewsMessageArticlesModel> Articles { get; set; } 6 7 public NewsSingleMessage() { } 8 9 protected override HttpContent CreateHttpClient() 10 { 11 return new StringContent(JsonConvert.SerializeObject(new 12 { 13 touser = ToUser, 14 msgtype = "news", 15 news = new 16 { 17 articles = Articles 18 } 19 })); 20 } 21 }
新增下邊2個方法
1 /// <summary>發送圖文消息</summary> 2 /// <returns></returns> 3 public ActionResult ViewNewsSingleMessage() 4 { 5 return View(); 6 } 7 8 /// <summary>發送圖文消息</summary> 9 /// <returns></returns> 10 public ActionResult NewsSingleMessage() 11 { 12 var newsSingleMessage = new NewsSingleMessage() 13 { 14 ToUser = "ombxUwMY-l-0rFyQkubkFcl4-Ggw", 15 Articles = new List<SendNewsMessageArticlesModel>() 16 { 17 new SendNewsMessageArticlesModel() 18 { 19 title="圖片1", 20 description="圖片說明1", 21 url="http://www.cnblogs.com/lanxiaoke", 22 picurl="http://desk.fd.zol-img.com.cn/t_s960x600c5/g5/M00/02/07/ChMkJlbKy1mIG_eHAAlF-ObP9cEAALIpgOhgqkACUYQ017.jpg" 23 }, 24 new SendNewsMessageArticlesModel() 25 { 26 title="圖片2", 27 description="圖片說明2", 28 url="http://www.cnblogs.com/lanxiaoke", 29 picurl="http://desk.fd.zol-img.com.cn/t_s960x600c5/g5/M00/02/07/ChMkJ1bKy1qIDBKwABi_N9uSQHEAALIpgOIw1oAGL9P120.jpg" 30 } 31 } 32 }; 33 34 return Content(newsSingleMessage.Send()); 35 }
好了,自此,發送客服消息已經介紹完了,但願對新手有所幫助