/** * Update a subscription * @param parameters The parameters to be sent to the server * @return The response to the request sent * @throws PayUException * @throws InvalidArgumentException */ public static function update($parameters, $lang = null) { $required = array(PayUParameters::SUBSCRIPTION_ID); CommonRequestUtil::validateParameters($parameters, $required); $subscriptionId = CommonRequestUtil::getParameter($parameters, PayUParameters::SUBSCRIPTION_ID); //validates in edition mode PayUSubscriptionsRequestUtil::validateCustomerToSubscription($parameters, TRUE); $existParamBankAccount = PayUBankAccounts::existParametersBankAccount($parameters); $existParamCreditCard = PayUCreditCards::existParametersCreditCard($parameters); //Validate in edition mode self::validatePaymentMethod($parameters, $existParamBankAccount, $existParamCreditCard, TRUE); //Build request in edition mode $request = PayUSubscriptionsRequestUtil::buildSubscription($parameters, $existParamBankAccount, $existParamCreditCard, TRUE); $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::SUBSCRIPTIONS_ENTITY, PayUSubscriptionsUrlResolver::EDIT_OPERATION, array($subscriptionId)); $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::PUT); return PayUApiServiceUtil::sendRequest($request, $payUHttpRequestInfo); }