Пример #1
0
 /**
  * Builds a transaction reporting request the transaction will be query by id
  *
  * @param parameters The parameters to be sent to the server
  * @param string $lang language of request see SupportedLanguages class
  * @return The complete reporting request to be sent to the server
  */
 public static function buildTransactionResponse($parameters, $lang = null)
 {
     if (!isset($lang)) {
         $lang = PayU::$language;
     }
     $request = CommonRequestUtil::buildCommonRequest($lang, PayUCommands::TRANSACTION_RESPONSE_DETAIL);
     $transactionId = CommonRequestUtil::getParameter($parameters, PayUParameters::TRANSACTION_ID);
     $request->details = CommonRequestUtil::addMapEntry(null, PayUKeyMapName::TRANSACTION_ID, $transactionId);
     return $request;
 }
Пример #2
0
 /**
  * Returns the credit card list with the query params
  *
  * @param parameters
  *            The parameters to be sent to the server
  * @return the credit card list
  * @throws PayUException
  * @throws InvalidParametersException
  * @throws ConnectionException
  */
 public static function findList($parameters, $lang = null)
 {
     $required = array(PayUParameters::CUSTOMER_ID);
     CommonRequestUtil::validateParameters($parameters, $required);
     $request = new stdClass();
     $request->customerId = CommonRequestUtil::getParameter($parameters, PayUParameters::CUSTOMER_ID);
     $creditCard = PayUSubscriptionsRequestUtil::buildCreditCard($parameters);
     $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::CREDIT_CARD_ENTITY, PayUSubscriptionsUrlResolver::GET_LIST_OPERATION, array($creditCard->customerId));
     $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::GET);
     return PayUApiServiceUtil::sendRequest($creditCard, $payUHttpRequestInfo);
 }
 /**
  * Creates a credit card 
  * @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 create($parameters, $lang = null)
 {
     PayUSubscriptionsRequestUtil::validateToken($parameters);
     $customerId = CommonRequestUtil::getParameter($parameters, PayUParameters::CUSTOMER_ID);
     if (!isset($customerId)) {
         throw new InvalidArgumentException(" The parameter customer id is mandatory ");
     }
     $request = PayUSubscriptionsRequestUtil::buildCreditCard($parameters);
     $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::CREDIT_CARD_ENTITY, PayUSubscriptionsUrlResolver::ADD_OPERATION, array($parameters[PayUParameters::CUSTOMER_ID]));
     $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::POST);
     return PayUApiServiceUtil::sendRequest($request, $payUHttpRequestInfo);
 }
Пример #4
0
 /**
  * Finds a credit card token
  * @param parameters The parameters to be sent to the server
  * @param string $lang language of request see SupportedLanguages class
  * @return The transaction response to the request sent
  * @throws PayUException
  * @throws InvalidArgumentException
  */
 public static function find($parameters, $lang = null)
 {
     $tokenId = CommonRequestUtil::getParameter($parameters, PayUParameters::TOKEN_ID);
     $required = null;
     if ($tokenId == null) {
         $required = array(PayUParameters::START_DATE, PayUParameters::END_DATE);
     } else {
         $required = array(PayUParameters::TOKEN_ID);
     }
     CommonRequestUtil::validateParameters($parameters, $required);
     $request = PayUTokensRequestUtil::buildGetCreditCardTokensRequest($parameters, $lang);
     $payUHttpRequestInfo = new PayUHttpRequestInfo(Environment::PAYMENTS_API, RequestMethod::POST);
     return PayUApiServiceUtil::sendRequest($request, $payUHttpRequestInfo);
 }
 /**
  * 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);
 }
Пример #6
0
 /**
  * Returns the recurring bill items with the query params
  *
  * @param parameters
  *            The parameters to be sent to the server
  * @return the recurring bill items found
  * @throws PayUException
  * @throws InvalidParametersException
  * @throws ConnectionException
  */
 public static function findList($parameters, $lang = null)
 {
     $subscriptionId = CommonRequestUtil::getParameter($parameters, PayUParameters::SUBSCRIPTION_ID);
     $description = CommonRequestUtil::getParameter($parameters, PayUParameters::DESCRIPTION);
     $request = new stdClass();
     $request->subscriptionId = $subscriptionId;
     $request->description = $description;
     if (isset($subscriptionId) || isset($description)) {
         $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::RECURRING_BILL_ITEM_ENTITY, PayUSubscriptionsUrlResolver::GET_LIST_OPERATION, null);
         $urlSegment = CommonRequestUtil::addQueryParamsToUrl($urlSegment, $request);
     } else {
         throw new InvalidArgumentException('You must send ' . PayUParameters::SUBSCRIPTION_ID . ' or ' . PayUParameters::DESCRIPTION . ' parameters');
     }
     $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::GET);
     return PayUApiServiceUtil::sendRequest(null, $payUHttpRequestInfo);
 }
