/**
  * Creates a subscription
  * @param parameters The parameters to be sent to the server
  * @param string $lang language of request see SupportedLanguages class
  * @return The response to the request sent
  * @throws PayUException
  * @throws InvalidArgumentException
  */
 public static function createSubscription($parameters, $lang = null)
 {
     $planCode = CommonRequestUtil::getParameter($parameters, PayUParameters::PLAN_CODE);
     $tokenId = CommonRequestUtil::getParameter($parameters, PayUParameters::TOKEN_ID);
     if (!isset($planCode)) {
         PayUSubscriptionsRequestUtil::validateSubscriptionPlan($parameters);
     }
     PayUSubscriptionsRequestUtil::validateCustomerToSubscription($parameters);
     PayUSubscriptionsRequestUtil::validateToken($parameters);
     $request = PayUSubscriptionsRequestUtil::buildSubscription($parameters);
     $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::SUBSCRIPTIONS_ENTITY, PayUSubscriptionsUrlResolver::ADD_OPERATION);
     $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::POST);
     return PayUApiServiceUtil::sendRequest($request, $payUHttpRequestInfo);
 }
Ejemplo n.º 2
0
 /**
  * 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);
 }