BeeCloud.BCPay.queryPlansByCondition C# (CSharp) Метод

queryPlansByCondition() публичный статический Метод

按条件查询订阅计划
public static queryPlansByCondition ( string nameWithSubstring, string interval, int intervalCount, int trialDays, long createdBefore, long createdAfter, int skip, int limit, bool countOnly ) : List
nameWithSubstring string 订阅计划名
interval string 订阅周期
intervalCount int 周期长度
trialDays int 订阅发生时间与实际扣款时间之间的时长
createdBefore long 创建时间前
createdAfter long 创建时间后
skip int 跳过数量
limit int 查询限量
countOnly bool 设置为true时只返回数量,设置为false时只返回plan记录
Результат List
        public static List<BCPlan> queryPlansByCondition(string nameWithSubstring, string interval, int? intervalCount, int? trialDays, long? createdBefore, long? createdAfter, int? skip, int? limit, bool countOnly)
        {
            long timestamp = BCUtil.GetTimeStamp(DateTime.Now);

            string planURL = BCPrivateUtil.getHost() + BCConstants.version + BCConstants.bcplanURL;
            planURL += "?app_id=" + BCCache.Instance.appId + "&app_sign=" + BCPrivateUtil.getAppSignature(BCCache.Instance.appId, BCCache.Instance.appSecret, timestamp.ToString()) + "&timestamp=" + timestamp;
            if (nameWithSubstring != null)
            {
                planURL += "&name_with_substring=" + nameWithSubstring;
            }
            if (interval != null)
            {
                planURL += "&interval=" + interval;
            }
            if (intervalCount.HasValue)
            {
                planURL += "&interval_count=" + intervalCount.Value;
            }
            if (trialDays.HasValue)
            {
                planURL += "&trial_days=" + trialDays.Value;
            }
            if (createdBefore.HasValue)
            {
                planURL += "&created_before=" + createdBefore.Value;
            }
            if (createdAfter.HasValue)
            {
                planURL += "&created_after=" + createdAfter.Value;
            }
            if (skip.HasValue)
            {
                planURL += "&skip=" + skip.Value;
            }
            if (limit.HasValue)
            {
                planURL += "&limit=" + limit.Value;
            }
            planURL += "&count_only=" + countOnly;

            try
            {
                HttpWebResponse response = BCPrivateUtil.CreateGetHttpResponse(planURL, BCCache.Instance.networkTimeout);

                string respString = BCPrivateUtil.GetResponseString(response);

                JsonData responseData = JsonMapper.ToObject(respString);

                if (responseData["result_code"].ToString() == "0")
                {
                    List<BCPlan> plans = new List<BCPlan>();
                    if (responseData["plans"].IsArray)
                    {
                        foreach (JsonData planData in responseData["plans"])
                        {
                            BCPlan plan = new BCPlan();
                            plan.ID = planData["id"].ToString();
                            plan.fee = (int)planData["fee"];
                            plan.interval = planData["interval"].ToString();
                            plan.name = planData["name"].ToString();
                            plan.currency = planData["currency"].ToString();
                            plan.intervalCount = (int)planData["interval_count"];
                            plan.trialDays = (int)planData["trial_days"];
                            plan.valid = (bool)planData["valid"];
                            plan.optional = JsonMapper.ToObject<Dictionary<string, string>>(planData["optional"].ToJson().ToString());

                            plans.Add(plan);
                        }
                    }
                    return plans;
                }
                else
                {
                    var ex = new BCException(responseData["err_detail"].ToString());
                    throw ex;
                }
            }
            catch (Exception e)
            {
                var ex = new BCException(e.Message);
                throw ex;
            }
        }