/** * Building request array * * @param Varien_Object * @return array */ protected function _buildRequest(Varien_Object $payment) { $order = $payment->getOrder(); $billing = $order->getBillingAddress(); $streets = $billing->getStreet(); $street = isset($streets[0]) && $streets[0] != '' ? $streets[0] : (isset($streets[1]) && $streets[1] != '' ? $streets[1] : ''); $request = Mage::getModel('chronopay/gateway_request')->setOpcode($payment->getOpcode())->setProductId($this->getConfigData('product_id')); switch ($request->getOpcode()) { case self::OPCODE_CUSTOMER_FUND_TRANSFER: $request->setCustomer($order->getCustomerId())->setAmount(sprintf('%.2f', $payment->getAmount()))->setCurrency($order->getBaseCurrencyCode()); break; case self::OPCODE_CHARGING: case self::OPCODE_REFUND: case self::OPCODE_AUTHORIZE: case self::OPCODE_VOID_AUTHORIZE: $request->setFname($billing->getFirstname())->setLname($billing->getLastname())->setCardholder($payment->getCcOwner())->setZip($billing->getPostcode())->setStreet($street)->setCity($billing->getCity())->setState($billing->getRegionModel()->getCode())->setCountry($billing->getCountryModel()->getIso3Code())->setEmail($order->getCustomerEmail())->setPhone($billing->getTelephone())->setIp($this->_getIp())->setCardNo($payment->getCcNumber())->setCvv($payment->getCcCid())->setExpirey($payment->getCcExpYear())->setExpirem(sprintf('%02d', $payment->getCcExpMonth()))->setAmount(sprintf('%.2f', $payment->getAmount()))->setCurrency($order->getBaseCurrencyCode()); break; default: Mage::throwException(Mage::helper('chronopay')->__('Invalid operation code.')); break; } $request->setShowTransactionId(1); if ($this->getTransactionId()) { $request->setTransaction($this->getTransactionId()); } $hash = $this->_getHash($request); $request->setHash($hash); return $request; }