/** * Creates a customer with credit card information * @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 createCustomerWithCreditCard($parameters, $lang = null) { PayUSubscriptionsRequestUtil::validateCustomer($parameters); PayUSubscriptionsRequestUtil::validateCreditCard($parameters); $customer = PayUSubscriptionsRequestUtil::buildCustomer($parameters); $creditCard = PayUSubscriptionsRequestUtil::buildCreditCard($parameters); $creditCards = array($creditCard); $customer->creditCards = $creditCards; $urlSegment = PayUSubscriptionsUrlResolver::getInstance()->getUrlSegment(PayUSubscriptionsUrlResolver::CUSTOMER_ENTITY, PayUSubscriptionsUrlResolver::ADD_OPERATION); $payUHttpRequestInfo = PayUSubscriptionsRequestUtil::buildHttpRequestInfo($urlSegment, $lang, RequestMethod::POST); return PayUApiServiceUtil::sendRequest($customer, $payUHttpRequestInfo); }
/** * Build the Credit card object for subscription * @param array $parameters */ protected static function buildCreditCardForSubscription($parameters) { $creditCard = null; $tokenId = CommonRequestUtil::getParameter($parameters, PayUParameters::TOKEN_ID); if (!isset($tokenId)) { $creditCard = PayUSubscriptionsRequestUtil::buildCreditCard($parameters); $creditCard->customerId = NULL; } else { $creditCard = new \stdClass(); $creditCard->token = $tokenId; $creditCard->address = NULL; } return $creditCard; }
/** * 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); }