/**
  * Build a subscription request
  * @param array $parameters
  * @return stdClass with the subscriptionrequest built
  */
 public static function buildSubscription($parameters, $existParamBankAccount = FALSE, $existParamCreditCard = FALSE, $edit = FALSE)
 {
     $subscription = new stdClass();
     if ($edit == TRUE) {
         if ($existParamBankAccount == TRUE) {
             //In edition mode set the 'bankAccountId' property in the subscription
             $subscription->bankAccountId = CommonRequestUtil::getParameter($parameters, PayUParameters::BANK_ACCOUNT_ID);
         }
         if ($existParamCreditCard == TRUE) {
             $creditCard = self::buildCreditCardForSubscription($parameters);
             if (isset($creditCard)) {
                 //In edition mode set the 'creditCard' object in the subscription
                 $subscription->creditCard = $creditCard;
             }
         }
     } else {
         $subscription->trialDays = CommonRequestUtil::getParameter($parameters, PayUParameters::TRIAL_DAYS);
         $subscription->quantity = CommonRequestUtil::getParameter($parameters, PayUParameters::QUANTITY);
         $subscription->installments = CommonRequestUtil::getParameter($parameters, PayUParameters::INSTALLMENTS_NUMBER);
         $customer = PayUSubscriptionsRequestUtil::buildCustomer($parameters);
         //creates the credit card object and associate to the customer
         if ($existParamCreditCard == TRUE) {
             $creditCard = self::buildCreditCardForSubscription($parameters);
             if (isset($creditCard)) {
                 $creditCards = array($creditCard);
                 $customer->creditCards = $creditCards;
             }
         }
         //creates the Bank Account object and associate to the customer
         if ($existParamBankAccount == TRUE) {
             $bankAccount = self::buildBankAccountForSubscription($parameters);
             if (isset($bankAccount)) {
                 $bankAccounts = array($bankAccount);
                 $customer->bankAccounts = $bankAccounts;
             }
         }
         $subscription->customer = $customer;
         $subscription->plan = PayUSubscriptionsRequestUtil::buildSubscriptionPlan($parameters);
         $subscription->plan->id = CommonRequestUtil::getParameter($parameters, PayUParameters::PLAN_ID);
         $termsAndConditionsAcepted = CommonRequestUtil::getParameter($parameters, PayUParameters::TERMS_AND_CONDITIONS_ACEPTED);
         if (isset($termsAndConditionsAcepted)) {
             $subscription->termsAndConditionsAcepted = $termsAndConditionsAcepted;
         }
     }
     return $subscription;
 }
 /**
  * Build a subscription request
  * @param array $parameters
  * @return stdClass with the subscriptionrequest built
  */
 public static function buildSubscription($parameters)
 {
     $subscription = new stdClass();
     $subscription->trialDays = CommonRequestUtil::getParameter($parameters, PayUParameters::TRIAL_DAYS);
     $subscription->quantity = CommonRequestUtil::getParameter($parameters, PayUParameters::QUANTITY);
     $subscription->installments = CommonRequestUtil::getParameter($parameters, PayUParameters::INSTALLMENTS_NUMBER);
     $customer = PayUSubscriptionsRequestUtil::buildCustomer($parameters);
     $tokenId = CommonRequestUtil::getParameter($parameters, PayUParameters::TOKEN_ID);
     $creditCard = null;
     if (!isset($tokenId)) {
         $creditCard = PayUSubscriptionsRequestUtil::buildCreditCard($parameters);
         $creditCard->customerId = NULL;
     } else {
         $creditCard = new stdClass();
         $creditCard->token = $tokenId;
         $creditCard->address = NULL;
     }
     $creditCards = array($creditCard);
     $customer->creditCards = $creditCards;
     $subscription->customer = $customer;
     $subscription->plan = PayUSubscriptionsRequestUtil::buildSubscriptionPlan($parameters);
     $subscription->plan->id = CommonRequestUtil::getParameter($parameters, PayUParameters::PLAN_ID);
     return $subscription;
 }
Ejemplo n.º 3
0
 /**
  * Deletes a customer
  * @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 delete($parameters, $lang = null)
 {
     $required = array(PayUParameters::CUSTOMER_ID);
     CommonRequestUtil::validateParameters($parameters, $required);
     $customer = PayUSubscriptionsRequestUtil::buildCustomer($parameters);
     $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::CUSTOMER_ENTITY, PayUSubscriptionsUrlResolver::DELETE_OPERATION, array($customer->id));
     $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::DELETE);
     return PayUApiServiceUtil::sendRequest($customer, $payUHttpRequestInfo);
 }