コード例 #1
0
        public JsonResult PostData(PostDataReq req)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Where(x => x.Value.Errors.Count > 0).Select(x => new { PropertyName = x.Key, ErrorMsg = x.Value.Errors[0].ErrorMessage }).ToList();
                return(ObjectExtends.ToJsonObject(Entity.Enum.EnumRspStatus.Fail, values: errors).ToJsonResult());
            }
            if (!CheckSign(req))
            {
                return(ObjectExtends.ToJsonObject(Entity.Enum.EnumRspStatus.Fail, msg: "签名验证失败!").ToJsonResult());
            }

            return(ObjectExtends.ToJsonObject(Entity.Enum.EnumRspStatus.Success, values: new { name = "测试", age = 10 }).ToJsonResult());
        }
コード例 #2
0
        /// <summary>
        /// (1)接口参数加密(基础加密)
        /// 通过签名匹配校验
        /// </summary>
        /// <returns></returns>
        public HttpResponseMessage GetUserBySign(string mobile, string appKey, string sign)
        {
            var dic = new SortedList <string, string>();

            dic.Add("mobile", mobile);
            dic.Add("appKey", appKey);
            var currentSign = SecurifyHelper.CreateSign(dic, appKey);

            if (currentSign != sign)
            {
                return(ObjectExtends.ToHttpRspMsgError("非法调用"));
            }

            var user = GetUserObj();

            return(user.ToHttpRspMsgSuccess());
        }
コード例 #3
0
        public HttpResponseMessage GetSecretToken([FromBody] string appKey, long timestamp, string sign)
        {
            var dic = new SortedList <string, string>();

            dic.Add("timestamp", timestamp.ToString());
            dic.Add("appKey", appKey);
            var chkResult = SecretHelper.CheckSign(dic, sign);

            if (!chkResult.Status)
            {
                return(ObjectExtends.ToHttpRspMsgError(chkResult.Msg));
            }
            //生成临时接口校验token
            var secretToken = SecretHelper.GetSecretTokenByKey(appKey);

            return(new { secretToken = "" }.ToHttpRspMsgSuccess());
        }
コード例 #4
0
        public JsonResult Query(QueryLotteryReq req)
        {
            string probability = "0", historyWinningCount = "0", historyMaxFlawed = "0";//理论出现概率,历史开奖中奖次数,历史最大披露

            if (req.LotteryType == "Sd11x5")
            {
                //理论出现概率
                //CreateQueue();
                probability = string.Format("{0:0.#####}", 1 * 100 * 0.00001 / (11 * 10 * 9 * 8 * 7 * 0.00001));

                //历史开奖中的中奖次数
                historyWinningCount = GetHistoryWinningCount(req.LotteryCode).ToString();

                //历史最大遗漏  待实现
            }
            return(ObjectExtends.ToJsonObject(Entity.Enum.EnumRspStatus.Success, values: new { probability, historyWinningCount, historyMaxFlawed }).ToJsonResult());
        }
コード例 #5
0
        /// <summary>
        /// (3)通过以上方式+私钥
        /// </summary>
        /// <param name="mobile"></param>
        /// <param name="timestamp"></param>
        /// <param name="appKey"></param>
        /// <param name="sign"></param>
        /// <returns></returns>
        public HttpResponseMessage GetUserBySecretKey(string token, long timestamp, string appKey, string sign)
        {
            var dic = new SortedList <string, string>();

            dic.Add("token", token);
            dic.Add("timestamp", timestamp.ToString());
            dic.Add("appKey", appKey);
            var chkResult = SecretHelper.CheckSign(dic, sign);

            if (!chkResult.Status)
            {
                return(ObjectExtends.ToHttpRspMsgError(chkResult.Msg));
            }

            var user = GetUserObj();

            return(user.ToHttpRspMsgSuccess());
        }
コード例 #6
0
        /// <summary>
        /// (2)通过以上方式+时效性
        /// </summary>
        /// <param name="mobile"></param>
        /// <param name="timestamp"></param>
        /// <param name="appKey"></param>
        /// <param name="sign"></param>
        /// <returns></returns>
        public HttpResponseMessage GetUserBytimestamp(string mobile, long timestamp, string appKey, string sign)
        {
            var dic = new SortedList <string, string>();

            dic.Add("mobile", mobile);
            dic.Add("timestamp", timestamp.ToString());
            dic.Add("appKey", appKey);
            var currentSign = SecurifyHelper.CreateSign(dic, appKey);

            //判断签名是否一致
            if (currentSign != sign)
            {
                return(ObjectExtends.ToHttpRspMsgError("非法请求"));
            }
            //判断是否过期,30s有效期
            if (new DateTime(timestamp).AddSeconds(30) < DateTime.Now)
            {
                return(ObjectExtends.ToHttpRspMsgError("无效请求"));
            }

            var user = GetUserObj();

            return(user.ToHttpRspMsgSuccess());
        }