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

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

跟新订阅计划
public static updatePlan ( string id, string name, bool valid, string>.Dictionary optional ) : string
id string 计划ID
name string 计划名
valid bool
optional string>.Dictionary 自定义字段
Результат string
        public static string updatePlan(string id, string name, bool? valid, Dictionary<string, string> optional)
        {
            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;
            if (name != null)
            {
                data["name"] = name;
            }
            if (valid.HasValue)
            {
                data["valid"] = valid.Value;
            }

            if (optional != null && optional.Count > 0)
            {
                data["optional"] = new JsonData();
                foreach (string key in optional.Keys)
                {
                    data["optional"][key] = optional[key];
                }
            }

            string paraString = data.ToJson();

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

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

                string respString = BCPrivateUtil.GetResponseString(response);

                JsonData responseData = JsonMapper.ToObject(respString);

                if (responseData["result_code"].ToString() == "0")
                {
                    //BCPlan plan = new BCPlan();
                    //plan.ID = responseData["plan"]["id"].ToString();
                    //plan.fee = (int)responseData["plan"]["fee"];
                    //plan.interval = responseData["plan"]["interval"].ToString();
                    //plan.name = responseData["plan"]["name"].ToString();
                    //plan.currency = responseData["plan"]["currency"].ToString();
                    //plan.intervalCount = (int)responseData["plan"]["interval_count"];
                    //plan.trialDays = (int)responseData["plan"]["trial_days"];
                    //plan.optional = JsonMapper.ToObject<Dictionary<string, string>>(responseData["optional"].ToString());
                    return responseData["id"].ToString();
                }
                else
                {
                    var ex = new BCException(responseData["err_detail"].ToString());
                    throw ex;
                }
            }
            catch (Exception e)
            {
                var ex = new BCException(e.Message);
                throw ex;
            }
        }