/** * Requests a payment and gets transaction refernece ID * * @param Order $order * * @return Order */ function requestPayment(Order $order) { $parameters = array('terminalId' => $this->terminalId, 'userName' => $this->username, 'userPassword' => $this->password, 'orderId' => $order->getOrderId(), 'amount' => $order->getAmount(), 'callBackUrl' => $order->getReturnUrl(), 'localDate' => date('Ymd'), 'localTime' => date("His"), 'additionalData' => $order->getAdditionalData(), 'payerId' => 0); $result = (array) $this->call('bpPayRequest', $parameters); $referenceId = null; @(list($responseCode, $referenceId) = explode(',', is_array($result) ? $result['return'] : $result)); if ($responseCode != "0") { throw new BankWebserviceException($responseCode); } // Update order with new Reference ID then set a redirect URL $order->setReferenceId($referenceId); $order->setRedirectUrl(BankMellat::PAYMENT_URL); return $order; }