function testToXmlWithNull() { $data = null; $t = new PaymentMethods(); $parent = XmlSerializer::createDocument('payment_methods'); $t->toXml($data, $parent); $this->assertEqual($parent->ownerDocument->saveXml(), '<?xml version="1.0" encoding="UTF-8"?> <payment_methods/> '); }
/** * 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; }
/** * Makes payment petition * * @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 */ public static function doPayment($parameters, $transactionType, $lang) { $requiredAll = array(PayUParameters::REFERENCE_CODE, PayUParameters::DESCRIPTION, PayUParameters::CURRENCY, PayUParameters::VALUE); $paymentMethodParameter = CommonRequestUtil::getParameter($parameters, PayUParameters::PAYMENT_METHOD); if (array_key_exists(PayUParameters::TOKEN_ID, $parameters)) { $requiredTokenId = array(PayUParameters::INSTALLMENTS_NUMBER, PayUParameters::TOKEN_ID); $required = array_merge($requiredAll, $requiredTokenId); } else { if (array_key_exists(PayUParameters::CREDIT_CARD_NUMBER, $parameters)) { $requiredCreditCard = array(PayUParameters::INSTALLMENTS_NUMBER, PayUParameters::CREDIT_CARD_NUMBER, PayUParameters::PAYER_NAME, PayUParameters::CREDIT_CARD_EXPIRATION_DATE, PayUParameters::PAYMENT_METHOD); $processWithoutCvv2 = PayUPayments::isProcessWithoutCvv2Param($parameters); if (!$processWithoutCvv2) { $requiredCreditCard[] = PayUParameters::CREDIT_CARD_SECURITY_CODE; } $required = array_merge($requiredAll, $requiredCreditCard); } else { if ($paymentMethodParameter != null && PaymentMethods::isAllowedCashPaymentMethod($paymentMethodParameter)) { $requiredCash = array(PayUParameters::PAYER_NAME, PayUParameters::PAYER_DNI, PayUParameters::PAYMENT_METHOD); $required = array_merge($requiredAll, $requiredCash); } else { if ($paymentMethodParameter != null && PaymentMethods::BOLETO_BANCARIO == $paymentMethodParameter) { $requiredBoletoBancario = array(PayUParameters::PAYER_NAME, PayUParameters::PAYER_DNI, PayUParameters::PAYMENT_METHOD, PayUParameters::PAYER_STREET, PayUParameters::PAYER_STREET_2, PayUParameters::PAYER_CITY, PayUParameters::PAYER_STATE, PayUParameters::PAYER_POSTAL_CODE); $required = array_merge($requiredAll, $requiredBoletoBancario); } else { if ($paymentMethodParameter != null) { if (PaymentMethods::isValidPaymentMethod($paymentMethodParameter)) { $paymentMethod = PaymentMethods::getPaymentMethod($paymentMethodParameter); if ($paymentMethod['type'] == PayUPaymentMethodType::CREDIT_CARD) { throw new InvalidArgumentException("Payment method credit card require at least one of two parameters [" . PayUParameters::CREDIT_CARD_NUMBER . '] or [' . PayUParameters::TOKEN_ID . ']'); } } throw new InvalidArgumentException(sprintf("The payment method value %s sent in parameter %s is invalid", $paymentMethodParameter, PayUParameters::PAYMENT_METHOD)); } else { throw new InvalidArgumentException(sprintf("The payment method parameter [%s] was not found", PayUParameters::PAYMENT_METHOD)); } } } } } CommonRequestUtil::validateParameters($parameters, $required); $request = RequestPaymentsUtil::buildPaymentRequest($parameters, $transactionType, $lang); $payUHttpRequestInfo = new PayUHttpRequestInfo(Environment::PAYMENTS_API, RequestMethod::POST); return PayUApiServiceUtil::sendRequest($request, $payUHttpRequestInfo); }
public static function paymentMethodList() { try { //inicializace WS ini_set("soap.wsdl_cache_enabled", "0"); $go_client = new SoapClient(GopayConfig::ws(), array()); $paymentMethodsWS = $go_client->__call("paymentMethodList", array()); $paymentMethods = new PaymentMethods(); $paymentMethods->adapt($paymentMethodsWS); return $paymentMethods->paymentMethods; } catch (SoapFault $f) { dpm($f, 'paymentMethodList - SoapFault'); /* * Chyba v komunikaci s GoPay serverem */ return null; } }