Ejemplo n.º 1
0
 public function generateToken()
 {
     if ($this->request->server['HTTPS']) {
         $server = $this->config->get('config_ssl');
     } else {
         $server = $this->config->get('config_url');
     }
     if ($this->config->get('masterpass_ambiente')) {
         $settings['requesturl'] = "https://api.mastercard.com/oauth/consumer/v1/request_token";
         $settings['shoppingcarturl'] = "https://api.mastercard.com/masterpass/v6/shopping-cart";
         $settings['accessurl'] = "https://api.mastercard.com/oauth/consumer/v1/access_token";
         $settings['postbackurl'] = "https://api.mastercard.com/masterpass/v6/transaction";
         $settings['precheckouturl'] = "https://api.mastercard.com/masterpass/v6/precheckout";
         $settings['merchantiniturl'] = "https://api.mastercard.com/masterpass/v6/merchant-initialization";
         $settings['lightboxurl'] = "https://masterpass.com/lightbox/Switch/integration/MasterPass.client.js";
     } else {
         $settings['requesturl'] = "https://sandbox.api.mastercard.com/oauth/consumer/v1/request_token";
         $settings['shoppingcarturl'] = "https://sandbox.api.mastercard.com/masterpass/v6/shopping-cart";
         $settings['accessurl'] = "https://sandbox.api.mastercard.com/oauth/consumer/v1/access_token";
         $settings['postbackurl'] = "https://sandbox.api.mastercard.com/masterpass/v6/transaction";
         $settings['precheckouturl'] = "https://sandbox.api.mastercard.com/masterpass/v6/precheckout";
         $settings['merchantiniturl'] = "https://sandbox.api.mastercard.com/masterpass/v6/merchant-initialization";
         $settings['lightboxurl'] = "https://sandbox.masterpass.com/lightbox/Switch/integration/MasterPass.client.js";
     }
     $settings['callbackdomain'] = $server;
     $settings['pairingcallbackpath'] = "/masterpass_paring_callback";
     $settings['cartcallbackpath'] = "/masterpass_review_order";
     $settings['callbackpath'] = "/masterpass_callback";
     $settings['connectedcallbackpath'] = "/masterpass_callback&connect=true";
     $settings['consumerkey'] = $this->config->get('masterpass_consumer_key');
     $settings['checkoutidentifier'] = $this->config->get('masterpass_checkout_indentifier');
     $settings['keystorepath'] = "Certs/MCOpenAPI.p12";
     $settings['keystorepassword'] = "******";
     $settings['realm'] = "eWallet";
     $settings['auth_level_basic'] = "false";
     $settings['xmlVersion'] = "v6";
     $settings['shippingSuppression'] = "false";
     $settings['shippingprofiles'] = "BR,BRA";
     $settings['standbycallback'] = "http://ech-0a9d8282.corp.mastercard.test";
     $settings['allowedloyaltyprograms'] = "4878508, 4735583";
     require_once DIR_SYSTEM . 'library/masterpass/WalletWebContent/Controller/MasterPassController.php';
     $sad = new MasterPassData($settings);
     $controller = new MasterPassController($sad);
     // GetRequestToken
     try {
         $sad = $controller->getRequestToken();
     } catch (Exception $e) {
         exit($e->getMessage());
     }
     // ShoppingCart
     try {
         $xml = '';
         $this->load->model('tool/image');
         if ($this->cart->hasProducts()) {
             $xml .= '<ShoppingCartRequest>';
             $xml .= '<OAuthToken></OAuthToken>';
             $xml .= '<ShoppingCart>';
             $xml .= '<CurrencyCode>BRL</CurrencyCode>';
             $xml .= '<Subtotal>' . str_replace('.', '', str_replace(',', '', str_replace('R$ ', '', $this->currency->format($this->cart->getSubTotal())))) . '</Subtotal>';
             foreach ($this->cart->getProducts() as $product) {
                 if ($product['image']) {
                     $image = $this->model_tool_image->resize($product['image'], 400, 400);
                 } else {
                     $image = $this->model_tool_image->resize('placeholder.png', 400, 400);
                 }
                 $xml .= '<ShoppingCartItem>';
                 $xml .= '<Description>' . $product['name'] . '</Description>';
                 $xml .= '<Quantity>' . $product['quantity'] . '</Quantity>';
                 $xml .= '<Value>' . str_replace('.', '', str_replace(',', '', str_replace('R$ ', '', $this->currency->format($product['price'])))) . '</Value>';
                 $xml .= '<ImageURL>' . $image . '</ImageURL>';
                 $xml .= '</ShoppingCartItem>';
             }
             $xml .= '</ShoppingCart>';
             $xml .= '<OriginUrl></OriginUrl>';
             $xml .= '</ShoppingCartRequest>';
         }
         $sad = $controller->postShoppingCart($xml);
     } catch (Exception $e) {
         exit($e->getMessage());
     }
     $this->session->data['sad'] = serialize($sad);
     exit('var fileref = document.createElement(\'script\');fileref.setAttribute("type", "text/javascript");fileref.setAttribute("src", "' . $sad->lightboxUrl . '");fileref.onload = function() {MasterPass.client.checkout({"requestToken":"' . $sad->requestToken . '","callbackUrl":"' . $sad->callbackUrl . '","merchantCheckoutId":"' . $sad->checkoutIdentifier . '","allowedCardTypes":["master,amex,diners,visa"],"version":"v6"});};document.getElementsByTagName(\'body\')[0].appendChild(fileref);');
 }
