Ejemplo n.º 1
0
        /// <summary>
        /// 获取云平台方法签名
        /// </summary>
        /// <param name="method"></param>
        /// <param name="timeStamp"></param>
        /// <param name="mParams"></param>
        /// <returns></returns>
        private static string GetCloudMethodSignature(string method, string timeStamp, DiscuzCloudMethodParameter mParams)
        {
            DiscuzCloudConfigInfo config = DiscuzCloudConfigs.GetConfig();

            return(Utils.MD5(string.Format("format={0}&method={1}&sId={2}{3}|{4}|{5}",
                                           FORMAT, method, config.Cloudsiteid, mParams.GetPostData(), config.Cloudsitekey, timeStamp)));
        }
Ejemplo n.º 2
0
        private static BaseCloudResponse <T> GetCloudResponse <T>(string method, DiscuzCloudMethodParameter mParams)
        {
            string text = mParams.Find("sTimestamp");

            text = (string.IsNullOrEmpty(text) ? Utils.ConvertToUnixTimestamp(DateTime.Now).ToString() : text);
            string postData = string.Format("format={0}&method={1}&sId={2}&sig={3}&ts={4}{5}", new object[]
            {
                FORMAT,
                method,
                DiscuzCloudConfigInfo.Current.Cloudsiteid,
                DiscuzCloud.GetCloudMethodSignature(method, text, mParams),
                text,
                mParams.GetPostData()
            });
            string httpWebResponse = Utils.GetHttpWebResponse(CLOUD_URL, postData);
            BaseCloudResponse <T> result;

            try
            {
                result = JavaScriptConvert.DeserializeObject <BaseCloudResponse <T> >(httpWebResponse);
            }
            catch
            {
                BaseCloudResponse <string> baseCloudResponse = JavaScriptConvert.DeserializeObject <BaseCloudResponse <string> >(httpWebResponse);
                result = new BaseCloudResponse <T>
                {
                    ErrCode    = baseCloudResponse.ErrCode,
                    ErrMessage = baseCloudResponse.ErrMessage
                };
            }
            return(result);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取云平台后台调用链接(产品后台iframe链接和跳转链接)
        /// </summary>
        /// <param name="target"></param>
        /// <param name="mParams"></param>
        /// <returns></returns>
        private static string GetCloudCpUrl(string target, DiscuzCloudMethodParameter mParams)
        {
            string timeStamp = Utils.ConvertToUnixTimestamp(DateTime.Now).ToString();

            return(CLOUD_CP_URL + target + "?ts=" + timeStamp + mParams.GetPostData() + "&sig=" + GetCloudIframeSignature(mParams, timeStamp));
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 获取云平台后台调用签名(产品后台iframe链接和跳转链接的附带签名)
 /// </summary>
 /// <param name="mParams"></param>
 /// <param name="timeStamp"></param>
 /// <returns></returns>
 private static string GetCloudIframeSignature(DiscuzCloudMethodParameter mParams, string timeStamp)
 {
     return(Utils.MD5(string.Format("{0}|{1}|{2}", mParams.GetPostData().TrimStart('&'), DiscuzCloudConfigs.GetConfig().Cloudsitekey, timeStamp)));
 }
Ejemplo n.º 5
0
        /// <summary>
        /// 从云平台调用指定方法并返回指定类型(T)信息
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="method"></param>
        /// <param name="mParams"></param>
        /// <returns></returns>
        private static BaseCloudResponse <T> GetCloudResponse <T>(string method, DiscuzCloudMethodParameter mParams)
        {
            string timeStamp = mParams.Find("sTimestamp");

            timeStamp = string.IsNullOrEmpty(timeStamp) ? Utils.ConvertToUnixTimestamp(DateTime.Now).ToString() : timeStamp;

            string postData = string.Format("format={0}&method={1}&sId={2}&sig={3}&ts={4}{5}"
                                            , FORMAT, method, DiscuzCloudConfigs.GetConfig().Cloudsiteid,
                                            GetCloudMethodSignature(method, timeStamp, mParams), timeStamp, mParams.GetPostData());

            string response = Utils.GetHttpWebResponse(CLOUD_URL, postData);

            try
            {
                return(JavaScriptConvert.DeserializeObject <BaseCloudResponse <T> >(response));
            }
            catch
            {
                BaseCloudResponse <string> err    = JavaScriptConvert.DeserializeObject <BaseCloudResponse <string> >(response);
                BaseCloudResponse <T>      errObj = new BaseCloudResponse <T>();
                errObj.ErrCode    = err.ErrCode;
                errObj.ErrMessage = err.ErrMessage;
                return(errObj);
            }
        }
Ejemplo n.º 6
0
        public static string GetCloudTestResponse(string method, DiscuzCloudMethodParameter mParams)
        {
            string timeStamp = mParams.Find("sTimestamp");

            timeStamp = string.IsNullOrEmpty(timeStamp) ? Utils.ConvertToUnixTimestamp(DateTime.Now).ToString() : timeStamp;
            string postData = string.Format("format={0}&method={1}&sId={2}&sig={3}&ts={4}{5}"
                                            , FORMAT, method, DiscuzCloudConfigs.GetConfig().Cloudsiteid,
                                            GetCloudMethodSignature(method, timeStamp, mParams), timeStamp, mParams.GetPostData());

            return(Utils.GetHttpWebResponse(CLOUD_URL, postData));
        }