Пример #7
0
 /**
  * Finds all bill filtered by 
  * - customer id
  * - date begin
  * - date final
  * - payment method
  * - subscription Id
  * 
  * @param parameters The parameters to be sent to the server
  * @param string $lang language of request see SupportedLanguages class
  * @return the subscription plan list
  * @throws PayUException
  * @throws InvalidArgumentException
  */
 public static function listRecurringBills($parameters, $lang = null)
 {
     $request = new stdClass();
     $request->customerId = CommonRequestUtil::getParameter($parameters, PayUParameters::CUSTOMER_ID);
     $request->dateBegin = CommonRequestUtil::getParameter($parameters, PayUParameters::RECURRING_BILL_DATE_BEGIN);
     $request->dateFinal = CommonRequestUtil::getParameter($parameters, PayUParameters::RECURRING_BILL_DATE_FINAL);
     $request->paymentMethod = CommonRequestUtil::getParameter($parameters, PayUParameters::RECURRING_BILL_PAYMENT_METHOD_TYPE);
     $request->state = CommonRequestUtil::getParameter($parameters, PayUParameters::RECURRING_BILL_STATE);
     $request->subscriptionId = CommonRequestUtil::getParameter($parameters, PayUParameters::SUBSCRIPTION_ID);
     $request->limit = CommonRequestUtil::getParameter($parameters, PayUParameters::LIMIT);
     $request->offset = CommonRequestUtil::getParameter($parameters, PayUParameters::OFFSET);
     $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::RECURRING_BILL_ENTITY, PayUSubscriptionsUrlResolver::QUERY_OPERATION);
     $urlSegment = CommonRequestUtil::addQueryParamsToUrl($urlSegment, $request);
     $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::GET);
     return PayUApiServiceUtil::sendRequest(null, $payUHttpRequestInfo);
 }
 /**
  * Finds recurring bill items by id, subscription or description
  * @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 find($parameters, $lang = null)
 {
     $recurringBillItemId = CommonRequestUtil::getParameter($parameters, PayUParameters::RECURRING_BILL_ITEM_ID);
     $subscriptionId = CommonRequestUtil::getParameter($parameters, PayUParameters::SUBSCRIPTION_ID);
     $description = CommonRequestUtil::getParameter($parameters, PayUParameters::DESCRIPTION);
     if (isset($recurringBillItemId)) {
         $invalid = array(PayUParameters::DESCRIPTION, PayUParameters::SUBSCRIPTION_ID);
         CommonRequestUtil::validateParameters($parameters, NULL, $invalid);
         $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::RECURRING_BILL_ITEM_ENTITY, PayUSubscriptionsUrlResolver::GET_OPERATION, array($recurringBillItemId));
         $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::GET);
         return PayUApiServiceUtil::sendRequest(NULL, $payUHttpRequestInfo);
     } else {
         if (isset($subscriptionId) || isset($description)) {
             $webParams = '?';
             $webParams .= isset($subscriptionId) ? 'subscriptionId=' . urlencode($subscriptionId) . '&' : '';
             $webParams .= isset($description) ? 'description=' . urlencode($description) : '';
             $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::RECURRING_BILL_ITEM_ENTITY, PayUSubscriptionsUrlResolver::QUERY_OPERATION, array($webParams));
             $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::GET);
             return PayUApiServiceUtil::sendRequest(NULL, $payUHttpRequestInfo);
         } else {
             throw new InvalidArgumentException('You must send ' . PayUParameters::RECURRING_BILL_ITEM_ID . 'or ' . PayUParameters::SUBSCRIPTION_ID . 'or ' . PayUParameters::DESCRIPTION . 'parameter');
         }
     }
 }
Пример #9
0
 /**
  * Finds all subscription plans filtered by merchant or account
  * by default the function filter by merchant if you need filter by account
  * you can send in the parameters the account id
  * @param parameters The parameters to be sent to the server
  * @param string $lang language of request see SupportedLanguages class 
  * @return the subscription plan list
  * @throws PayUException
  * @throws InvalidParametersException
  * @throws InvalidArgumentException
  */
 public static function listPlans($parameters, $lang = null)
 {
     $request = new stdClass();
     $request->accountId = CommonRequestUtil::getParameter($parameters, PayUParameters::ACCOUNT_ID);
     $request->limit = CommonRequestUtil::getParameter($parameters, PayUParameters::LIMIT);
     $request->offset = CommonRequestUtil::getParameter($parameters, PayUParameters::OFFSET);
     $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::PLAN_ENTITY, PayUSubscriptionsUrlResolver::QUERY_OPERATION);
     $urlSegment = CommonRequestUtil::addQueryParamsToUrl($urlSegment, $request);
     $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::GET);
     return PayUApiServiceUtil::sendRequest(null, $payUHttpRequestInfo);
 }
 /**
  * Validate a Bank Account
  * @param array $parameters
  * @throws InvalidParameterException
  */
 public static function validateBankAccount($parameters)
 {
     $bankAccountId = CommonRequestUtil::getParameter($parameters, PayUParameters::BANK_ACCOUNT_ID);
     if (isset($bankAccountId)) {
         $required = array(PayUParameters::BANK_ACCOUNT_ID);
         $invalid = array(PayUParameters::BANK_ACCOUNT_DOCUMENT_NUMBER, PayUParameters::BANK_ACCOUNT_DOCUMENT_NUMBER_TYPE, PayUParameters::BANK_ACCOUNT_CUSTOMER_NAME, PayUParameters::BANK_ACCOUNT_AGENCY_NUMBER, PayUParameters::BANK_ACCOUNT_AGENCY_DIGIT, PayUParameters::BANK_ACCOUNT_ACCOUNT_DIGIT, PayUParameters::BANK_ACCOUNT_NUMBER, PayUParameters::BANK_ACCOUNT_BANK_NAME, PayUParameters::BANK_ACCOUNT_TYPE, PayUParameters::BANK_ACCOUNT_STATE);
         CommonRequestUtil::validateParameters($parameters, $required, $invalid);
     } else {
         $required = array(PayUParameters::BANK_ACCOUNT_CUSTOMER_NAME, PayUParameters::BANK_ACCOUNT_DOCUMENT_NUMBER, PayUParameters::BANK_ACCOUNT_DOCUMENT_NUMBER_TYPE, PayUParameters::BANK_ACCOUNT_BANK_NAME, PayUParameters::BANK_ACCOUNT_TYPE, PayUParameters::BANK_ACCOUNT_NUMBER, PayUParameters::COUNTRY);
         CommonRequestUtil::validateParameters($parameters, $required);
     }
 }
