EventService.cs 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*----------------------------------------------------------------
  2. Copyright (C) 2015 Senparc
  3. 文件名:EventService.cs
  4. 文件功能描述:事件处理程序,此代码的简化MessageHandler方法已由/CustomerMessageHandler/CustomerMessageHandler_Event.cs完成
  5. 创建标识:Senparc - 20150312
  6. ----------------------------------------------------------------*/
  7. using System;
  8. using System.Diagnostics;
  9. using System.Web;
  10. using Senparc.Weixin.MP.Entities;
  11. using Senparc.Weixin.MP.Helpers;
  12. namespace Senparc.Weixin.MP.Sample.CommonService
  13. {
  14. /// <summary>
  15. /// 事件处理程序,此代码的简化MessageHandler方法已由/CustomerMessageHandler/CustomerMessageHandler_Event.cs完成,
  16. /// 此文件不再更新。
  17. /// </summary>
  18. public class EventService
  19. {
  20. public ResponseMessageBase GetResponseMessage(RequestMessageEventBase requestMessage)
  21. {
  22. ResponseMessageBase responseMessage = null;
  23. switch (requestMessage.Event)
  24. {
  25. case Event.ENTER:
  26. {
  27. var strongResponseMessage = requestMessage.CreateResponseMessage<ResponseMessageText>();
  28. strongResponseMessage.Content = "您刚才发送了ENTER事件请求。";
  29. responseMessage = strongResponseMessage;
  30. break;
  31. }
  32. case Event.LOCATION:
  33. throw new Exception("暂不可用");
  34. //break;
  35. case Event.subscribe://订阅
  36. {
  37. var strongResponseMessage = requestMessage.CreateResponseMessage<ResponseMessageText>();
  38. //获取Senparc.Weixin.MP.dll版本信息
  39. var fileVersionInfo = FileVersionInfo.GetVersionInfo(HttpContext.Current.Server.MapPath("~/bin/Senparc.Weixin.MP.dll"));
  40. var version = fileVersionInfo.FileVersion;
  41. strongResponseMessage.Content = string.Format(
  42. "欢迎关注【Senparc.Weixin.MP 微信公众平台SDK】,当前运行版本:v{0}。\r\n您还可以发送【位置】【图片】【语音】信息,查看不同格式的回复。\r\nSDK官方地址:http://weixin.senparc.com",
  43. version);
  44. responseMessage = strongResponseMessage;
  45. break;
  46. }
  47. case Event.unsubscribe://退订
  48. {
  49. //实际上用户无法收到非订阅账号的消息,所以这里可以随便写。
  50. //unsubscribe事件的意义在于及时删除网站应用中已经记录的OpenID绑定,消除冗余数据。
  51. var strongResponseMessage = requestMessage.CreateResponseMessage<ResponseMessageText>();
  52. strongResponseMessage.Content = "有空再来";
  53. responseMessage = strongResponseMessage;
  54. break;
  55. }
  56. case Event.CLICK://菜单点击事件,根据自己需要修改
  57. //这里的CLICK在此DEMO中不会被执行到,因为已经重写了OnEvent_ClickRequest
  58. break;
  59. default:
  60. throw new ArgumentOutOfRangeException();
  61. }
  62. return responseMessage;
  63. }
  64. }
  65. }