public static bool CheckSystemParameters(System.Collections.Generic.SortedDictionary <string, string> parameters, string app_key, out string result) { result = string.Empty; if (string.IsNullOrEmpty(DataHelper.CleanSearchString(parameters["app_key"]))) { result = OpenApiErrorMessage.ShowErrorMsg(OpenApiErrorCode.Missing_App_Key, "app_key"); return(false); } if (app_key != parameters["app_key"]) { result = OpenApiErrorMessage.ShowErrorMsg(OpenApiErrorCode.Invalid_App_Key, "app_key"); return(false); } if (!parameters.Keys.Contains("timestamp") || string.IsNullOrEmpty(DataHelper.CleanSearchString(parameters["timestamp"]))) { result = OpenApiErrorMessage.ShowErrorMsg(OpenApiErrorCode.Missing_Timestamp, "timestamp"); return(false); } if (!OpenApiHelper.IsDate(parameters["timestamp"]) || !OpenApiSign.CheckTimeStamp(parameters["timestamp"])) { result = OpenApiErrorMessage.ShowErrorMsg(OpenApiErrorCode.Invalid_Timestamp, "timestamp"); return(false); } if (string.IsNullOrEmpty(DataHelper.CleanSearchString(parameters["sign"]))) { result = OpenApiErrorMessage.ShowErrorMsg(OpenApiErrorCode.Missing_Signature, "sign"); return(false); } return(true); }
public static bool CheckSystemParameters(string in_app_key, string in_timestamp, string in_sign, out string result) { result = string.Empty; SiteSettings siteSettings = HiContext.Current.SiteSettings; if (string.IsNullOrEmpty(DataHelper.CleanSearchString(in_app_key))) { result = OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.Missing_App_Key, "app_key"); return(false); } if (!siteSettings.AppKey.Equals(in_app_key)) { result = OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.Invalid_App_Key, "app_key"); return(false); } if (string.IsNullOrEmpty(DataHelper.CleanSearchString(in_timestamp))) { result = OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.Missing_Timestamp, "timestamp"); return(false); } if (!OpenApiHelper.IsDate(in_timestamp) || !OpenApiSign.CheckTimeStamp(in_timestamp)) { result = OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.Invalid_Timestamp, "timestamp"); return(false); } if (string.IsNullOrEmpty(DataHelper.CleanSearchString(in_sign))) { result = OpenApiErrorMessage.ShowErrorMsg((Enum)(object)OpenApiErrorCode.Missing_Signature, "sign"); return(false); } return(true); }
/// <summary> /// 检测基础参数和参数签名 /// </summary> /// <param name="data"></param> /// <returns></returns> public static void CheckBaseParamsAndSign(SortedDictionary <string, string> data) { if (data == null) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.System_Error, "no params"); } if (data.Count < 1) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.System_Error, "no params"); } string app_key = ""; string timestamp = ""; string sign = ""; #region 基础检测 if (!data.TryGetValue("app_key", out app_key)) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.Missing_App_Key, "app_key"); } if (string.IsNullOrWhiteSpace(app_key)) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.Missing_App_Key, "app_key"); } if (!data.TryGetValue("timestamp", out timestamp)) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.Missing_Timestamp, "timestamp"); } if (string.IsNullOrWhiteSpace(timestamp)) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.Missing_Timestamp, "timestamp"); } if (!OpenApiSign.CheckTimeStamp(timestamp)) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.Invalid_Timestamp, "timestamp"); } if (!data.TryGetValue("sign", out sign)) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.Missing_Signature, "sign"); } if (string.IsNullOrWhiteSpace(sign)) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.Missing_Signature, "sign"); } #endregion ShopHelper shobj = new ShopHelper(app_key); //验签 string msg = ""; if (!OpenApiSign.CheckSign(data, shobj.AppSecreate, ref msg)) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.Invalid_Signature, "sign"); } }
/// <summary> /// 检测参数完整性与合法性 /// </summary> /// <returns></returns> public virtual bool CheckParameter() { bool result = false; if (string.IsNullOrWhiteSpace(app_key)) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.Missing_App_Key, "app_key"); } if (string.IsNullOrWhiteSpace(timestamp)) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.Missing_Timestamp, "timestamp"); } if (!OpenApiSign.CheckTimeStamp(timestamp)) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.Invalid_Timestamp, "timestamp"); } if (string.IsNullOrWhiteSpace(sign)) { throw new MallApiException(Hishop.Open.Api.OpenApiErrorCode.Missing_Signature, "sign"); } return(result); }