Пример #11
0
 /**
  * Build a basic credit card object to be added to payment request
  * @param object $parameters with the credit card info
  * @return the credit card built
  */
 protected static function buildCreditCard($parameters)
 {
     $creditCard = new stdClass();
     $creditCard->name = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_NAME);
     $creditCard->number = CommonRequestUtil::getParameter($parameters, PayUParameters::CREDIT_CARD_NUMBER);
     $creditCard->expirationDate = CommonRequestUtil::getParameter($parameters, PayUParameters::CREDIT_CARD_EXPIRATION_DATE);
     $creditCard->securityCode = CommonRequestUtil::getParameter($parameters, PayUParameters::CREDIT_CARD_SECURITY_CODE);
     $creditCard->processWithoutCvv2 = (bool) CommonRequestUtil::getParameter($parameters, PayUParameters::PROCESS_WITHOUT_CVV2);
     $creditCard->document = CommonRequestUtil::getParameter($parameters, PayUParameters::CREDIT_CARD_DOCUMENT);
     return $creditCard;
 }
 /**
  * Build a credit card object to be added to payment request when is used token for payments
  * @param object $parameters with the credit card info
  * @return the credit card built 
  */
 private static function buildCreditCardForToken($parameters)
 {
     $creditCard = new stdClass();
     $creditCard->securityCode = CommonRequestUtil::getParameter($parameters, PayUParameters::CREDIT_CARD_SECURITY_CODE);
     return $creditCard;
 }
