/** * @see FrontController::postProcess() */ public function postProcess() { $cartSize = $this->context->cart->nbProducts(); if (empty($cartSize)) { Tools::redirect('index.php?controller=order&step=1'); } $payment = new Payment(Configuration::get(self::prefix . 'CONSUMER_KEY')); $payment->enableSandBox(Configuration::get(self::prefix . 'SANDBOX')); $transactionRequest = $this->createTransactionRequest(); try { $response = $payment->create($transactionRequest); $this->writeHistory($response, $transactionRequest); $order = new Order($this->module->currentOrder); // Redirect on order confirmation page Tools::redirect('index.php?controller=order-confirmation' . '&id_cart=' . $this->context->cart->id . '&id_module=' . $this->module->id . '&reference_order=' . $order->reference . '&key=' . $this->context->customer->secure_key . '&bcash_transaction_id=' . $response->transactionId . '&bcash_paymentLink=' . $response->paymentLink . '&payment_method=' . Tools::getValue('payment-method')); } catch (ValidationException $e) { $this->retentativa($e); } catch (ConnectionException $e) { $this->retentativa($e); } }
/** * @return array * @throws Mage_Core_Exception */ public function startTransaction() { try { $this->transactionRequest = $this->createTransactionRequestBcash(); $this->setShippingBcash(); $this->setPaymentMethodBcash(); $payment = new Payment($this->consumer_key); if ($this->sandbox) { $payment->enableSandBox(true); } $response = $payment->create($this->transactionRequest); $arRet = array('response' => $response, 'payment_method' => $this->payment_method, 'discountPercent' => $this->discountPercentBcash, 'discount' => $this->discountBcash, 'deps' => $this->deps, 'installments' => $this->installments); if (isset($response->cancellationCode) && $response->cancellationCode) { if ($response->cancellationCode == "700001") { Mage::throwException("A transação não pode ser processada utilizando este cartão. Por favor, selecione outro meio de pagamento."); } else { Mage::throwException(Mage::helper('sales')->__(urldecode($arRet['response']->message))); } } else { return $arRet; } } catch (ValidationException $e) { Mage::helper("bcash")->saveLog("ValidationException - Helper_Transaction->startTransaction: " . $e->getMessage(), $e->getErrors()); $errorsArr = $e->getErrors(); $errorsList = $errorsArr->list; $messages = $e->getMessage() . "\n"; foreach ($errorsList as $err) { $messages .= "\n- " . urldecode($err->description) . " (" . $err->code . ")"; } Mage::throwException($messages); } catch (ConnectionException $e) { Mage::helper("bcash")->saveLog("ConnectionException - Helper_Transaction->startTransaction: " . $e->getMessage(), $e->getErrors()); $errorsArr = $e->getErrors(); $errorsList = $errorsArr->list; $messages = $e->getMessage() . "\n"; foreach ($errorsList as $err) { $messages .= "\n- " . urldecode($err->description) . " (" . $err->code . ")"; } Mage::throwException($messages); } catch (Exception $e) { Mage::helper("bcash")->saveLog($e->getMessage()); Mage::throwException($e->getMessage()); } }