Ejemplo n.º 2
0
    public function index()
    {
        $this->document->setPage('success');
        $this->load->language('checkout/success');
        $this->load->model('account/order');
        $this->load->model('checkout/order');
        if (isset($this->session->data['order_id'])) {
            $this->cart->clear();
        } else {
            $this->response->redirect($this->url->link('common/home', '', 'SSL'));
        }
        if (!isset($this->session->data['payment_method'])) {
            $this->response->redirect($this->url->link('common/home', '', 'SSL'));
        }
        $this->document->setTitle($this->language->get('heading_title'));
        $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
        $order_products = $this->model_account_order->getOrderProducts($this->session->data['order_id']);
        $data['payment_method'] = $this->session->data['payment_method']['code'];
        $params['order_id'] = $this->session->data['order_id'];
        $params['order_total_conversion'] = number_format($order_info['total'], 2, ".", "");
        $shipping = $this->model_checkout_order->getOrderTotal($this->session->data['order_id'], 'shipping');
        $params['shipping_total_conversion'] = number_format($shipping['value'], 2, ".", "");
        $params['city'] = $order_info['payment_city'];
        $params['zone'] = $order_info['payment_zone'];
        $params['products'] = $order_products;
        $data['ecommerce_conversion'] = $this->load->controller('script/ecommerce_conversion', $params);
        $data['adwords_conversion'] = $this->load->controller('script/adwords_conversion', $params);
        $data['bing_conversion'] = $this->load->controller('script/bing_conversion', $params);
        if (isset($this->session->data['sad']) && isset($this->session->data['checkoutObjectCard'])) {
            require_once DIR_SYSTEM . 'library/masterpass/WalletWebContent/Controller/MasterPassController.php';
            $sad = unserialize($this->session->data['sad']);
            $controller = new MasterPassController($sad);
            $errorMessage = null;
            try {
                $xml = '';
                $this->load->model('tool/image');
                if ($order_products) {
                    $subtotal = 0;
                    foreach ($order_products as $product) {
                        $subtotal += $product['price'] * $product['quantity'];
                    }
                    $xml .= '<ShoppingCartRequest>';
                    $xml .= '<OAuthToken></OAuthToken>';
                    $xml .= '<ShoppingCart>';
                    $xml .= '<CurrencyCode>BRL</CurrencyCode>';
                    $xml .= '<Subtotal>' . str_replace('.', '', str_replace(',', '', str_replace('R$ ', '', $this->currency->format($subtotal)))) . '</Subtotal>';
                    foreach ($order_products as $product) {
                        if (isset($product['image']) && $product['image']) {
                            $image = $this->model_tool_image->resize($product['image'], 400, 400);
                        } else {
                            $image = $this->model_tool_image->resize('placeholder.png', 400, 400);
                        }
                        $xml .= '<ShoppingCartItem>';
                        $xml .= '<Description>' . $product['name'] . '</Description>';
                        $xml .= '<Quantity>' . $product['quantity'] . '</Quantity>';
                        $xml .= '<Value>' . str_replace('.', '', str_replace(',', '', str_replace('R$ ', '', $this->currency->format($product['price'])))) . '</Value>';
                        $xml .= '<ImageURL>' . $image . '</ImageURL>';
                        $xml .= '</ShoppingCartItem>';
                    }
                    $xml .= '</ShoppingCart>';
                    $xml .= '<OriginUrl></OriginUrl>';
                    $xml .= '</ShoppingCartRequest>';
                }
                //Success or Failure
                $sad = $controller->logTransaction($this->session->data['checkoutObjectCard']['TransactionId'], $xml, 'Success', str_replace('.', '', str_replace(',', '', str_replace('R$ ', '', $this->currency->format($order_info['total'])))));
            } catch (Exception $e) {
                exit($e->getCode() . '<br>' . $e->getMessage());
            }
        }
        $data['msg_success_left'] = $data['msg_success_right'] = '';
        if ($this->session->data['payment_method']['code'] == 'stelo') {
            $this->load->model('payment/stelo');
            $stelo = $this->model_payment_stelo->getTransaction($this->session->data['order_id']);
            $data['urlWallet'] = $stelo['link_wallet'];
            $data['msg_success_right'] = $this->makeTextCard('right', 'Aguarde um momento enquanto carrega a tela do ambiente Stelo, para que você possa prosseguir com o pagamento. <br/>Lembre-se estamos aguardando confirmação do pagamento para preparar seu produto para envio.');
        }
        if ($this->session->data['payment_method']['code'] == 'pagseguro_billet') {
            if (isset($this->session->data['paymentLink'])) {
                $data['msg_success_left'] = $this->makeTextBillet('pagseguro_billet', 'left', $this->session->data['paymentLink']);
            }
            $data['msg_success_right'] = $this->makeTextBillet('pagseguro_billet', 'right');
        }
        if ($this->session->data['payment_method']['code'] == 'pagseguro_card') {
            $data['msg_success_right'] = $this->makeTextCard('right', 'Estamos aguardando o retorno de autorização da operadora de seu cartão para preparar seu produto para envio. <br/>Isso pode demorar alguns minutos ou algumas horas.');
        }
        if ($this->session->data['payment_method']['code'] == 'paypal_plus') {
            $data['msg_success_right'] = $this->makeTextCard('right', 'Estamos aguardando o retorno de autorização da operadora de seu cartão para preparar seu produto para envio. <br/>Isso pode demorar alguns minutos ou algumas horas.');
        }
        if ($this->session->data['payment_method']['code'] == 'mercadopago_billet') {
            if (isset($this->session->data['paymentLink'])) {
                $data['msg_success_left'] = $this->makeTextBillet('mercadopago_billet', 'left', $this->session->data['paymentLink']);
            }
            $data['msg_success_right'] = $this->makeTextBillet('mercadopago_billet', 'right');
        }
        if ($this->session->data['payment_method']['code'] == 'mercadopago_card') {
            $data['msg_success_right'] = $this->makeTextCard('right', 'Estamos aguardando o retorno de autorização da operadora de seu cartão para preparar seu produto para envio. <br/>Isso pode demorar alguns minutos ou algumas horas.');
        }
        if ($this->session->data['payment_method']['code'] == 'cielows') {
            $data['msg_success_right'] = $this->makeTextCard('right', 'Estamos aguardando o retorno de autorização da operadora de seu cartão para preparar seu produto para envio. <br/>Isso pode demorar alguns minutos ou algumas horas.');
        }
        if ($this->session->data['payment_method']['code'] == 'redecardws') {
            $data['msg_success_right'] = $this->makeTextCard('right', 'Estamos aguardando o retorno de autorização da operadora de seu cartão para preparar seu produto para envio. <br/>Isso pode demorar alguns minutos ou algumas horas.');
        }
        if ($this->session->data['payment_method']['code'] == 'braspag_card') {
            $data['msg_success_right'] = $this->makeTextCard('right', 'Estamos aguardando o retorno de autorização da operadora de seu cartão para preparar seu produto para envio. <br/>Isso pode demorar alguns minutos ou algumas horas.');
        }
        if ($this->session->data['payment_method']['code'] == 'braspag_billet') {
            $this->load->model('payment/braspag_billet');
            $braspag_billet = $this->model_payment_braspag_billet->getTransaction($this->session->data['order_id']);
            $data['msg_success_left'] = $this->makeTextBillet('braspag_billet', 'left', $braspag_billet['url']);
            $data['msg_success_right'] = $this->makeTextBillet('braspag_billet', 'right');
        }
        if ($this->session->data['payment_method']['code'] == 'boldcron_card') {
            $data['msg_success_right'] = $this->makeTextCard('right', 'Estamos aguardando o retorno de autorização da operadora de seu cartão para preparar seu produto para envio. <br/>Isso pode demorar alguns minutos ou algumas horas.');
        }
        if ($this->session->data['payment_method']['code'] == 'boldcron_billet') {
            $this->load->model('payment/boldcron_billet');
            $braspag_billet = $this->model_payment_boldcron_billet->getTransaction($this->session->data['order_id']);
            $data['msg_success_left'] = $this->makeTextBillet('boldcron_billet', 'left', $braspag_billet['url']);
            $data['msg_success_right'] = $this->makeTextBillet('boldcron_billet', 'right');
        }
        if ($this->session->data['payment_method']['code'] == 'braspag_card_debit') {
            $this->load->model('payment/braspag_card_debit');
            $braspag_billet = $this->model_payment_braspag_card_debit->getTransaction($this->session->data['order_id']);
            $data['msg_success_left'] = $this->makeTextCardDebit('left', $braspag_billet['url']);
            $data['msg_success_right'] = $this->makeTextCardDebit('right');
        }
        if ($this->session->data['payment_method']['code'] == 'moip_card') {
            $data['msg_success_right'] = $this->makeTextCard('right', 'Estamos aguardando o retorno de autorização da operadora de seu cartão para preparar seu produto para envio. <br/>Isso pode demorar alguns minutos ou algumas horas.');
            unset($this->session->data['method']);
            unset($this->session->data['code']);
            unset($this->session->data['status']);
            unset($this->session->data['codigo_moip']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'moip_billet') {
            $boleto_moip = $this->model_checkout_order->getTransacaoMoipBillet($this->session->data['order_id']);
            $data['msg_success_left'] = $this->makeTextBillet('moip_billet', 'left', $boleto_moip['url']);
            $data['msg_success_right'] = $this->makeTextBillet('moip_billet', 'right');
            unset($this->session->data['method']);
            unset($this->session->data['code']);
            unset($this->session->data['status']);
            unset($this->session->data['codigo_moip']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'moip_debit') {
            $debito_moip = $this->model_checkout_order->getTransacaoMoipDebit($this->session->data['order_id']);
            $data['msg_success_left'] = '<ul style="font-size:13px;margin-top:15px">';
            $data['msg_success_left'] .= '<li>';
            $data['msg_success_left'] .= '<p style="text-align:center;color:#000;font-weight:bold">Clique no logo abaixo para abrir a área do banco</p><br/>';
            $data['msg_success_left'] .= '</li>';
            $data['msg_success_left'] .= '</ul>';
            $data['msg_success_left'] .= '<div style="text-align:center"><a href="' . $debito_moip['url'] . '" target="_blank"><img src="image/payment/moip/transferencia_bancaria.jpg"></a></div><br/>';
            $data['msg_success_left'] .= '<div style="text-align:center"><p>O link também será enviado para o e-mail: <b>' . $this->customer->getEmail() . '</b></p></div>';
            $data['msg_success_right'] = '<ul style="font-size:13px;text-align:center;">';
            $data['msg_success_right'] .= '<li>';
            $data['msg_success_right'] .= '<p style="text-align:center;color:#000;font-size:17px;font-weight:500">Pedido Concluído</p><br/>';
            $data['msg_success_right'] .= '</li>';
            $data['msg_success_right'] .= '<li>';
            $data['msg_success_right'] .= '<h4 style="color:#000;">Local para pagamento:</h4>';
            $data['msg_success_right'] .= '<p style="color:#000;font-size:15px;font-weight:600;">Seu pedido pode ser pago via internet banking (Débito Online)</p>';
            $data['msg_success_right'] .= '</li>';
            $data['msg_success_right'] .= '<li>';
            $data['msg_success_right'] .= '<p style="color:#000;font-size:15px;font-weight:600;">Lembre-se estamos aguardando confirmação do pagamento para preparar seu produto para envio.</p><br/>';
            $data['msg_success_right'] .= '</li>';
            $data['msg_success_right'] .= '<li>';
            $data['msg_success_right'] .= '<p style="font-size:16px;">Obrigado por comprar na <b>' . $this->config->get('config_name') . '!</b></p><br/>';
            $data['msg_success_right'] .= '</li>';
            $data['msg_success_right'] .= '</ul>';
            unset($this->session->data['method']);
            unset($this->session->data['code']);
            unset($this->session->data['status']);
            unset($this->session->data['codigo_moip']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'bcash_card') {
            $data['msg_success_right'] = $this->makeTextCard('right', 'Estamos aguardando o retorno de autorização da operadora de seu cartão para preparar seu produto para envio. <br/>Isso pode demorar alguns minutos ou algumas horas.');
            unset($this->session->data['transactionld']);
            unset($this->session->data['status']);
            unset($this->session->data['message']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'bcash_billet') {
            $boleto_bcash = $this->model_checkout_order->getTransacaoBcashBillet($this->session->data['order_id']);
            $data['msg_success_left'] = $this->makeTextBillet('bcash_billet', 'left', $boleto_bcash['url']);
            $data['msg_success_right'] = $this->makeTextBillet('bcash_billet', 'right');
            unset($this->session->data['transactionld']);
            unset($this->session->data['status']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'bcash_debit') {
            $debito_bcash = $this->model_checkout_order->getTransacaoBcashDebit($this->session->data['order_id']);
            $data['msg_success_left'] = '<ul style="font-size:13px;margin-top:15px">';
            $data['msg_success_left'] .= '<li>';
            $data['msg_success_left'] .= '<p style="text-align:center;color:#000;font-weight:bold">Clique no logo abaixo para abrir a área do banco</p><br/>';
            $data['msg_success_left'] .= '</li>';
            $data['msg_success_left'] .= '</ul>';
            $data['msg_success_left'] .= '<div style="text-align:center"><a href="' . $debito_bcash['url'] . '" target="_blank"><img src="image/payment/bcash/transferencia_bancaria.jpg"></a></div><br/>';
            $data['msg_success_left'] .= '<div style="text-align:center"><p>O link também será enviado para o e-mail: <b>' . $this->customer->getEmail() . '</b></p></div>';
            $data['msg_success_right'] = '<ul style="font-size:13px;text-align:center;">';
            $data['msg_success_right'] .= '<li>';
            $data['msg_success_right'] .= '<p style="text-align:center;color:#000;font-size:17px;font-weight:500">Pedido Concluído</p><br/>';
            $data['msg_success_right'] .= '</li>';
            $data['msg_success_right'] .= '<li>';
            $data['msg_success_right'] .= '<h4 style="color:#000;">Local para pagamento:</h4>';
            $data['msg_success_right'] .= '<p style="color:#000;font-size:15px;font-weight:600;">Seu pedido pode ser pago via internet banking (Débito Online)</p>';
            $data['msg_success_right'] .= '</li>';
            $data['msg_success_right'] .= '<li>';
            $data['msg_success_right'] .= '<p style="color:#000;font-size:15px;font-weight:600;">Lembre-se estamos aguardando confirmação do pagamento para preparar seu produto para envio.</p><br/>';
            $data['msg_success_right'] .= '</li>';
            $data['msg_success_right'] .= '<li>';
            $data['msg_success_right'] .= '<p style="font-size:16px;">Obrigado por comprar na <b>' . $this->config->get('config_name') . '!</b></p><br/>';
            $data['msg_success_right'] .= '</li>';
            $data['msg_success_right'] .= '</ul>';
            unset($this->session->data['transactionld']);
            unset($this->session->data['status']);
            unset($this->session->data['paymentmethod_code_bcash']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'payu_billet') {
            $boleto_payu = $this->model_checkout_order->getTransacaoPayuBillet($this->session->data['order_id']);
            $data['msg_success_left'] = $this->makeTextBillet('payu_billet', 'left', $boleto_payu['url']);
            $data['msg_success_right'] = $this->makeTextBillet('payu_billet', 'right');
            unset($this->session->data['transactionld']);
            unset($this->session->data['orderld']);
            unset($this->session->data['status']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'payu_card') {
            if ($this->session->data['status'] == "APPROVED") {
                $data['msg_success_right'] = $this->makeTextCard('right', 'Pedido autorizado pera operadora do seu cartão, estaremos preparando seu produto para envio.');
            } else {
                if ($this->session->data['status'] == "DECLINED" || $this->session->data['status'] == "SUBMITTED" || $this->session->data['status'] == "ERROR" || $this->session->data['status'] == "EXPIRED") {
                    $this->model_checkout_order->addOrderHistory($this->session->data['order_id'], $this->config->get('config_status_canceled'), 'Pedido negado pela autorizadora!', true, '', true, 'payu_card');
                    // função que volta os produtos do pedido para o estoque
                    $this->cart->backProductsStock($this->session->data['order_id']);
                    $this->session->data['error_transaction'] = true;
                    ?>
				<script type="text/javascript">
            	top.window.location.href = '<?php 
                    echo URL_CHECKOUT;
                    ?>
';
            	</script>
            <?php 
                } else {
                    if ($this->session->data['status'] == "PENDING") {
                        $data['msg_success_right'] = $this->makeTextCard('right', 'Estamos aguardando o retorno de autorização da operadora de seu cartão para preparar seu produto para envio. <br/>Isso pode demorar alguns minutos ou algumas horas.');
                    }
                }
            }
            unset($this->session->data['transactionld']);
            unset($this->session->data['orderld']);
            unset($this->session->data['status']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'bradesco_billet') {
            $this->load->model('payment/bradesco_billet');
            $this->model_payment_bradesco_billet->addTransactionBradescoBillet($this->session->data['order_id'], $this->session->data['url']);
            $data['msg_success_left'] = $this->makeTextBillet('bradesco_billet', 'left', $this->session->data['url']);
            $data['msg_success_right'] = $this->makeTextBillet('bradesco_billet', 'right');
            unset($this->session->data['method']);
            unset($this->session->data['code']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'itau_billet') {
            $this->load->model('payment/itau_billet');
            $this->model_payment_itau_billet->addTransactionItauBillet($this->session->data['order_id'], $this->session->data['url']);
            $data['msg_success_left'] .= '<div>' . $this->session->data['url'] . '</div><br/>';
            $data['msg_success_left'] .= '<div><a onclick="generateBillet(' . $this->session->data['order_id'] . ');" target="_blank" class="btn btn-finaly btn-lg link_print"> IMPRIMIR BOLETO</a></div><br/>';
            $data['msg_success_left'] .= '<div style="text-align:center"><p>O boleto também será enviado para o e-mail: <b>' . $this->customer->getEmail() . '</b></p></div>';
            $data['msg_success_left'] .= '<div style="text-align:center"><a onclick="generateBillet(' . $this->session->data['order_id'] . ');" target="_blank" class="btn btn-finaly btn-md link_visualize"> Visualizar Boleto</a></div><br/>';
            $data['msg_success_right'] = $this->makeTextBillet('itau_billet', 'right');
            unset($this->session->data['method']);
            unset($this->session->data['code']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'bb_billet') {
            $this->load->model('payment/bb_billet');
            $this->model_payment_bb_billet->addTransactionBbBillet($this->session->data['order_id'], $this->session->data['url']);
            $data['msg_success_left'] .= '<div>' . $this->session->data['url'] . '</div><br/>';
            $data['msg_success_left'] .= '<div><a onclick="generateBillet(' . $this->session->data['order_id'] . ');" target="_blank" class="btn btn-finaly btn-lg link_print"> IMPRIMIR BOLETO</a></div><br/>';
            $data['msg_success_left'] .= '<div style="text-align:center"><p>O boleto também será enviado para o e-mail: <b>' . $this->customer->getEmail() . '</b></p></div>';
            $data['msg_success_left'] .= '<div style="text-align:center"><a onclick="generateBillet(' . $this->session->data['order_id'] . ');" target="_blank" class="btn btn-finaly btn-md link_visualize"> Visualizar Boleto</a></div><br/>';
            $data['msg_success_right'] = $this->makeTextBillet('bb_billet', 'right');
            unset($this->session->data['method']);
            unset($this->session->data['code']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'hsbc_generic_billet') {
            $this->load->model('payment/hsbc_generic_billet');
            $this->model_payment_hsbc_generic_billet->addTransactionHsbcGenericBillet($this->session->data['order_id'], $this->session->data['url']);
            $data['msg_success_left'] = $this->makeTextBillet('hsbc_generic_billet', 'left', $this->session->data['url']);
            $data['msg_success_right'] = $this->makeTextBillet('hsbc_generic_billet', 'right');
            unset($this->session->data['method']);
            unset($this->session->data['code']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'bb_generic_billet') {
            $this->load->model('payment/bb_generic_billet');
            $this->model_payment_bb_generic_billet->addTransactionBbGenericBillet($this->session->data['order_id'], $this->session->data['url']);
            $data['msg_success_left'] = $this->makeTextBillet('bb_generic_billet', 'left', $this->session->data['url']);
            $data['msg_success_right'] = $this->makeTextBillet('bb_generic_billet', 'right');
            unset($this->session->data['method']);
            unset($this->session->data['code']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'caixa_generic_billet') {
            $this->load->model('payment/caixa_generic_billet');
            $this->model_payment_caixa_generic_billet->addTransactionCaixaGenericBillet($this->session->data['order_id'], $this->session->data['url']);
            $data['msg_success_left'] = $this->makeTextBillet('caixa_generic_billet', 'left', $this->session->data['url']);
            $data['msg_success_right'] = $this->makeTextBillet('caixa_generic_billet', 'right');
            unset($this->session->data['method']);
            unset($this->session->data['code']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'santander_generic_billet') {
            $this->load->model('payment/santander_generic_billet');
            $this->model_payment_santander_generic_billet->addTransactionSantanderGenericBillet($this->session->data['order_id'], $this->session->data['url']);
            $data['msg_success_left'] = $this->makeTextBillet('santander_generic_billet', 'left', $this->session->data['url']);
            $data['msg_success_right'] = $this->makeTextBillet('santander_generic_billet', 'right');
            unset($this->session->data['method']);
            unset($this->session->data['code']);
            unset($this->session->data['session_id']);
        }
        if ($this->session->data['payment_method']['code'] == 'deposit') {
            $data['msg_success_left'] = '<ul style="font-size:13px;">';
            $data['msg_success_left'] .= '<li>';
            $data['msg_success_left'] .= '<h4 style="color:#000;">Efetuar pagamento:</h4>';
            $data['msg_success_left'] .= '<p>Efetue o depósito na conta corrente à seguir e nos envie o comprovante com número do seu pedido para o e-mail <span><b>' . $this->config->get('config_email') . '</b></span> desta forma podemos agilizar o processo de envio de seu produto.</p>';
            $data['msg_success_left'] .= '</li>';
            $data['msg_success_left'] .= '</ul>';
            $data['msg_success_right'] = '<div>';
            $data['msg_success_right'] .= '<p id="text_dadosdeposit"><b style="color:#000;">DADOS PARA DEPOSÍTO OU TRANSFÊRENCIA: <span id="print_dadosdeposit" onclick="javascript:print();"><img src="image/deposito_print.png" style="vertical-align:middle;"> imprimir os dados</span></b></p>';
            $data['msg_success_right'] .= '<p id="deposit_data">';
            $data['msg_success_right'] .= html_entity_decode($this->config->get('deposit_data'));
            $data['msg_success_right'] .= '<br/><b>Total a pagar: </b>' . $this->currency->format($order_info['total']);
            $data['msg_success_right'] .= '</p>';
            $data['msg_success_right'] .= '</div>';
            $data['msg_success_right'] .= '<p>Lembre-se estamos aguardando confirmação do pagamento para preparar seu produto para envio.</p>';
        }
        unset($this->session->data['coupon']);
        unset($this->session->data['voucher']);
        unset($this->session->data['login_aps']);
        unset($this->session->data['pdv']);
        //Variaveis Masterpass
        unset($this->session->data['checkoutObjectCard']);
        unset($this->session->data['sad']);
        unset($this->session->data['EmailCpfDetected']);
        $data['total'] = $this->currency->format($order_info['total']);
        $data['total_conversion'] = number_format($order_info['total'], 2, ".", "");
        $data['email'] = $this->customer->getEmail();
        $data['telephone'] = $this->config->get('config_telephone');
        $data['name_store'] = $this->config->get('config_name');
        $data['firstname'] = $this->customer->getFirstName();
        $data['order_id'] = $this->session->data['order_id'];
        $data['email_order'] = $this->config->get('config_email');
        $data['seal_banner_ebit'] = html_entity_decode($this->config->get('seal_banner_ebit'));
        $data['column_left'] = $this->load->controller('common/column_left');
        $data['column_right'] = $this->load->controller('common/column_right');
        $data['content_top'] = $this->load->controller('common/content_top');
        $data['content_bottom'] = $this->load->controller('common/content_bottom');
        $data['footer'] = $this->load->controller('common/footer');
        $data['header'] = $this->load->controller('common/header');
        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/checkout/success.tpl')) {
            $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/checkout/success.tpl', $data));
        } else {
            $this->response->setOutput($this->load->view('default/template/checkout/success.tpl', $data));
        }
    }
 public function index()
 {
     if ($this->request->server['HTTPS']) {
         $server = $this->config->get('config_ssl');
     } else {
         $server = $this->config->get('config_url');
     }
     require_once DIR_SYSTEM . 'library/masterpass/WalletWebContent/Controller/MasterPassController.php';
     require_once DIR_SYSTEM . 'library/masterpass/WalletWebContent/Controller/MasterPassHelper.php';
     $sad = unserialize($this->session->data['sad']);
     $controller = new MasterPassController($sad);
     $sad = $controller->setCallbackParameters($this->request->get);
     $connect = false;
     if (isset($this->request->get['connect'])) {
         $connect = $this->request->get['connect'] === "true";
     }
     if (isset($this->request->get[MasterPassService::PAIRING_TOKEN]) && isset($this->request->get[MasterPassService::PAIRING_VERIFIER])) {
         $pairing = true;
         $sad = $controller->setPairingToken($this->request->get[MasterPassService::PAIRING_TOKEN]);
         $sad = $controller->setPairingVerifier($this->request->get[MasterPassService::PAIRING_VERIFIER]);
         $sad = $controller->getLongAccessToken();
         if (!empty($sad->longAccessToken)) {
             setcookie('longAccessToken', $sad->longAccessToken, time() + 60 * 60 * 24 * 7);
         }
     }
     // GetaccessToken
     try {
         $sad = $controller->getAccessToken();
     } catch (Exception $e) {
         $errorMessage = MasterPassHelper::formatError($e->getMessage());
     }
     // ProccessCheckout
     $checkoutObject = "";
     try {
         $sad = $controller->getCheckoutData();
         $checkoutObject = MasterPassHelper::formatResource($sad->checkoutData);
     } catch (Exception $e) {
         $errorMessage = MasterPassHelper::formatError($e->getMessage());
     }
     $this->load->model('account/customer');
     //Verifica se o email ja possui cadastro
     $customer_email = $this->model_account_customer->getTotalCustomersByEmail($checkoutObject->Contact->EmailAddress);
     //Verifica se o CPF ja possui cadastro
     $customer_cpf = $this->model_account_customer->getTotalCustomersByCpfCnjpj($checkoutObject->Contact->NationalID);
     $cpf_detected = false;
     if ($customer_email) {
         $this->model_account_customer->updateAddressMasterPass($checkoutObject, $checkoutObject->Contact->EmailAddress);
     } else {
         if ($customer_cpf['total']) {
             $cpf_detected = $customer_cpf['email'];
             $this->model_account_customer->updateAddressMasterPass($checkoutObject, $customer_cpf['email']);
         } else {
             if (!empty($checkoutObject->Contact->EmailAddress)) {
                 $password = substr(sha1(date('dmYHis')), 0, 8);
                 $this->model_account_customer->addCustomerMasterPass($checkoutObject, $password);
                 //EMAIL
                 $template = new Template();
                 $template->data['url_store'] = $this->config->get('config_url');
                 $template->data['name_store'] = $this->config->get('config_name');
                 $template->data['logo_store'] = $template->data['url_store'] . 'image/' . $this->config->get('config_logo');
                 $template->data['url_password'] = $server . URL_PASSWORD;
                 $template->data['password'] = $password;
                 $this->load->model('tool/image');
                 if ($this->config->get('config_mail_header') && is_file(DIR_IMAGE . $this->config->get('config_mail_header'))) {
                     $template->data['config_mail_header'] = $this->model_tool_image->resize($this->config->get('config_mail_header'), 600, 120);
                 } else {
                     $template->data['config_mail_header'] = $this->model_tool_image->resize('no_image.png', 600, 120);
                 }
                 if ($this->config->get('config_mail_footer') && is_file(DIR_IMAGE . $this->config->get('config_mail_footer'))) {
                     $template->data['config_mail_footer'] = $this->model_tool_image->resize($this->config->get('config_mail_footer'), 600, 120);
                 } else {
                     $template->data['config_mail_footer'] = $this->model_tool_image->resize('no_image.png', 600, 120);
                 }
                 if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/mail/customer.tpl')) {
                     $html = $template->fetch($this->config->get('config_template') . '/template/mail/customer.tpl');
                 } else {
                     $html = $template->fetch('default/template/mail/customer.tpl');
                 }
                 $mail = new Mail($this->config->get('config_mail'));
                 $mail->setTo($checkoutObject->Contact->EmailAddress);
                 $mail->setFrom($this->config->get('config_email'));
                 $mail->setSender($this->config->get('config_name'));
                 $mail->setSubject("Seu cadastro foi concluido com sucesso!");
                 $mail->setHtml(html_entity_decode($html, ENT_QUOTES, 'UTF-8'));
                 $mail->send();
                 if ($this->config->get('config_account_mail')) {
                     $mail->setTo($this->config->get('config_email'));
                     $mail->send();
                     $emails = explode(',', $this->config->get('config_mail_alert'));
                     if ($emails) {
                         foreach ($emails as $email) {
                             if ($email && preg_match('/^[^\\@]+@.*.[a-z]{2,15}$/i', $email)) {
                                 $mail->setTo($email);
                                 $mail->send();
                             }
                         }
                     }
                 }
                 //EMAIL
             }
         }
     }
     $data['script_script'] = $this->load->controller('script/script');
     $data['sad'] = serialize($sad);
     $data['EmailCpfDetected'] = $cpf_detected;
     $data['CardHolderName'] = $checkoutObject->Card->CardHolderName;
     $data['AccountNumber'] = $checkoutObject->Card->AccountNumber;
     $data['ExpiryMonth'] = $checkoutObject->Card->ExpiryMonth;
     $data['ExpiryYear'] = $checkoutObject->Card->ExpiryYear;
     $data['BrandName'] = $checkoutObject->Card->BrandName;
     $data['EmailAddress'] = $checkoutObject->Contact->EmailAddress;
     $data['TransactionId'] = $checkoutObject->TransactionId;
     if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/wallet/masterpass_callback.tpl')) {
         $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/wallet/masterpass_callback.tpl', $data));
     } else {
         $this->response->setOutput($this->load->view('default/template/wallet/masterpass_callback.tpl', $data));
     }
 }
Ejemplo n.º 4
0
 public function index()
 {
     $this->document->setPage('checkout');
     $this->language->load('onestepcheckout/checkout');
     if (!$this->request->server['HTTPS'] && $this->config->get('config_secure')) {
         $this->response->redirect(HTTPS_SERVER . URL_CHECKOUT);
     }
     if ($this->request->server['HTTPS']) {
         $server = $this->config->get('config_ssl');
     } else {
         $server = $this->config->get('config_url');
     }
     // VALIDAÇÃO VALOR/QUANTIDADE MINIMA PARA COMPRA NO VAREJO
     $minimum_purchase = $this->cart->hasMinimumPurchase();
     if ($minimum_purchase && (isset($minimum_purchase['requirements']) && !$minimum_purchase['requirements'])) {
         $this->response->redirect($server . URL_CART);
     }
     if (isset($this->session->data['recovered']) && $this->session->data['recovered'] && $this->customer->isLogged()) {
         $this->response->redirect($server . URL_CART);
     }
     // VALIDAÇÃO VALOR/QUANTIDADE MINIMA PARA COMPRA NO VAREJO
     // Validate cart has products and has stock.
     if (!$this->cart->hasProducts() && empty($this->session->data['vouchers']) || !$this->cart->hasStock() && !$this->config->get('config_stock_checkout')) {
         $this->response->redirect($server . URL_CART);
     }
     if (!$this->customer->isLogged() && !isset($this->session->data['login_register'])) {
         $this->session->data['redirect'] = $server . URL_CHECKOUT;
         $this->response->redirect($server . URL_LOGIN);
     }
     $data['contact_url'] = $server . URL_CONTACT;
     $data['cart_url'] = $server . URL_CART;
     if (isset($this->session->data['login_register'])) {
         $data['login_register'] = $this->session->data['login_register'];
     } else {
         $data['login_register'] = '';
     }
     if (isset($this->session->data['error_transaction'])) {
         if (isset($this->session->data['order_id'])) {
             $this->load->model('account/order');
             $this->load->model('checkout/order');
             $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
             $order_products = $this->model_account_order->getOrderProducts($this->session->data['order_id']);
             if (isset($this->session->data['sad'])) {
                 require_once DIR_SYSTEM . 'library/masterpass/WalletWebContent/Controller/MasterPassController.php';
                 $sad = unserialize($this->session->data['sad']);
                 $controller = new MasterPassController($sad);
                 $errorMessage = null;
                 try {
                     $xml = '';
                     $this->load->model('tool/image');
                     if ($order_products) {
                         $subtotal = 0;
                         foreach ($order_products as $product) {
                             $subtotal += $product['price'] * $product['quantity'];
                         }
                         $xml .= '<ShoppingCartRequest>';
                         $xml .= '<OAuthToken></OAuthToken>';
                         $xml .= '<ShoppingCart>';
                         $xml .= '<CurrencyCode>BRL</CurrencyCode>';
                         $xml .= '<Subtotal>' . str_replace('.', '', str_replace(',', '', str_replace('R$ ', '', $this->currency->format($subtotal)))) . '</Subtotal>';
                         foreach ($order_products as $product) {
                             if (isset($product['image']) && $product['image']) {
                                 $image = $this->model_tool_image->resize($product['image'], 400, 400);
                             } else {
                                 $image = $this->model_tool_image->resize('placeholder.png', 400, 400);
                             }
                             $xml .= '<ShoppingCartItem>';
                             $xml .= '<Description>' . $product['name'] . '</Description>';
                             $xml .= '<Quantity>' . $product['quantity'] . '</Quantity>';
                             $xml .= '<Value>' . str_replace('.', '', str_replace(',', '', str_replace('R$ ', '', $this->currency->format($product['price'])))) . '</Value>';
                             $xml .= '<ImageURL>' . $image . '</ImageURL>';
                             $xml .= '</ShoppingCartItem>';
                         }
                         $xml .= '</ShoppingCart>';
                         $xml .= '<OriginUrl></OriginUrl>';
                         $xml .= '</ShoppingCartRequest>';
                     }
                     //Success or Failure
                     $sad = $controller->logTransaction($this->session->data['checkoutObjectCard']['TransactionId'], $xml, 'Failure', str_replace('.', '', str_replace(',', '', str_replace('R$ ', '', $this->currency->format($order_info['total'])))));
                 } catch (Exception $e) {
                     exit($e->getCode() . '<br>' . $e->getMessage());
                 }
             }
         }
         $data['error_transaction'] = true;
     }
     //Masterpass
     if (isset($this->session->data['EmailCpfDetected'])) {
         $data['EmailCpfDetected'] = $this->session->data['EmailCpfDetected'];
         $data['EmailMasterpass'] = $this->session->data['checkoutObjectCard']['EmailAddress'];
     } else {
         $data['EmailCpfDetected'] = false;
     }
     if (isset($this->session->data['checkoutObjectCard'])) {
         $data['masterpass'] = true;
     } else {
         unset($this->session->data['sad']);
         $data['masterpass'] = false;
     }
     //Masterpass
     $data['button_confirm'] = $this->language->get('button_confirm');
     $data['button_continue'] = $this->language->get('button_continue');
     $products = $this->cart->getProducts();
     foreach ($products as $product) {
         $product_total = 0;
         foreach ($products as $product_2) {
             if ($product_2['product_id'] == $product['product_id']) {
                 $product_total += $product_2['quantity'];
             }
         }
         if ($product['minimum'] > $product_total) {
             $this->response->redirect($this->url->link('checkout/cart'));
         }
     }
     if (isset($this->session->data['error'])) {
         $data['error_warning'] = $this->session->data['error'];
         unset($this->session->data['error']);
     } else {
         $data['error_warning'] = '';
     }
     unset($this->session->data['guest']);
     unset($this->session->data['postcode_logout']);
     unset($this->session->data['zone_id_logout']);
     unset($this->session->data['shipping_zone_id']);
     unset($this->session->data['shipping_postcode']);
     $this->document->setTitle($this->language->get('heading_title'));
     $this->document->addScript('catalog/view/javascript/jquery/tooltip/jquery.tooltip.min.js');
     $this->document->addStyle('catalog/view/javascript/jquery/tooltip/jquery.tooltip.css');
     $this->document->addScript('catalog/view/javascript/jquery/magnific/jquery.magnific-popup.min.js');
     $this->document->addStyle('catalog/view/javascript/jquery/magnific/magnific-popup.css');
     $this->document->addScript('catalog/view/javascript/jquery/jquery.complexify.js');
     $this->document->addStyle('catalog/view/theme/default/stylesheet/onestepcheckout.css?v=2');
     $this->document->addScript('catalog/view/javascript/pagseguro/pagseguroapi.js');
     $this->document->addScript('https://www.paypalobjects.com/webstatic/ppplusdcc/ppplusdcc.min.js');
     $this->document->addScript('https://secure.mlstatic.com/sdk/javascript/v1/mercadopago.js');
     $data['breadcrumbs'] = array();
     $data['breadcrumbs'][] = array('text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home'), 'separator' => false);
     $data['breadcrumbs'][] = array('text' => $this->language->get('text_cart'), 'href' => $this->url->link('checkout/cart'), 'separator' => $this->language->get('text_separator'));
     $data['breadcrumbs'][] = array('text' => $this->language->get('heading_title'), 'href' => $this->url->link('onestepcheckout/checkout', '', 'SSL'), 'separator' => $this->language->get('text_separator'));
     $data['heading_title'] = $this->language->get('heading_title');
     $data['text_checkout_option'] = $this->language->get('text_checkout_option');
     $data['text_checkout_account'] = $this->language->get('text_checkout_account');
     $data['text_checkout_payment_address'] = $this->language->get('text_checkout_payment_address');
     $data['text_checkout_shipping_address'] = $this->language->get('text_checkout_shipping_address');
     $data['text_checkout_shipping_method'] = $this->language->get('text_checkout_shipping_method');
     $data['text_checkout_payment_method'] = $this->language->get('text_checkout_payment_method');
     $data['text_checkout_confirm'] = $this->language->get('text_checkout_confirm');
     $data['text_modify'] = $this->language->get('text_modify');
     $data['text_your_details'] = $this->language->get('text_your_details');
     $data['text_alredy_registred'] = $this->language->get('text_alredy_registred');
     $data['text_ckb_delivery'] = $this->language->get('text_ckb_delivery');
     $data['text_delivery_addresses'] = $this->language->get('text_delivery_addresses');
     $data['text_ckb_billing'] = $this->language->get('text_ckb_billing');
     $data['text_billing_adresses'] = $this->language->get('text_billing_adresses');
     $data['text_create_account'] = $this->language->get('text_create_account');
     $data['text_shipping_meth'] = $this->language->get('text_shipping_meth');
     $data['text_payment_meth'] = $this->language->get('text_payment_meth');
     $data['text_confirm_order'] = $this->language->get('text_confirm_order');
     $data['text_express_checkout'] = $this->language->get('text_express_checkout');
     $data['text_header_info'] = $this->language->get('text_header_info');
     $data['order_now'] = $this->language->get('order_now');
     $data['style_div'] = "";
     $data['placeholder_firstname'] = $this->language->get('placeholder_firstname');
     $data['placeholder_razao'] = $this->language->get('placeholder_razao');
     $data['placeholder_lastname'] = $this->language->get('placeholder_lastname');
     $data['placeholder_fantasy'] = $this->language->get('placeholder_fantasy');
     $data['placeholder_cpf'] = $this->language->get('placeholder_cpf');
     $data['placeholder_cnpj'] = $this->language->get('placeholder_cnpj');
     $data['placeholder_birthday'] = $this->language->get('placeholder_birthday');
     $data['placeholder_cellphone'] = $this->language->get('placeholder_cellphone');
     $data['placeholder_telephone'] = $this->language->get('placeholder_telephone');
     $data['placeholder_email'] = $this->language->get('placeholder_email');
     $data['placeholder_password'] = $this->language->get('placeholder_password');
     $data['placeholder_confirm'] = $this->language->get('placeholder_confirm');
     $data['placeholder_postcode'] = $this->language->get('placeholder_postcode');
     $data['placeholder_address_1'] = $this->language->get('placeholder_address_1');
     $data['placeholder_number_home'] = $this->language->get('placeholder_number_home');
     $data['placeholder_address_2'] = $this->language->get('placeholder_address_2');
     $data['placeholder_neighborhood'] = $this->language->get('placeholder_neighborhood');
     $data['placeholder_city'] = $this->language->get('placeholder_city');
     $data['placeholder_rg'] = $this->language->get('placeholder_rg');
     $data['placeholder_ie'] = $this->language->get('placeholder_ie');
     $setting = $this->config->get("onestepcheckout");
     if (!empty($setting)) {
         if (!empty($setting[$this->config->get('config_language_id')]["header_title"])) {
             $data['text_express_checkout'] = trim($setting[$this->config->get('config_language_id')]["header_title"]);
         }
         if (!empty($setting[$this->config->get('config_language_id')]["header_info"])) {
             $data['text_header_info'] = trim($setting[$this->config->get('config_language_id')]["header_info"]);
         }
         if (!empty($setting[$this->config->get('config_language_id')]["background_color"])) {
             $data['style_div'] = "background-color: " . trim($setting[$this->config->get('config_language_id')]["background_color"]) . ";";
         }
     }
     $data['entry_firstname'] = $this->language->get('entry_firstname');
     $data['entry_lastname'] = $this->language->get('entry_lastname');
     $data['entry_email_address'] = $this->language->get('entry_email_address');
     $data['entry_telephone'] = $this->language->get('entry_telephone');
     $data['entry_address_1'] = $this->language->get('entry_address_1');
     $data['entry_address_2'] = $this->language->get('entry_address_2');
     $data['entry_cellphone'] = $this->language->get('entry_cellphone');
     $data['entry_country'] = $this->language->get('entry_country');
     $data['entry_postcode'] = $this->language->get('entry_postcode');
     $data['entry_city'] = $this->language->get('entry_city');
     $data['entry_zone'] = $this->language->get('entry_zone');
     $data['entry_password'] = $this->language->get('entry_password');
     $data['entry_confirm'] = $this->language->get('entry_confirm');
     $data['entry_customer_group'] = $this->language->get('entry_customer_group');
     $data['entry_newsletter'] = sprintf($this->language->get('entry_newsletter'), $this->config->get('config_name'));
     $data['text_comments'] = $this->language->get('text_comments');
     $data['action'] = $this->url->link('account/forgotten', '', 'SSL');
     $this->language->load('account/forgotten');
     $data['text_your_email'] = $this->language->get('text_your_email');
     $data['text_email'] = $this->language->get('text_email');
     $data['entry_email'] = $this->language->get('entry_email');
     $data['button_continue'] = $this->language->get('button_continue');
     $data['button_back'] = $this->language->get('button_back');
     $data['text_select'] = $this->language->get('text_select');
     $data['text_none'] = $this->language->get('text_none');
     $data['type_login'] = $this->config->get('config_type_login');
     $data['parcel_simulator'] = $this->config->get('config_parcel_simulator');
     $data['cash_discount'] = $this->config->get('config_cash_discount');
     //Agree text
     if ($this->config->get('config_checkout_id')) {
         $this->load->model('catalog/information');
         $information_info = $this->model_catalog_information->getInformation($this->config->get('config_checkout_id'));
         if ($information_info) {
             $data['checkout_text_agree'] = sprintf($this->language->get('text_agree'), $this->url->link('information/information/info', 'information_id=' . $this->config->get('config_checkout_id'), 'SSL'), $information_info['title'], $information_info['title']);
         } else {
             $data['checkout_text_agree'] = '';
         }
     } else {
         $data['checkout_text_agree'] = '';
     }
     if ($this->config->get('config_account_id')) {
         $this->load->model('catalog/information');
         $information_info = $this->model_catalog_information->getInformation($this->config->get('config_account_id'));
         if ($information_info) {
             $data['account_text_agree'] = sprintf($this->language->get('text_agree'), $this->url->link('information/information/info', 'information_id=' . $this->config->get('config_account_id'), 'SSL'), $information_info['title'], $information_info['title']);
         } else {
             $data['account_text_agree'] = '';
         }
     } else {
         $data['account_text_agree'] = '';
     }
     if (isset($this->session->data['checkout_agree'])) {
         $data['checkout_agree'] = $this->session->data['checkout_agree'];
     } else {
         $data['checkout_agree'] = '';
     }
     if (isset($this->session->data['account_agree'])) {
         $data['account_agree'] = $this->session->data['account_agree'];
     } else {
         $data['account_agree'] = '';
     }
     //Addresses
     $data['text_address_new'] = $this->language->get('text_address_new');
     $this->load->model('account/address');
     $acount_addresses = $this->model_account_address->getAddresses();
     $addresses = array();
     $form_dell = array();
     $form_bill = array();
     $address_id = "";
     foreach ($acount_addresses as $key => $address) {
         $address_id = $key;
         break;
     }
     foreach ($acount_addresses as $key => $address) {
         $name = $address['firstname'] . " " . $address['lastname'] . " - " . $address['address_1'] . ", " . $address['number_home'] . " " . $address['neighborhood'] . " -  " . $address['city'] . "/" . $address['zone'] . ' (' . $address['postcode'] . ')';
         $postcode = $address['postcode'];
         $addresses[$key]['name'] = $name;
         $form_dell[$key] = $name;
         $form_bill[$key] = $name;
     }
     if (isset($this->session->data['shipping_address_id'])) {
         $data['address_id'] = $this->session->data['shipping_address_id'];
     } else {
         $data['address_id'] = $address_id;
     }
     $data['shipping_addresses'] = array();
     $data['selected_shipping'] = "";
     $data['form_dell'] = "[]";
     if (isset($this->session->data['shipping_temp'])) {
         $data['shipping_addresses'] = $addresses + $this->session->data['shipping_temp'];
         if (isset($this->session->data['shipping_temp']['active'])) {
             $data['selected_shipping'] = $this->session->data['shipping_temp']['active'];
         }
         foreach ($this->session->data['shipping_temp'] as $key => $val) {
             if (isset($val["name"])) {
                 $form_dell[$key] = $val["name"];
             }
         }
     } else {
         $data['shipping_addresses'] = $addresses;
     }
     $data['form_dell'] = json_encode($form_dell);
     $data['payment_addresses'] = array();
     $data['selected_payment'] = "";
     $data['form_bill'] = "[]";
     if (isset($this->session->data['payment_temp'])) {
         $data['payment_addresses'] = $addresses + $this->session->data['payment_temp'];
         if (isset($this->session->data['payment_temp']['active'])) {
             $data['selected_payment'] = $this->session->data['payment_temp']['active'];
         }
         foreach ($this->session->data['payment_temp'] as $key => $val) {
             if (isset($val['name'])) {
                 $form_bill[$key] = $val['name'];
             }
         }
     } else {
         $data['payment_addresses'] = $addresses;
     }
     $data['form_bill'] = json_encode($form_bill);
     $data['address_1'] = "";
     $data['cellphone'] = "";
     $data['neighborhood'] = "";
     $data['number_home'] = "";
     $data['address_2'] = "";
     $data['country_id'] = "";
     $data['zone_id'] = "";
     $data['city'] = "";
     $data['postcode'] = "";
     $data['type_person'] = "";
     $data['cpf_cnpj'] = "";
     $data['rg_ie'] = "";
     $data['sex'] = "";
     $data['birthday'] = "";
     $data['password'] = "";
     $data['confirm'] = "";
     $data['firstname_address'] = '';
     $data['lastname_address'] = '';
     $data['collection_address_format'] = '';
     if ($this->customer->isLogged()) {
         $data['is_logged'] = true;
         $data['firstname'] = $this->customer->getFirstname();
         $data['lastname'] = $this->customer->getLastname();
         $data['email'] = $this->customer->getEmail();
         $data['telephone'] = $this->customer->getTelephone();
         $data['cellphone'] = $this->customer->getCellphone();
         $data['type_person'] = $this->customer->getTypePerson();
         $data['cpf_cnpj'] = $this->customer->getCpfCnpj();
         $data['rg_ie'] = $this->customer->getRgIe();
         $data['sex'] = $this->customer->getSex();
         $data['birthday'] = $this->customer->getBirthday();
         $this->session->data['shipping_address_id'] = $this->customer->getAddressId();
         $this->session->data['payment_address_id'] = $this->customer->getAddressId();
         $this->load->model('account/address');
         $address_info = $this->model_account_address->getAddress($this->customer->getAddressId());
         if ($address_info) {
             if ($this->config->get('config_tax_customer') == 'shipping') {
                 $this->session->data['shipping_country_id'] = $address_info['country_id'];
                 $this->session->data['shipping_zone_id'] = $address_info['zone_id'];
                 $this->session->data['shipping_postcode'] = $address_info['postcode'];
             }
             if ($this->config->get('config_tax_customer') == 'payment') {
                 $this->session->data['payment_country_id'] = $address_info['country_id'];
                 $this->session->data['payment_zone_id'] = $address_info['zone_id'];
             }
             $data['firstname_address'] = $address_info["firstname"];
             $data['lastname_address'] = $address_info["lastname"];
             $data['address_1'] = $address_info["address_1"];
             $data['neighborhood'] = $address_info["neighborhood"];
             $data['number_home'] = $address_info["number_home"];
             $data['address_2'] = $address_info["address_2"];
             $data['country_id'] = $address_info["country_id"];
             $data['zone_id'] = $address_info["zone_id"];
             $data['zone_code'] = $address_info["zone_code"];
             $data['city'] = $address_info["city"];
             $data['postcode'] = $address_info["postcode"];
             $collection_address_format = '<b>' . $data['firstname_address'] . ' ' . $data['lastname_address'] . '</b><br/>';
             $collection_address_format .= $data['address_1'] . ', ' . $data['number_home'] . ' ' . $data['address_2'] . '<br/>';
             $collection_address_format .= $data['neighborhood'] . ' - ' . $data['city'] . '/' . $data['zone_code'] . '<br/>';
             $collection_address_format .= $address_info["postcode"] . '<br/>';
             $data['collection_address_format'] = $collection_address_format;
         }
     } else {
         $data['is_logged'] = false;
         if (isset($this->session->data['guest']['firstname'])) {
             $data['firstname'] = $this->session->data['guest']['firstname'];
         } else {
             $data['firstname'] = '';
         }
         if (isset($this->session->data['guest']['lastname'])) {
             $data['lastname'] = $this->session->data['guest']['lastname'];
         } else {
             $data['lastname'] = '';
         }
         if (isset($this->session->data['email_login'])) {
             $data['email'] = $this->session->data['email_login'];
             unset($this->session->data['email_login']);
         } else {
             $data['email'] = '';
         }
         if (isset($this->session->data['guest']['telephone'])) {
             $data['telephone'] = $this->session->data['guest']['telephone'];
         } else {
             $data['telephone'] = '';
         }
         if (isset($this->session->data['guest']['cellphone'])) {
             $data['cellphone'] = $this->session->data['guest']['cellphone'];
         } else {
             $data['cellphone'] = '';
         }
         if (isset($this->session->data['cpf_cnpj_login'])) {
             $data['cpf_cnpj'] = $this->session->data['cpf_cnpj_login'];
             unset($this->session->data['cpf_cnpj_login']);
         } else {
             $data['cpf_cnpj'] = '';
         }
         if (isset($this->session->data['type_person_login'])) {
             $data['type_person'] = $this->session->data['type_person_login'];
             unset($this->session->data['type_person_login']);
         } else {
             $data['type_person'] = '';
         }
     }
     if (isset($this->session->data['comment'])) {
         $data['comment'] = $this->session->data['comment'];
     } else {
         $data['comment'] = '';
     }
     $this->load->model('localisation/country');
     $data['countries'] = $this->model_localisation_country->getCountries();
     $this->load->model('localisation/zone');
     $zone = $this->model_localisation_zone->getZonesByCountryId($data['country_id']);
     $data['zone_html'] = '';
     if (!empty($zone)) {
         $html = "";
         foreach ($zone as $key => $val) {
             $html .= '<option value="' . $val['zone_id'] . '"';
             if ($val['zone_id'] == $data['zone_id']) {
                 $html .= ' selected="selected"';
             }
             $html .= '>' . $val["name"] . '</option>';
         }
     } else {
         $html = '<option value="0" selected="selected">' . $data["text_none"] . '</option>';
     }
     $data['zone_html'] = $html;
     $data['logged'] = $this->customer->isLogged();
     $data['shipping_required'] = $this->cart->hasShipping();
     $points = 0;
     $data['entry_coupon'] = $this->language->get('entry_coupon');
     $data['text_use_coupon'] = $this->language->get('text_use_coupon');
     $data['text_use_voucher'] = $this->language->get('text_use_voucher');
     $data['entry_voucher'] = $this->language->get('entry_voucher');
     $data['text_use_reward'] = '';
     $data['entry_reward'] = '';
     if ($this->cart->hasProducts() || !empty($this->session->data['vouchers'])) {
         $this->language->load('checkout/cart');
         $points = $this->customer->getRewardPoints();
         $points_total = 0;
         foreach ($this->cart->getProducts() as $product) {
             if ($product['points']) {
                 $points_total += $product['points'];
             }
         }
         $data['text_use_reward'] = sprintf($this->language->get('text_use_reward'), $points);
         $data['entry_reward'] = sprintf($this->language->get('entry_reward'), $points_total);
     }
     $this->load->model('account/customer_group');
     $data['customer_groups'] = array();
     if (is_array($this->config->get('config_customer_group_display'))) {
         $this->load->model('account/customer_group');
         $customer_groups = $this->model_account_customer_group->getCustomerGroups();
         foreach ($customer_groups as $customer_group) {
             if (in_array($customer_group['customer_group_id'], $this->config->get('config_customer_group_display'))) {
                 $data['customer_groups'][] = $customer_group;
             }
         }
     }
     if (isset($this->session->data['guest']['customer_group_id'])) {
         $data['customer_group_id'] = $this->session->data['guest']['customer_group_id'];
     } else {
         $data['customer_group_id'] = $this->config->get('config_customer_group_id');
     }
     if (isset($this->session->data['guest']['payment']['country_id'])) {
         $data['country_id'] = $this->session->data['guest']['payment']['country_id'];
     } elseif (isset($this->session->data['shipping_country_id'])) {
         $data['country_id'] = $this->session->data['shipping_country_id'];
     } else {
         $data['country_id'] = $this->config->get('config_country_id');
     }
     if (isset($this->session->data['guest']['payment']['zone_id'])) {
         $data['zone_id'] = $this->session->data['guest']['payment']['zone_id'];
     } elseif (isset($this->session->data['shipping_zone_id'])) {
         $data['zone_id'] = $this->session->data['shipping_zone_id'];
     } else {
         $data['zone_id'] = '';
     }
     $this->load->model('checkout/coupon');
     $data['coupon_activate'] = $this->model_checkout_coupon->getCouponActivate();
     $data['coupon_status'] = $this->config->get('coupon_status');
     if (isset($this->request->post['coupon'])) {
         $data['coupon'] = $this->request->post['coupon'];
     } elseif (isset($this->session->data['coupon'])) {
         $data['coupon'] = $this->session->data['coupon'];
     } else {
         $data['coupon'] = '';
     }
     $this->load->model('checkout/voucher');
     $data['voucher_activate'] = $this->model_checkout_voucher->getVoucherActivate();
     $data['voucher_status'] = $this->config->get('voucher_status');
     if (isset($this->request->post['voucher'])) {
         $data['voucher'] = $this->request->post['voucher'];
     } elseif (isset($this->session->data['voucher'])) {
         $data['voucher'] = $this->session->data['voucher'];
     } else {
         $data['voucher'] = '';
     }
     $data['points_customer'] = $this->customer->getRewardPoints();
     $data['reward_status'] = $points && $points_total && $this->config->get('config_points_fidelity');
     if (isset($this->request->post['reward'])) {
         $data['reward'] = $this->request->post['reward'];
     } elseif (isset($this->session->data['reward'])) {
         $data['reward'] = $this->session->data['reward'];
     } else {
         $data['reward'] = '';
     }
     $data['column_left'] = $this->load->controller('common/column_left');
     $data['column_right'] = $this->load->controller('common/column_right');
     $data['content_top'] = $this->load->controller('common/content_top');
     $data['content_bottom'] = $this->load->controller('common/content_bottom');
     $data['footer'] = $this->load->controller('common/footer');
     $data['header'] = $this->load->controller('common/header');
     if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/onestepcheckout/checkout.tpl')) {
         $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/onestepcheckout/checkout.tpl', $data));
     } else {
         $this->response->setOutput($this->load->view('default/template/onestepcheckout/checkout.tpl', $data));
     }
 }