/** * @param FinancialTransactionInterface $transaction * @return ActionRequiredException */ public function createPayeerRedirect(FinancialTransactionInterface $transaction) { $actionRequest = new ActionRequiredException('Redirecting to Payeer.'); $actionRequest->setFinancialTransaction($transaction); $instruction = $transaction->getPayment()->getPaymentInstruction(); $extendedData = $transaction->getExtendedData(); $m_shop = $this->client->getShopId(); $m_orderid = $instruction->getId(); $m_amount = number_format($transaction->getRequestedAmount(), 2, '.', ''); $m_curr = $instruction->getCurrency(); $m_desc = base64_encode($extendedData->has('description') ? $extendedData->get('description') : ''); $m_key = $this->client->getSecretKey(); $data = array('m_shop' => $m_shop, 'm_orderid' => $m_orderid, 'm_amount' => $m_amount, 'm_curr' => $m_curr, 'm_desc' => $m_desc, 'm_process' => 'send', 'm_sign' => $this->client->createFormHash(array($m_shop, $m_orderid, $m_amount, $m_curr, $m_desc, $m_key))); $actionRequest->setAction(new VisitUrl(http_build_url(Client::FORM_URL, array('query' => http_build_query($data)), HTTP_URL_STRIP_AUTH | HTTP_URL_JOIN_PATH | HTTP_URL_JOIN_QUERY | HTTP_URL_STRIP_FRAGMENT))); return $actionRequest; }