/// <summary> /// 未知消息类型默认消息 /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public override IResponseMessageBase OnUnknownTypeRequest(RequestMessageUnknownType requestMessage) { var msgType = MsgTypeHelper.GetRequestMsgTypeString(requestMessage.RequestDocument); var responseMessage = this.CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = "未知消息类型:" + msgType; return(responseMessage); //return base.OnUnknownTypeRequest(requestMessage); }
public override async Task <IResponseMessageBase> OnUnknownTypeRequestAsync(RequestMessageUnknownType requestMessage) { /* * 此方法用于应急处理SDK没有提供的消息类型, * 原始XML可以通过requestMessage.RequestDocument(或this.RequestDocument)获取到。 * 如果不重写此方法,遇到未知的请求类型将会抛出异常(v14.8.3 之前的版本就是这么做的) */ var msgType = MsgTypeHelper.GetRequestMsgTypeString(requestMessage.RequestDocument); var responseMessage = this.CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = "未知消息类型:" + msgType; return(responseMessage); }
public override IResponseMessageBase OnUnknownTypeRequest(RequestMessageUnknownType requestMessage) { /* * 此方法用于应急处理SDK没有提供的消息类型, * 原始XML可以通过requestMessage.RequestDocument(或this.RequestDocument)获取到。 * 如果不重写此方法,遇到未知的请求类型将会抛出异常(v14.8.3 之前的版本就是这么做的) */ var msgType = MsgTypeHelper.GetRequestMsgTypeString(requestMessage.RequestDocument); var responseMessage = this.CreateResponseMessage <ResponseMessageText>(); responseMessage.Content = "未知消息类型:" + msgType; // WeixinTrace.SendCustomLog("未知请求消息类型", requestMessage.RequestDocument.ToString());//记录到日志中 return(responseMessage); }
//{ // 例如可以这样实现: // var responseMessage = this.CreateResponseMessage<ResponseMessageText>(); // responseMessage.Content = "您发送的消息类型暂未被识别。"; // return responseMessage; //} /// <summary> /// 未知类型消息触发的事件,默认将抛出异常,建议进行重写 /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public virtual IResponseMessageBase OnUnknownTypeRequest(RequestMessageUnknownType requestMessage) { var msgType = MsgTypeHelper.GetRequestMsgTypeString(requestMessage.RequestDocument); throw new UnknownRequestMsgTypeException("MsgType:{0} 在RequestMessageFactory中没有对应的处理程序!".FormatWith(msgType), new ArgumentOutOfRangeException());//为了能够对类型变动最大程度容错(如微信目前还可以对公众账号suscribe等未知类型,但API没有开放),建议在使用的时候catch这个异常 }