Пример #13
0
 /**
  * Finds the customers associated to a plan by plan id or by plan code
  * 
  * @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 findCustomerListByPlanIdOrPlanCode($parameters, $lang = null)
 {
     $request = new stdClass();
     $request->planId = CommonRequestUtil::getParameter($parameters, PayUParameters::PLAN_ID);
     $request->planCode = CommonRequestUtil::getParameter($parameters, PayUParameters::PLAN_CODE);
     $request->limit = CommonRequestUtil::getParameter($parameters, PayUParameters::LIMIT);
     $request->offset = CommonRequestUtil::getParameter($parameters, PayUParameters::OFFSET);
     $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::CUSTOMER_ENTITY, PayUSubscriptionsUrlResolver::CUSTOMERS_PARAM_SEARCH, null);
     $urlSegment = CommonRequestUtil::addQueryParamsToUrl($urlSegment, $request);
     $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::GET);
     return PayUApiServiceUtil::sendRequest(null, $payUHttpRequestInfo);
 }
 /**
  * Get the value for parameter processWithoutCvv2 if the parameter doesn't exist
  * in the parameters array or the parameter value isn't valid boolean representation return false
  * the otherwise return the parameter value
  * @param array $parameters
  * @return boolean whith the value for processWithoutCvv2 parameter, if the parameter doesn't exist in the array or 
  * it has a invalid boolean value returs false;
  */
 private static function isProcessWithoutCvv2Param($parameters)
 {
     $processWithoutCvv2 = CommonRequestUtil::getParameter($parameters, PayUParameters::PROCESS_WITHOUT_CVV2);
     if (is_bool($processWithoutCvv2)) {
         return $processWithoutCvv2;
     } else {
         return false;
     }
 }
Пример #15
0
 /**
  * Builds a credit card token to be added to request
  * @param array $parameters
  * @return the credit card token built
  */
 private static function buildCreditCardToken($parameters)
 {
     $creditCardToken = new stdClass();
     $creditCardToken->name = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_NAME);
     $creditCardToken->payerId = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_ID);
     $creditCardToken->identificationNumber = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_DNI);
     $creditCardToken->paymentMethod = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYMENT_METHOD);
     $creditCardToken->expirationDate = CommonRequestUtil::getParameter($parameters, PayUParameters::CREDIT_CARD_EXPIRATION_DATE);
     $creditCardToken->number = CommonRequestUtil::getParameter($parameters, PayUParameters::CREDIT_CARD_NUMBER);
     $creditCardToken->document = CommonRequestUtil::getParameter($parameters, PayUParameters::CREDIT_CARD_DOCUMENT);
     return $creditCardToken;
 }
 /**
  * Validate a token 
  * @param array $parameters
  * @throws InvalidParameterException
  */
 public static function validateToken($parameters)
 {
     $tokenId = CommonRequestUtil::getParameter($parameters, PayUParameters::TOKEN_ID);
     if (isset($tokenId)) {
         $invalid = array(PayUParameters::CREDIT_CARD_NUMBER, PayUParameters::CREDIT_CARD_EXPIRATION_DATE, PayUParameters::PAYMENT_METHOD, PayUParameters::PAYER_NAME, PayUParameters::PAYER_STREET, PayUParameters::PAYER_STREET_2, PayUParameters::PAYER_STREET_3, PayUParameters::PAYER_CITY, PayUParameters::PAYER_STATE, PayUParameters::PAYER_COUNTRY, PayUParameters::PAYER_POSTAL_CODE, PayUParameters::PAYER_PHONE);
     } else {
         $required = array(PayUParameters::CREDIT_CARD_NUMBER, PayUParameters::PAYER_NAME, PayUParameters::PAYMENT_METHOD, PayUParameters::CREDIT_CARD_EXPIRATION_DATE);
         CommonRequestUtil::validateParameters($parameters, $required);
     }
 }
