/** * @param integer $orderId * @param float $sum * @param string $message * @param string $outputEncoding * @param string $language * @param string $currency * * @return array */ public function preparePaymentRequestData($orderId, $sum, $message, $outputEncoding, $language = 'EST', $currency = 'EUR') { $requestData = array(Fields::SERVICE_ID => Services::PAYMENT_REQUEST, Fields::PROTOCOL_VERSION => $this->protocolVersion, Fields::SELLER_ID => $this->sellerId, Fields::ORDER_ID => $orderId, Fields::SUM => $sum, Fields::CURRENCY => $currency, Fields::SELLER_BANK_ACC => $this->sellerAccountNumber, Fields::SELLER_NAME => $this->sellerName, Fields::ORDER_REFERENCE => ProtocolUtils::generateOrderReference($orderId), Fields::DESCRIPTION => $message, Fields::SUCCESS_URL => $this->endpointUrl, Fields::CANCEL_URL => $this->endpointUrl, Fields::USER_LANG => $language, Fields::VK_DATETIME => date(DATE_ISO8601, time())); $requestData = ProtocolUtils::convertValues($requestData, 'UTF-8', $outputEncoding); $requestData[Fields::SIGNATURE] = $this->getRequestSignature($requestData); return $requestData; }
/** * @param integer $orderId * @param float $sum * @param string $message * @param string $outputEncoding Will most likely always be ISO-8859-1 * @param string $language * @param string $currency * * @return array */ public function preparePaymentRequestData($orderId, $sum, $message, $outputEncoding, $language = 'EST', $currency = 'EUR') { $requestData = array(Fields::PROTOCOL_VERSION => $this->protocolVersion, Fields::MAC_KEY_VERSION => $this->keyVersion, Fields::SELLER_ID => $this->sellerId, Fields::ORDER_ID => $orderId, Fields::SUM => $sum, Fields::CURRENCY => $currency, Fields::ORDER_REFERENCE => ProtocolUtils::generateOrderReference($orderId), Fields::DESCRIPTION => $message, Fields::SUCCESS_URL => $this->endpointUrl, Fields::CANCEL_URL => $this->endpointUrl, Fields::REJECT_URL => $this->endpointUrl, Fields::USER_LANG => $this->getLanguageCodeForString($language), Fields::TRANSACTION_DATE => 'EXPRESS', Fields::TRANSACTION_CONFIRM => 'YES'); // Solo protocol doesn't require seller name/account, unless it's different than default one specified if ($this->sellerName && $this->sellerAccountNumber) { $requestData[Fields::SELLER_NAME] = $this->sellerName; $requestData[Fields::SELLER_BANK_ACC] = $this->sellerAccountNumber; } $requestData = ProtocolUtils::convertValues($requestData, 'UTF-8', $outputEncoding); $requestData[Fields::SIGNATURE] = $this->getRequestSignature($requestData); return $requestData; }
/** * Test for too long/too short id * * @expectedException InvalidArgumentException */ public function testGenerateOrderReferenceValidation() { ProtocolUtils::generateOrderReference(''); ProtocolUtils::generateOrderReference(1.2345678901234567E+19); }