/** * Removes 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 remove($parameters, $lang = null) { $required = array(PayUParameters::TOKEN_ID, PayUParameters::PAYER_ID); CommonRequestUtil::validateParameters($parameters, $required); $request = PayUTokensRequestUtil::buildRemoveTokenRequest($parameters, $lang); $payUHttpRequestInfo = new PayUHttpRequestInfo(Environment::PAYMENTS_API, RequestMethod::POST); return PayUApiServiceUtil::sendRequest($request, $payUHttpRequestInfo); }
/** * Deletes a subscription plan * @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::PLAN_CODE); CommonRequestUtil::validateParameters($parameters, $required); $plan = PayUSubscriptionsRequestUtil::buildSubscriptionPlan($parameters); $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::PLAN_ENTITY, PayUSubscriptionsUrlResolver::DELETE_OPERATION, array($plan->planCode)); $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::DELETE); return PayUApiServiceUtil::sendRequest($plan, $payUHttpRequestInfo); }
/** * Return a bank account with the given id * * @param parameters The parameters to be sent to the server * @return the find bank account * @throws PayUException * @throws InvalidArgumentException */ public static function find($parameters, $lang = null) { $required = array(PayUParameters::BANK_ACCOUNT_ID); CommonRequestUtil::validateParameters($parameters, $required); $bankAccountRequest = RequestPaymentsUtil::buildBankAccountRequest($parameters); $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::BANK_ACCOUNT_ENTITY, PayUSubscriptionsUrlResolver::GET_OPERATION, array($bankAccountRequest->id)); $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::GET); return PayUApiServiceUtil::sendRequest($bankAccountRequest, $payUHttpRequestInfo); }
/** * Cancels 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 cancel($parameters, $lang = null) { $required = array(PayUParameters::SUBSCRIPTION_ID); CommonRequestUtil::validateParameters($parameters, $required); $request = PayUSubscriptionsRequestUtil::buildSubscription($parameters); $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::SUBSCRIPTIONS_ENTITY, PayUSubscriptionsUrlResolver::DELETE_OPERATION, array($parameters[PayUParameters::SUBSCRIPTION_ID])); $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::DELETE); return PayUApiServiceUtil::sendRequest($request, $payUHttpRequestInfo); }
/** * Deletes 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 delete($parameters, $lang = null) { $required = array(PayUParameters::TOKEN_ID, PayUParameters::CUSTOMER_ID); CommonRequestUtil::validateParameters($parameters, $required); $creditCard = PayUSubscriptionsRequestUtil::buildCreditCard($parameters); $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::CREDIT_CARD_ENTITY, PayUSubscriptionsUrlResolver::DELETE_OPERATION, array($creditCard->customerId, $creditCard->token)); $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::DELETE); return PayUApiServiceUtil::sendRequest($creditCard, $payUHttpRequestInfo); }
/** * Finds a recurring bill by 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 find($parameters, $lang = null) { $required = array(PayUParameters::RECURRING_BILL_ID); CommonRequestUtil::validateParameters($parameters, $required); $recurringBillId = CommonRequestUtil::getParameter($parameters, PayUParameters::RECURRING_BILL_ID); $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::RECURRING_BILL_ENTITY, PayUSubscriptionsUrlResolver::GET_OPERATION, array($recurringBillId)); $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::GET); return PayUApiServiceUtil::sendRequest(NULL, $payUHttpRequestInfo); }
/** * Makes a transaction reporting petition by the id * * @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 getTransactionResponse($parameters, $lang = null) { CommonRequestUtil::validateParameters($parameters, array(PayUParameters::TRANSACTION_ID)); $request = PayUReportsRequestUtil::buildTransactionResponse($parameters, $lang); $payUHttpRequestInfo = new PayUHttpRequestInfo(Environment::REPORTS_API, RequestMethod::POST); $response = PayUApiServiceUtil::sendRequest($request, $payUHttpRequestInfo); if (isset($response) && isset($response->result)) { return $response->result->payload; } return null; }
/** * 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); } }
/** * Process a transaction already authorizated * * @param parameters The parameters to be sent to the server * @param transactionType * The type of the payment transaction * @param string $lang language of request see SupportedLanguages class * @return The transaction response to the request sent * @throws PayUException * @throws InvalidArgumentException */ private static function processTransactionAlreadyAuthorizated($parameters, $transactionType, $lang) { $required = array(PayUParameters::TRANSACTION_ID, PayUParameters::ORDER_ID); CommonRequestUtil::validateParameters($parameters, $required); $request = RequestPaymentsUtil::buildPaymentRequest($parameters, $transactionType, $lang); $payUHttpRequestInfo = new PayUHttpRequestInfo(Environment::PAYMENTS_API, RequestMethod::POST); return PayUApiServiceUtil::sendRequest($request, $payUHttpRequestInfo); }
/** * 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); } }
/** * validate the Payment Method parameters. Only one payment methos is permitted * @param $parameters * @param $existParamBankAccount * @param $existParamCreditCard * @throws PayUException */ public static function validatePaymentMethod($parameters, $existParamBankAccount, $existParamCreditCard, $edit = FALSE) { if ($existParamBankAccount == TRUE && $existParamCreditCard == TRUE) { throw new PayUException(PayUErrorCodes::INVALID_PARAMETERS, "The subscription must have only one payment method"); } else { if ($existParamBankAccount == TRUE) { PayUSubscriptionsRequestUtil::validateBankAccount($parameters); if ($edit == FALSE) { //The TERMS_AND_CONDITIONS_ACEPTED Parameter is required for Bank Account $required = array(PayUParameters::TERMS_AND_CONDITIONS_ACEPTED); CommonRequestUtil::validateParameters($parameters, $required); } } else { if ($existParamCreditCard == TRUE) { PayUSubscriptionsRequestUtil::validateCreditCard($parameters); } else { throw new PayUException(PayUErrorCodes::INVALID_PARAMETERS, "The subscription must have one payment method"); } } } }