示例#1
0
        /// <summary>
        /// 查询相关订单信息
        /// </summary>
        /// <param name="mod">查询参数实体</param>
        /// <param name="json">json字符串</param>
        /// <returns></returns>
        private QueryRespon OrderSelect(QueryModels mod, string json)
        {
            //订单缓存时间
            int         infoTime = Int32.Parse(ConfigurationManager.AppSettings["infoTime"]);
            QueryRespon qu       = new QueryRespon();

            JMP.MDL.jmp_order mode   = new JMP.MDL.jmp_order();
            string            hcname = "Query" + mod.appid.ToString();
            int QueryNum             = 0;

            if (JMP.TOOL.CacheHelper.IsCache(hcname))                   //判读是否存在缓存
            {
                QueryNum = JMP.TOOL.CacheHelper.GetCaChe <int>(hcname); //获取缓存
            }
            mode = SelectOrder(mod, json);
            if (mode != null)
            {
                qu             = qu.QueryResp(QueryErrorCode.Code100);
                qu.trade_code  = mode.o_code;
                qu.trade_no    = mode.o_bizcode;
                qu.trade_price = mode.o_price.ToString("f2");
                qu.o_state     = mode.o_state == 1 ? mode.o_state : 0;
                qu.trade_time  = mode.o_state == 1 ? mode.o_ptime.ToString("yyyyMMddHHmmss") : "";
                qu.trade_type  = string.IsNullOrEmpty(mode.o_paymode_id) ? 0 : Int32.Parse(mode.o_paymode_id);
                QueryNum       = QueryNum + 1;
                JMP.TOOL.CacheHelper.UpdateCacheObjectLocak <int>(QueryNum, hcname, infoTime);//存入缓存
            }
            else
            {
                qu = qu.QueryResp(QueryErrorCode.Code101);
            }
            return(qu);
        }
示例#2
0
        /// <summary>
        /// 验证应用和签名是否合法
        /// </summary>
        /// <param name="mode">请求参数实体</param>
        /// <param name="json">请求参数json</param>
        /// <param name="CacheTime">有效查询时间</param>
        /// <returns></returns>
        private QueryRespon Selectparameter(QueryModels mode, string json, int CacheTime)
        {
            QueryRespon qu        = new QueryRespon();
            SelectAPP   selectAPP = new SelectAPP();
            jmp_app     app       = selectAPP.SelectAppId(mode.appid, CacheTime);

            if (app != null)
            {
                //验证签名的方式 参数AIIZ首字母顺序排列md532大写加密
                Dictionary <string, string> dic = JMP.TOOL.JsonHelper.Deserialize <Dictionary <string, string> >(json);
                dic = dic.Where(x => x.Key != "sign").ToDictionary(x => x.Key, x => x.Value);
                string signstr = JMP.TOOL.UrlStr.AzGetStr(dic) + "&key=" + app.a_key;
                string md5str  = JMP.TOOL.MD5.md5strGet(signstr, true).ToUpper();
                if (mode.sign != md5str)
                {
                    return(qu = qu.QueryResp(QueryErrorCode.Code9993));
                }
                else
                {
                    qu = qu.QueryResp(QueryErrorCode.Code100);
                }
            }
            else
            {
                qu = qu.QueryResp(QueryErrorCode.Code9994);
            }
            return(qu);
        }
示例#3
0
 /// <summary>
 /// 查询接口返回参数方法
 /// </summary>
 /// <param name="query">接受参数实体</param>
 /// <param name="errorCode">参数接口枚举</param>
 /// <returns></returns>
 public static QueryRespon QueryResp(this QueryRespon query, QueryErrorCode error)
 {
     query.ErrorCode = error.QueryGetValue();
     query.Message   = error.QueryGetDescription();
     if (error == QueryErrorCode.Code100)
     {
         query.Success = true;
     }
     return(query);
 }
示例#4
0
        /// <summary>
        /// 查询接口参数验证方法
        /// </summary>
        /// <param name="mode">参数实体</param>
        /// <param name="json">参数json字符串</param>
        /// <returns></returns>
        private QueryRespon parameter(QueryModels mode, string json, int CacheTime)
        {
            QueryRespon qu = new QueryRespon();

            try
            {
                //订单缓存时间
                int bizcodeTime = Int32.Parse(ConfigurationManager.AppSettings["bizcodeTime"]);
                if (!string.IsNullOrEmpty(mode.bizcode) && mode.bizcode.Length > 64)
                {
                    return(qu = qu.QueryResp(QueryErrorCode.Code9998));
                }
                if (!string.IsNullOrEmpty(mode.code) && mode.code.Length > 32)
                {
                    return(qu = qu.QueryResp(QueryErrorCode.Code9997));
                }
                if (string.IsNullOrEmpty(mode.timestamp) || mode.timestamp.Length != 10)
                {
                    return(qu = qu.QueryResp(QueryErrorCode.Code9996));
                }
                PreOrder preOrder = new PreOrder();
                if (!preOrder.VerificationTimestamp(mode.timestamp, bizcodeTime))
                {
                    return(qu = qu.QueryResp(QueryErrorCode.Code9995));
                }
                if (string.IsNullOrEmpty(mode.code) && string.IsNullOrEmpty(mode.bizcode))
                {
                    return(qu = qu.QueryResp(QueryErrorCode.Code9991));
                }
                qu = qu.QueryResp(QueryErrorCode.Code100);
            }
            catch (Exception e)
            {
                string bcxx = "报错提示" + e.Message + "报错对象:" + e.Source + "报错方法:" + e.TargetSite + "报错信息:" + e.ToString() + "报错位置:" + e.StackTrace.ToString();//报错信息
                PayApiGlobalErrorLogger.Log("报错信息:查询接口验证参数错误,获取到的参数:" + json + ",报错信息:" + bcxx, summary: "接口错误信息");
                qu = qu.QueryResp(QueryErrorCode.Code101);
            }
            return(qu);
        }
示例#5
0
        /// <summary>
        /// 查询接口主通道
        /// </summary>
        /// <param name="mode">请求参数实体</param>
        /// <param name="json">请求参数json字符串</param>
        /// <param name="CacheTime">查询有效时间</param>
        /// <returns></returns>
        public QueryRespon SelectQuery(QueryModels mode, string json, int CacheTime)
        {
            QueryRespon qu = new QueryRespon();

            qu = parameter(mode, json, CacheTime);
            if (qu.Success)
            {
                if (SelectNum(mode))
                {
                    qu = Selectparameter(mode, json, CacheTime);
                    if (qu.Success)
                    {
                        qu = OrderSelect(mode, json);
                    }
                }
                else
                {
                    qu = qu.QueryResp(QueryErrorCode.Code9992);
                }
            }
            return(qu);
        }