コード例 #1
0
 /**
  * @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);
     }
 }
コード例 #2
0
 /**
  * @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());
     }
 }