static string GetResponseString(HttpContext context) { MornRequestData requestData = MornRequestData.Create(context); if (ProtocolDataVerifier != null) { try { ProtocolDataVerifier.Validate(requestData); } catch (MornException ex) { return(MornErrorUtil.GenError( ex.ErrorType, ex.Message)); } } var handler = GetProtocolHandler(requestData.Method); if (handler == null) { return(MornErrorUtil.GenError(MornErrorType.UnknownMethod)); } return(handler.Process(requestData)); }
public string Process(MornRequestData data) { var request = JsonConvert.DeserializeObject <TRequest>(data.Data); var response = _localFunc.Invoke(request, data.RequestServices); var timeFormat = new Newtonsoft.Json.Converters.IsoDateTimeConverter(); timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss"; return(JsonConvert.SerializeObject(response, Formatting.Indented, timeFormat)); }
public string Process(MornRequestData data) { try { return(_client.DoPost(_url, data.Context)); } catch (Exception ex) { return(MornErrorUtil.GenError(MornErrorType.SystemError, ex.Message)); } }
public static MornRequestData Create(HttpContext context) { MornRequestData data = new MornRequestData(); data.RequestServices = context.RequestServices; var request = context.Request; //准备内容元素 using (StreamReader sr = new StreamReader(context.Request.Body, Encoding.UTF8)) { data.Context = sr.ReadToEnd(); } var map = JsonConvert.DeserializeObject <IDictionary <string, string> >(data.Context); foreach (var kv in map) { data._textParams[kv.Key] = kv.Value; } return(data); }
public void Validate(MornRequestData data) { if (!VerifyAppKey && !VerifySignature && !VerifyAuthority) { return; } AppItem item; if (!_appMap.TryGetValue(data.AppKey, out item)) { throw new MornException(MornErrorType.InvalidAppKey); } if (VerifySignature) { if (string.IsNullOrEmpty(item.AppSecret)) { throw new MornException(MornErrorType.SignError); } var dic = data.GetTextParamsWithoutSign(); var sign = Security.Signature.SignRequestByMd5Method(dic, item.AppSecret); if (!data.Sign.Equals(sign)) { throw new MornException(MornErrorType.SignError); } } if (VerifyAuthority) { if (item.AuthoritySet == null) { throw new MornException(MornErrorType.InvalidAuthority); } if (!item.AuthoritySet.Contains(data.Method)) { throw new MornException(MornErrorType.InvalidAuthority); } } }