/** * Builds a create credit card token request * * @param parameters The parameters to be sent to the server * @param string $lang language of request see SupportedLanguages class * @return the request built */ public static function buildGetCreditCardTokensRequest($parameters, $lang) { if (!isset($lang)) { $lang = PayU::$language; } $request = CommonRequestUtil::buildCommonRequest($lang, PayUCommands::GET_TOKENS); $creditCardTokenInformation = new stdClass(); $creditCardTokenInformation->creditCardTokenId = CommonRequestUtil::getParameter($parameters, PayUParameters::TOKEN_ID); $creditCardTokenInformation->payerId = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_ID); $startDate = CommonRequestUtil::getParameter($parameters, PayUParameters::START_DATE); if ($startDate != null && CommonRequestUtil::isValidDate($startDate, PayUConfig::PAYU_DATE_FORMAT, PayUParameters::EXPIRATION_DATE)) { $creditCardTokenInformation->startDate = $startDate; } $endDate = CommonRequestUtil::getParameter($parameters, PayUParameters::END_DATE); if ($endDate != null && CommonRequestUtil::isValidDate($endDate, PayUConfig::PAYU_DATE_FORMAT, PayUParameters::EXPIRATION_DATE)) { $creditCardTokenInformation->endDate = $endDate; } $request->creditCardTokenInformation = $creditCardTokenInformation; return $request; }
/** * Build a transaction object to be added to payment request * @param array $parameters the parameters to build a transaction * @param strng $lang to be used * @return the transaction built * @throws InvalidArgumentException if any paramter is invalid * */ private static function buildTransactionRequest($parameters, $lang) { $transaction = new stdClass(); $order = null; $transaction->paymentCountry = CommonRequestUtil::getParameter($parameters, PayUParameters::COUNTRY); if (CommonRequestUtil::getParameter($parameters, PayUParameters::ORDER_ID) == null) { $signature = null; if (CommonRequestUtil::getParameter($parameters, PayUParameters::SIGNATURE) != null) { $signature = CommonRequestUtil::getParameter($parameters, PayUParameters::SIGNATURE); } $merchantId = PayU::$merchantId; $order = RequestPaymentsUtil::buildOrderRequest($parameters, $lang); if ($signature == null && $merchantId != null) { $signature = SignatureUtil::buildSignature($order, $merchantId, PayU::$apiKey, SignatureUtil::MD5_ALGORITHM); } $order->signature = $signature; $transaction->order = $order; } else { $orderId = CommonRequestUtil::getParameter($parameters, PayUParameters::ORDER_ID); $order = new stdClass(); $order->orderId($orderId); $transaction . setOrder($order); } $transaction->order->buyer = RequestPaymentsUtil::buildBuyer($parameters); if (CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_IP_ADDRESS) != null) { $transaction->ipAddress = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_IP_ADDRESS); } else { $transaction->ipAddress = RequestPaymentsUtil::getIpAddress(); } if (CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_COOKIE) != null) { $transaction->cookie = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_COOKIE); } else { $transaction->cookie = 'cookie_' . microtime(); } $transaction->userAgent = sprintf("%s %s", PayU::API_NAME, PayU::API_VERSION); $transaction->source = PayU::API_CODE_NAME; if (CommonRequestUtil::getParameter($parameters, PayUParameters::CREDIT_CARD_NUMBER) != null) { $transaction->creditCard = RequestPaymentsUtil::buildCreditCardTransaction($transaction, $parameters); } else { if (CommonRequestUtil::getParameter($parameters, PayUParameters::TOKEN_ID) != null) { $transaction->creditCard = RequestPaymentsUtil::buildCreditCardForToken($parameters); } } if (CommonRequestUtil::getParameter($parameters, PayUParameters::INSTALLMENTS_NUMBER) != null) { $transaction = RequestPaymentsUtil::addExtraParameter($transaction, PayUKeyMapName::TRANSACTION_INSTALLMENTS_NUMBER, CommonRequestUtil::getParameter($parameters, PayUParameters::INSTALLMENTS_NUMBER)); } $expirationDate = CommonRequestUtil::getParameter($parameters, PayUParameters::EXPIRATION_DATE); if (isset($expirationDate) && CommonRequestUtil::isValidDate($expirationDate, PayUConfig::PAYU_DATE_FORMAT, PayUParameters::EXPIRATION_DATE)) { $transaction->expirationDate = $expirationDate; } $transaction->creditCardTokenId = CommonRequestUtil::getParameter($parameters, PayUParameters::TOKEN_ID); $paymentMethod = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYMENT_METHOD); if (!PaymentMethods::isValidPaymentMethod($paymentMethod)) { throw new InvalidArgumentException(sprintf("The payment method value %s sent in parameter %s is invalid", $paymentMethod, PayUParameters::PAYMENT_METHOD)); } $transaction->paymentMethod = $paymentMethod; $transaction->payer = RequestPaymentsUtil::buildPayer($parameters); $transaction->order = $order; return $transaction; }
/** * Build a payer object to be added to payment request * @param array $parameters * @return return a payer */ private static function buildPayer($parameters) { $payer = new stdClass(); $payer->fullName = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_NAME); $payer->emailAddress = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_EMAIL); $payer->cnpj = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_CNPJ); $payer->contactPhone = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_CONTACT_PHONE); $payer->dniNumber = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_DNI); $payer->businessName = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_BUSINESS_NAME); $payerBirthDay = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYER_BIRTHDATE); if (isset($payerBirthDay) && CommonRequestUtil::isValidDate($payerBirthDay, PayUConfig::PAYU_DAY_FORMAT, PayUParameters::PAYER_BIRTHDATE)) { $payer->birthdate = $payerBirthDay; } $payer->billingAddress = RequestPaymentsUtil::buildAddress($parameters); return $payer; }