public static function changeSubscription($accountCode, $timeframe = 'now', $newPlanCode = null, $newQuantity = null, $newUnitAmount = null, $addOns = null)
 {
     error_log('<br>quant:' . $newQuantity);
     if (!($timeframe == 'now' || $timeframe == 'renewal')) {
         throw new RecurlyException("The timeframe must be 'now' or 'renewal'.");
     }
     $uri = RecurlyClient::PATH_ACCOUNTS . urlencode($accountCode) . RecurlyClient::PATH_ACCOUNT_SUBSCRIPTION;
     $data = RecurlySubscription::getChangeSubscriptionXml($timeframe, $newPlanCode, $newQuantity, $newUnitAmount, $addOns);
     $result = RecurlyClient::__sendRequest($uri, 'PUT', $data);
     if (preg_match("/^2..\$/", $result->code)) {
         return true;
     } else {
         if (strpos($result->response, '<errors>') > 0 && $result->code == 422) {
             throw new RecurlyValidationException($result->code, $result->response);
         } else {
             throw new RecurlyException("Could not change the subscription for {$accountCode}: {$result->response} ({$result->code})");
         }
     }
 }