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

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

创建订阅计划
public static createPlan ( BCPlan plan ) : BCPlan
plan BCPlan 设置计划参数
Результат BCPlan
        public static BCPlan createPlan(BCPlan plan)
        {
            long timestamp = BCUtil.GetTimeStamp(DateTime.Now);

            JsonData data = new JsonData();
            data["app_id"] = BCCache.Instance.appId;

            data["app_sign"] = BCPrivateUtil.getAppSignature(BCCache.Instance.appId, BCCache.Instance.appSecret, timestamp.ToString());

            data["timestamp"] = timestamp;
            data["fee"] = plan.fee;
            data["interval"] = plan.interval;
            data["name"] = plan.name;
            data["currency"] = plan.currency;
            if (plan.intervalCount != null)
            {
                data["interval_count"] = plan.intervalCount;
            }
            if (plan.trialDays != null)
            {
                data["trial_days"] = plan.trialDays;
            }
            if (plan.valid != null)
            {
                data["valid"] = plan.valid;
            }
            if (plan.optional != null && plan.optional.Count > 0)
            {
                data["optional"] = new JsonData();
                foreach (string key in plan.optional.Keys)
                {
                    data["optional"][key] = plan.optional[key];
                }
            }

            string paraString = data.ToJson();

            string planURL = BCPrivateUtil.getHost() + BCConstants.version + BCConstants.bcplanURL;

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

                string respString = BCPrivateUtil.GetResponseString(response);

                JsonData responseData = JsonMapper.ToObject(respString);

                if (responseData["result_code"].ToString() == "0")
                {
                    plan.ID = responseData["plan"]["id"].ToString();
                    plan.currency = responseData["plan"]["currency"].ToString();
                    plan.intervalCount = (int)responseData["plan"]["interval_count"];
                    plan.trialDays = (int)responseData["plan"]["trial_days"];
                    plan.valid = (bool)responseData["plan"]["valid"];
                    return plan;
                }
                else
                {
                    var ex = new BCException(responseData["err_detail"].ToString());
                    throw ex;
                }
            }
            catch (Exception e)
            {
                var ex = new BCException(e.Message);
                throw ex;
            }
        }