/** * Muestra datos relativos a la compra, una vez realizada * @param unknown $params viene desde OrderConfirmationController */ public function hookDisplayPaymentReturn($params) { /* $params (desde OrderConfirmationController): * getOrdersTotalPaid() * currency -> sign * order * currency */ //si el modulo no esta activo if (!$this->active || !$this->isActivo()) { return; } $cart_id = $this->context->cart->id; $order = $params['objOrder']; $detallesOrden = TPTransaccion::getOptions($order->id_cart); $state = $order->getCurrentState(); //recupero el estado de la orden $estadoDenegada = $this->getOrderStatesModulo('DENEGADA'); $customer = new Customer($order->id_customer); //recupera al objeto cliente if ($state != $estadoDenegada) { $this->smarty->assign(array('total_to_pay' => Tools::displayPrice($params['total_to_pay'], $params['currencyObj'], false), 'status' => 'ok', 'reference' => $order->reference, 'mensaje' => $detallesOrden['status'], 'customer' => $customer->email)); } else { $this->smarty->assign(array('status' => 'failed', 'status_desc' => $state)); } return $this->display(__FILE__, 'payment_return.tpl'); //asigno el template que quiero usar }
protected function take_action($respuesta) { $cartId = Tools::getValue('cart'); $status = Tools::getValue('estado'); $cart = new Cart($cartId); if ($status == 0) { if (isset($respuesta['Payload']['Answer'])) { $this->_tranUpdate($cartId, array("first_step" => null, "second_step" => null)); throw new Exception($respuesta['StatusMessage']); } $this->_guardarTransaccion($cart, $respuesta['StatusMessage'], $respuesta['Payload']['Answer']); $respuesta = Transaccion::getOptions($cart->id); $this->_tranUpdate($cartId, array("first_step" => null, "second_step" => null)); throw new Exception($respuesta['StatusMessage']); } //en el caso de pagar con Rapipago o Pago Facil if (strlen($respuesta['Payload']['Answer']["BARCODE"]) > 0) { $datosBarcode = array('nroop' => $order_id, 'venc' => $respuesta['Payload']['Answer']["COUPONEXPDATE"], 'total' => $respuesta['Payload']['Request']['AMOUNT'], 'code' => $respuesta['Payload']['Answer']["BARCODE"], 'tipocode' => $respuesta['Payload']['Answer']["BARCODETYPE"], 'empresa' => $respuesta['Payload']['Answer']["PAYMENTMETHODNAME"]); $this->_guardarTransaccion($cart, $respuesta['StatusMessage'], $respuesta['Payload']['Answer']); //guardo el StatusMessage y los detalles de la transaaccion Tools::redirect($this->context->link->getModuleLink(strtolower($this->module->name), 'barcode', $datosBarcode, true)); //redrijo al controller de barcode } if ($respuesta['StatusCode'] == $this->codigoAprobacion && $this->_isAmountIgual($cart, $respuesta['Payload']['Request']['AMOUNT'])) { $this->_guardarTransaccion($cart, $respuesta['StatusMessage'], $respuesta['Payload']['Answer']); //guardo el StatusMessage y los detalles de la transaaccion $this->module->log->info('Redireccionando al controller de validacion'); Tools::redirect($this->context->link->getModuleLink(strtolower($this->module->name), 'validation', array(), false)); //redirijo al controller de validacion } else { throw new Exception($respuesta['StatusMessage']); } }