Пример #17
0
 /**
  * Finds the bank accounts associated to a customer by customer id
  * 
  * @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 findListByCustomer($parameters, $lang = null)
 {
     $request = new stdClass();
     $request->customerId = CommonRequestUtil::getParameter($parameters, PayUParameters::CUSTOMER_ID);
     $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::BANK_ACCOUNT_ENTITY, PayUSubscriptionsUrlResolver::GET_LIST_OPERATION, array($request->customerId));
     $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::GET);
     return PayUApiServiceUtil::sendRequest($request, $payUHttpRequestInfo);
 }
Пример #18
0
 /**
  * Builds a bank account list request
  *
  * @param parameters The parameters to be sent to the server
  * @return stdClass with the bank account list request built
  */
 public static function buildBankAccountListRequest($parameters)
 {
     $bankAccountListRequest = new stdClass();
     $bankAccountListRequest->customerId = CommonRequestUtil::getParameter($parameters, PayUParameters::CUSTOMER_ID);
     return $bankAccountListRequest;
 }
 /**
  * Adds the extra parameters required by the PSE payment method
  *
  * @param transaction
  * @param parameters
  * @throws InvalidParametersException
  */
 private static function addPSEExtraParameters($transaction, $parameters)
 {
     // PSE reference identification 1
     $pseReference1 = CommonRequestUtil::getParameter($parameters, PayUParameters::IP_ADDRESS);
     // PSE reference identification 2
     $pseReference2 = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_DOCUMENT_TYPE);
     // PSE reference identification 3
     $pseReference3 = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_DNI);
     // PSE user type N-J (Natural or Legal)
     $pseUserType = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_PERSON_TYPE);
     // PSE financial institution code (Bank code)
     $pseFinancialInstitutionCode = CommonRequestUtil::getParameter($parameters, PayUParameters::PSE_FINANCIAL_INSTITUTION_CODE);
     // PSE financial institution name (Bank Name)
     $pseFinancialInstitutionName = CommonRequestUtil::getParameter($parameters, PayUParameters::PSE_FINANCIAL_INSTITUTION_NAME);
     if ($pseFinancialInstitutionCode != null) {
         $transaction = RequestPaymentsUtil::addExtraParameter($transaction, PayUKeyMapName::FINANCIAL_INSTITUTION_CODE, $pseFinancialInstitutionCode);
     }
     if ($pseFinancialInstitutionName != null) {
         $transaction = RequestPaymentsUtil::addExtraParameter($transaction, PayUKeyMapName::FINANCIAL_INSTITUTION_NAME, $pseFinancialInstitutionName);
     }
     if ($pseUserType != null) {
         $transaction = RequestPaymentsUtil::addExtraParameter($transaction, PayUKeyMapName::USER_TYPE, $pseUserType);
     }
     if ($pseReference1 != null) {
         $transaction = RequestPaymentsUtil::addExtraParameter($transaction, PayUKeyMapName::PSE_REFERENCE1, $pseReference1);
     }
     if ($pseReference2 != null) {
         $transaction = RequestPaymentsUtil::addExtraParameter($transaction, PayUKeyMapName::PSE_REFERENCE2, $pseReference2);
     }
     if ($pseReference3 != null) {
         $transaction = RequestPaymentsUtil::addExtraParameter($transaction, PayUKeyMapName::PSE_REFERENCE3, $pseReference3);
     }
     return $transaction;
 }
Пример #20
0
 /**
  * Finds the subscriptions associated to a customer by either
  * payer id, plan id, plan code, accoun id and account status
  * using an offset and a limit 
  *
  * @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 findSubscriptionsByPlanOrCustomerOrAccount($parameters, $lang = null)
 {
     $request = new stdClass();
     $request->planId = CommonRequestUtil::getParameter($parameters, PayUParameters::PLAN_ID);
     $request->planCode = CommonRequestUtil::getParameter($parameters, PayUParameters::PLAN_CODE);
     $request->state = CommonRequestUtil::getParameter($parameters, PayUParameters::ACCOUNT_STATE);
     $request->customerId = CommonRequestUtil::getParameter($parameters, PayUParameters::CUSTOMER_ID);
     $request->accountId = CommonRequestUtil::getParameter($parameters, PayUParameters::ACCOUNT_ID);
     $request->limit = CommonRequestUtil::getParameter($parameters, PayUParameters::LIMIT);
     $request->offset = CommonRequestUtil::getParameter($parameters, PayUParameters::OFFSET);
     $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::SUBSCRIPTIONS_ENTITY, UrlResolver::GET_LIST_OPERATION, null);
     $urlSegment = CommonRequestUtil::addQueryParamsToUrl($urlSegment, $request);
     $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::GET);
     return PayUApiServiceUtil::sendRequest(null, $payUHttpRequestInfo);
 }