/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { Log4NetImpl.Write("关注事件触发:"); MpUser fromUser = MpUserService.GetByOpenID(requestMessage.FromUserName); if (fromUser != null) { Log4NetImpl.Write("EventKey:" + requestMessage.EventKey); fromUser.IsSubscribe = true; if (!string.IsNullOrEmpty(requestMessage.EventKey)) { fromUser.SceneId = Convert.ToInt32(requestMessage.EventKey.Replace("qrscene_", "")); Log4NetImpl.Write("OnEvent_SubscribeRequest:" + fromUser.SceneId.ToString()); } fromUser.LastVisitDate = DateTime.Now; MpUserService.Update(fromUser); } var responseMessage = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage); MpReply reply = MpReplyService.GetALL(k => k.Action == "beadded").FirstOrDefault(); if (reply != null) { return(ResponseMsg(reply.MpMaterial)); } return(responseMessage); }
/// <summary> /// 退订 /// 实际上用户无法收到非订阅账号的消息,所以这里可以随便写。 /// unsubscribe事件的意义在于及时删除网站应用中已经记录的OpenID绑定,消除冗余数据。并且关注用户流失的情况。 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_UnsubscribeRequest(RequestMessageEvent_Unsubscribe requestMessage) { MpUser fromUser = MpUserService.GetByOpenID(requestMessage.FromUserName); if (fromUser != null) { fromUser.IsSubscribe = false; fromUser.LastVisitDate = DateTime.Now; MpUserService.Update(fromUser); } return(null); }
public override IResponseMessageBase OnEvent_LocationRequest(RequestMessageEvent_Location requestMessage) { MpUser fromUser = MpUserService.GetByOpenID(requestMessage.FromUserName); if (fromUser != null) { fromUser.LocationX = requestMessage.Latitude; fromUser.LocationY = requestMessage.Longitude; fromUser.LocationLabel = string.IsNullOrEmpty(fromUser.LocationLabel) ? "" : fromUser.LocationLabel; fromUser.LastVisitDate = DateTime.Now; MpUserService.Update(fromUser); } return(null); }
/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_ScanRequest(RequestMessageEvent_Scan requestMessage) { Log4NetImpl.Write("Scan关注事件触发:"); MpUser fromUser = MpUserService.GetByOpenID(requestMessage.FromUserName); if (fromUser != null) { if (!string.IsNullOrEmpty(requestMessage.EventKey)) { fromUser.SceneId = Convert.ToInt32(requestMessage.EventKey); Log4NetImpl.Write("OnEvent_ScanRequest:" + fromUser.SceneId.ToString()); } fromUser.LastVisitDate = DateTime.Now; MpUserService.Update(fromUser); } return(null); }