public static BCPlan queryPlanByID(string id)
{
long timestamp = BCUtil.GetTimeStamp(DateTime.Now);
string planURL = BCPrivateUtil.getHost() + BCConstants.version + BCConstants.bcplanURL + "/" + id;
planURL += "?app_id=" + BCCache.Instance.appId + "&app_sign=" + BCPrivateUtil.getAppSignature(BCCache.Instance.appId, BCCache.Instance.appSecret, timestamp.ToString()) + "×tamp=" + timestamp;
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")
{
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.valid = (bool)responseData["plan"]["valid"];
plan.optional = JsonMapper.ToObject<Dictionary<string, string>>(responseData["plan"]["optional"].ToJson().ToString());
return plan;
}
else
{
var ex = new BCException(responseData["err_detail"].ToString());
throw ex;
}
}
catch (Exception e)
{
var ex = new BCException(e.Message);
throw ex;
}
}