示例#1
0
 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);
 }
示例#2
0
        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);
        }
示例#3
0
        /// <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");
            }
        }
示例#4
0
        /// <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);
        }