class ControllerExtensionShippingCorreios extends Controller { private $error = array(); public function index() { $this->load->language('extension/shipping/correios'); $this->document->setTitle($this->language->get('heading_title')); $this->load->model('setting/setting'); $this->load->model('extension/shipping/correios'); if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { $this->model_setting_setting->editSetting('shipping_correios', $this->request->post); $this->model_extension_shipping_correios->deleteServicos($this->request->post['shipping_correios_servicos']); // somente redireciona se o Submit não tenha sido feito para editar a tabela offline if (!isset($this->request->get['codigo'])) { $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true)); } } $data['correios_version'] = 'v5.0.3 - 21/09/2023'; if (isset($this->error['warning'])) { $data['error_warning'] = $this->error['warning']; } else { $data['error_warning'] = ''; } if (isset($this->error['required'])) { $data['error_required'] = $this->error['required']; } else { $data['error_required'] = ''; } if (isset($this->error['chave'])) { $data['error_chave'] = $this->error['chave']; } else { $data['error_chave'] = ''; } if (isset($this->error['result'])) { $data['error_result'] = $this->error['result']; } else { $data['error_result'] = ''; } if (isset($this->error['usuario'])) { $data['error_usuario'] = $this->error['usuario']; } else { $data['error_usuario'] = ''; } if (isset($this->error['senha'])) { $data['error_senha'] = $this->error['senha']; } else { $data['error_senha'] = ''; } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_extension'), 'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true) ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true) ); $data['action'] = $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true); $data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true); if (isset($this->request->post['shipping_correios_servicos'])) { $data['shipping_correios_servicos'] = $this->request->post['shipping_correios_servicos']; } else { $data['shipping_correios_servicos'] = $this->config->get('shipping_correios_servicos'); } if (empty($data['shipping_correios_servicos'])) { $data['shipping_correios_servicos'] = array(); } if (isset($this->request->post['shipping_correios_faixas'])) { $data['shipping_correios_faixas'] = $this->request->post['shipping_correios_faixas']; } else { $data['shipping_correios_faixas'] = $this->config->get('shipping_correios_faixas'); } if (empty($data['shipping_correios_faixas'])) { $data['shipping_correios_faixas'] = array(); } if (isset($this->request->post['shipping_correios_adicional'])) { $data['shipping_correios_adicional'] = $this->request->post['shipping_correios_adicional']; } else { $data['shipping_correios_adicional'] = $this->config->get('shipping_correios_adicional'); } if (empty($data['shipping_correios_adicional'])) { $data['shipping_correios_adicional'] = array(); } if (isset($this->request->post['shipping_correios_gratis_estados'])) { $data['shipping_correios_gratis_estados'] = $this->request->post['shipping_correios_gratis_estados']; } else { $data['shipping_correios_gratis_estados'] = $this->config->get('shipping_correios_gratis_estados'); } if (empty($data['shipping_correios_gratis_estados'])) { $data['shipping_correios_gratis_estados'] = array(); } if (isset($this->request->post['shipping_correios_gratis_produtos'])) { $data['shipping_correios_gratis_produtos'] = $this->request->post['shipping_correios_gratis_produtos']; } else { $data['shipping_correios_gratis_produtos'] = $this->config->get('shipping_correios_gratis_produtos'); } $data['product_categories'] = array(); $data['product_manufacturers'] = array(); $data['product_products'] = array(); if (empty($data['shipping_correios_gratis_produtos'])) { $data['shipping_correios_gratis_produtos'] = array(); } else { $this->load->model('catalog/category'); $this->load->model('catalog/manufacturer'); $this->load->model('catalog/product'); foreach ($data['shipping_correios_gratis_produtos'] as $key => $row) { if (isset($row['categorias']) && is_array($row['categorias'])) { foreach ($row['categorias'] as $category_id) { $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $data['product_categories'][$key][] = array( 'category_id' => $category_info['category_id'], 'name' => ($category_info['path']) ? $category_info['path'] . ' > ' . $category_info['name'] : $category_info['name'] ); } } } if (isset($row['marcas']) && is_array($row['marcas'])) { foreach ($row['marcas'] as $manufacturer_id) { $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($manufacturer_id); if ($manufacturer_info) { $data['product_manufacturers'][$key][] = array( 'manufacturer_id' => $manufacturer_info['manufacturer_id'], 'name' => $manufacturer_info['name'] ); } } } if (isset($row['produtos']) && is_array($row['produtos'])) { foreach ($row['produtos'] as $product_id) { $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { $data['product_products'][$key][] = array( 'product_id' => $product_info['product_id'], 'name' => $product_info['name'] ); } } } } } if (isset($this->request->post['shipping_correios_gratis_cep'])) { $data['shipping_correios_gratis_cep'] = $this->request->post['shipping_correios_gratis_cep']; } else { $data['shipping_correios_gratis_cep'] = $this->config->get('shipping_correios_gratis_cep'); } if (empty($data['shipping_correios_gratis_cep'])) { $data['shipping_correios_gratis_cep'] = array(); } if (isset($this->request->post['shipping_correios_msg_restricao'])) { $data['shipping_correios_msg_restricao'] = $this->request->post['shipping_correios_msg_restricao']; } else { $data['shipping_correios_msg_restricao'] = $this->config->get('shipping_correios_msg_restricao'); } if (isset($this->request->post['shipping_correios_status'])) { $data['shipping_correios_status'] = $this->request->post['shipping_correios_status']; } else { $data['shipping_correios_status'] = $this->config->get('shipping_correios_status'); } if (isset($this->request->post['shipping_correios_tax_class_id'])) { $data['shipping_correios_tax_class_id'] = $this->request->post['shipping_correios_tax_class_id']; } else { $data['shipping_correios_tax_class_id'] = $this->config->get('shipping_correios_tax_class_id'); } if (isset($this->request->post['shipping_correios_geo_zone_id'])) { $data['shipping_correios_geo_zone_id'] = $this->request->post['shipping_correios_geo_zone_id']; } else { $data['shipping_correios_geo_zone_id'] = $this->config->get('shipping_correios_geo_zone_id'); } if (isset($this->request->post['shipping_correios_sort_order'])) { $data['shipping_correios_sort_order'] = $this->request->post['shipping_correios_sort_order']; } else { $data['shipping_correios_sort_order'] = $this->config->get('shipping_correios_sort_order'); } if (isset($this->request->post['shipping_correios_chave'])) { $data['shipping_correios_chave'] = $this->request->post['shipping_correios_chave']; } else { $data['shipping_correios_chave'] = $this->config->get('shipping_correios_chave'); } if (isset($this->request->post['shipping_correios_api_usuario'])) { $data['shipping_correios_api_usuario'] = $this->request->post['shipping_correios_api_usuario']; } else { $data['shipping_correios_api_usuario'] = $this->config->get('shipping_correios_api_usuario'); } if (isset($this->request->post['shipping_correios_api_senha'])) { $data['shipping_correios_api_senha'] = $this->request->post['shipping_correios_api_senha']; } else { $data['shipping_correios_api_senha'] = $this->config->get('shipping_correios_api_senha'); } if (isset($this->request->post['shipping_correios_api_cartao_postagem'])) { $data['shipping_correios_api_cartao_postagem'] = $this->request->post['shipping_correios_api_cartao_postagem']; } else { $data['shipping_correios_api_cartao_postagem'] = $this->config->get('shipping_correios_api_cartao_postagem'); } if (isset($this->request->post['shipping_correios_api_codigo_contrato'])) { $data['shipping_correios_api_codigo_contrato'] = $this->request->post['shipping_correios_api_codigo_contrato']; } else { $data['shipping_correios_api_codigo_contrato'] = $this->config->get('shipping_correios_api_codigo_contrato'); } if (isset($this->request->post['shipping_correios_log'])) { $data['shipping_correios_log'] = $this->request->post['shipping_correios_log']; } else { $data['shipping_correios_log'] = $this->config->get('shipping_correios_log'); } if (isset($this->request->post['shipping_correios_log_debug'])) { $data['shipping_correios_log_debug'] = $this->request->post['shipping_correios_log_debug']; } else { $data['shipping_correios_log_debug'] = $this->config->get('shipping_correios_log_debug'); } $this->load->model('localisation/tax_class'); $data['tax_classes'] = $this->model_localisation_tax_class->getTaxClasses(); $this->load->model('localisation/geo_zone'); $data['geo_zones'] = $this->model_localisation_geo_zone->getGeoZones(); $this->load->model('localisation/zone'); $data['zones'] = $this->model_localisation_zone->getZonesByCountryId($this->config->get('config_country_id')); $data['user_token'] = $this->session->data['user_token']; $data['status_licenca'] = $this->model_extension_shipping_correios->out(); $data['header'] = $this->load->controller('common/header'); $data['column_left'] = $this->load->controller('common/column_left'); $data['footer'] = $this->load->controller('common/footer'); $this->response->setOutput($this->load->view('extension/shipping/correios', $data)); } protected function validate() { if (!$this->user->hasPermission('modify', 'extension/shipping/correios')) { $this->error['warning'] = $this->language->get('error_permission'); } if (!isset($this->request->post['shipping_correios_chave']) || (utf8_strlen(trim($this->request->post['shipping_correios_chave'])) != 24)) { $this->error['chave'] = $this->language->get('error_chave'); } if (!isset($this->request->post['shipping_correios_api_usuario']) || (utf8_strlen(trim($this->request->post['shipping_correios_api_usuario'])) < 1)) { $this->error['usuario'] = $this->language->get('error_usuario'); } if (!isset($this->request->post['shipping_correios_api_senha']) || (utf8_strlen(trim($this->request->post['shipping_correios_api_senha'])) < 1)) { $this->error['senha'] = $this->language->get('error_senha'); } if (isset($this->request->post['shipping_correios_chave']) && (utf8_strlen(trim($this->request->post['shipping_correios_chave'])) == 24)) { $status = $this->model_extension_shipping_correios->out(); if (!$status) { $this->error['result'] = $this->language->get('error_result'); } } return !$this->error; } public function tabela() { $this->load->language('extension/shipping/correios_tabela'); $this->document->setTitle($this->language->get('heading_title_tabela')); if (isset($this->request->get['codigo'])) { $codigo = $this->request->get['codigo']; } else { $codigo = ''; } if (isset($this->request->get['cep_origem'])) { $cep_origem = preg_replace("/[^0-9]/", '', $this->request->get['cep_origem']); } else { $cep_origem = ''; } $this->load->model('extension/shipping/correios'); if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) { $this->model_extension_shipping_correios->editTabela($codigo, $cep_origem, $this->request->post); $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true)); } $this->getTabelaForm(); } public function getTabelaForm() { if (isset($this->request->get['codigo'])) { $codigo = $this->request->get['codigo']; } else { $codigo = ''; } if (isset($this->request->get['cep_origem'])) { $cep_origem = preg_replace("/[^0-9]/", '', $this->request->get['cep_origem']); } else { $cep_origem = ''; } $data['text_form'] = sprintf($this->language->get('text_edit'), $codigo, $cep_origem); if (isset($this->error['warning'])) { $data['error_warning'] = $this->error['warning']; } else { $data['error_warning'] = ''; } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_extension'), 'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true) ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true) ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title_tabela'), 'href' => $this->url->link('extension/shipping/correios/tabela', 'user_token=' . $this->session->data['user_token'] . '&codigo=' . $codigo . '&cep_origem=' . $cep_origem, true) ); $this->load->model('extension/shipping/correios'); if ($this->request->server['REQUEST_METHOD'] != 'POST') { $tabela_info = $this->model_extension_shipping_correios->getServico($codigo, $cep_origem); } $data['action'] = $this->url->link('extension/shipping/correios/tabela', 'user_token=' . $this->session->data['user_token'] . '&codigo=' . $codigo . '&cep_origem=' . $cep_origem, true); $data['cancel'] = $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true); if (isset($this->request->post['max_peso_real'])) { $data['max_peso_real'] = $this->request->post['max_peso_real']; } elseif (!empty($tabela_info)) { $data['max_peso_real'] = $tabela_info['max_peso_real']; } else { $data['max_peso_real'] = ''; } if (isset($this->request->post['ad_valorem'])) { $data['ad_valorem'] = $this->request->post['ad_valorem']; } elseif (!empty($tabela_info)) { $data['ad_valorem'] = $tabela_info['ad_valorem']; } else { $data['ad_valorem'] = ''; } if (isset($this->request->post['aviso_recebimento'])) { $data['aviso_recebimento'] = $this->request->post['aviso_recebimento']; } elseif (!empty($tabela_info)) { $data['aviso_recebimento'] = $tabela_info['aviso_recebimento']; } else { $data['aviso_recebimento'] = ''; } if (isset($this->request->post['mao_propria'])) { $data['mao_propria'] = $this->request->post['mao_propria']; } elseif (!empty($tabela_info)) { $data['mao_propria'] = $tabela_info['mao_propria']; } else { $data['mao_propria'] = ''; } if (isset($this->request->post['a_cobrar_vpne'])) { $data['a_cobrar_vpne'] = $this->request->post['a_cobrar_vpne']; } elseif (!empty($tabela_info)) { $data['a_cobrar_vpne'] = $tabela_info['a_cobrar_vpne']; } else { $data['a_cobrar_vpne'] = ''; } if (isset($this->request->post['taxa_emergencial'])) { $data['taxa_emergencial'] = $this->request->post['taxa_emergencial']; } elseif (!empty($tabela_info)) { $data['taxa_emergencial'] = $tabela_info['taxa_emergencial']; } else { $data['taxa_emergencial'] = ''; } if (isset($this->request->post['lx_adicional_kg'])) { $data['lx_adicional_kg'] = $this->request->post['lx_adicional_kg']; } elseif (!empty($tabela_info)) { $data['lx_adicional_kg'] = $tabela_info['lx_adicional_kg']; } else { $data['lx_adicional_kg'] = ''; } if (isset($this->request->post['ex_adicional_kg'])) { $data['ex_adicional_kg'] = $this->request->post['ex_adicional_kg']; } elseif (!empty($tabela_info)) { $data['ex_adicional_kg'] = $tabela_info['ex_adicional_kg']; } else { $data['ex_adicional_kg'] = ''; } if (isset($this->request->post['i1_adicional_kg'])) { $data['i1_adicional_kg'] = $this->request->post['i1_adicional_kg']; } elseif (!empty($tabela_info)) { $data['i1_adicional_kg'] = $tabela_info['i1_adicional_kg']; } else { $data['i1_adicional_kg'] = ''; } if (isset($this->request->post['i2_adicional_kg'])) { $data['i2_adicional_kg'] = $this->request->post['i2_adicional_kg']; } elseif (!empty($tabela_info)) { $data['i2_adicional_kg'] = $tabela_info['i2_adicional_kg']; } else { $data['i2_adicional_kg'] = ''; } if (isset($this->request->post['i3_adicional_kg'])) { $data['i3_adicional_kg'] = $this->request->post['i3_adicional_kg']; } elseif (!empty($tabela_info)) { $data['i3_adicional_kg'] = $tabela_info['i3_adicional_kg']; } else { $data['i3_adicional_kg'] = ''; } if (isset($this->request->post['i4_adicional_kg'])) { $data['i4_adicional_kg'] = $this->request->post['i4_adicional_kg']; } elseif (!empty($tabela_info)) { $data['i4_adicional_kg'] = $tabela_info['i4_adicional_kg']; } else { $data['i4_adicional_kg'] = ''; } if (isset($this->request->post['i5_adicional_kg'])) { $data['i5_adicional_kg'] = $this->request->post['i5_adicional_kg']; } elseif (!empty($tabela_info)) { $data['i5_adicional_kg'] = $tabela_info['i5_adicional_kg']; } else { $data['i5_adicional_kg'] = ''; } if (isset($this->request->post['i6_adicional_kg'])) { $data['i6_adicional_kg'] = $this->request->post['i6_adicional_kg']; } elseif (!empty($tabela_info)) { $data['i6_adicional_kg'] = $tabela_info['i6_adicional_kg']; } else { $data['i6_adicional_kg'] = ''; } if (isset($this->request->post['n1_adicional_kg'])) { $data['n1_adicional_kg'] = $this->request->post['n1_adicional_kg']; } elseif (!empty($tabela_info)) { $data['n1_adicional_kg'] = $tabela_info['n1_adicional_kg']; } else { $data['n1_adicional_kg'] = ''; } if (isset($this->request->post['n2_adicional_kg'])) { $data['n2_adicional_kg'] = $this->request->post['n2_adicional_kg']; } elseif (!empty($tabela_info)) { $data['n2_adicional_kg'] = $tabela_info['n2_adicional_kg']; } else { $data['n2_adicional_kg'] = ''; } if (isset($this->request->post['n3_adicional_kg'])) { $data['n3_adicional_kg'] = $this->request->post['n3_adicional_kg']; } elseif (!empty($tabela_info)) { $data['n3_adicional_kg'] = $tabela_info['n3_adicional_kg']; } else { $data['n3_adicional_kg'] = ''; } if (isset($this->request->post['n4_adicional_kg'])) { $data['n4_adicional_kg'] = $this->request->post['n4_adicional_kg']; } elseif (!empty($tabela_info)) { $data['n4_adicional_kg'] = $tabela_info['n4_adicional_kg']; } else { $data['n4_adicional_kg'] = ''; } if (isset($this->request->post['n5_adicional_kg'])) { $data['n5_adicional_kg'] = $this->request->post['n5_adicional_kg']; } elseif (!empty($tabela_info)) { $data['n5_adicional_kg'] = $tabela_info['n5_adicional_kg']; } else { $data['n5_adicional_kg'] = ''; } if (isset($this->request->post['n6_adicional_kg'])) { $data['n6_adicional_kg'] = $this->request->post['n6_adicional_kg']; } elseif (!empty($tabela_info)) { $data['n6_adicional_kg'] = $tabela_info['n6_adicional_kg']; } else { $data['n6_adicional_kg'] = ''; } if (isset($this->request->post['faixa_peso'])) { $data['faixa_peso'] = $this->request->post['faixa_peso']; } elseif (!empty($tabela_info)) { $cep_origem = preg_replace("/[^0-9]/", '', $tabela_info['cep_origem']); $data['faixa_peso'] = $this->model_extension_shipping_correios->getFaixaPeso($tabela_info['codigo'], $cep_origem); } else { $data['faixa_peso'] = array(); } if (isset($this->request->post['tabela_regiao'])) { $tabela_regiao = $this->request->post['tabela_regiao']; } elseif (!empty($tabela_info)) { $cep_origem = preg_replace("/[^0-9]/", '', $tabela_info['cep_origem']); $tabela_regiao = $this->model_extension_shipping_correios->getTabelaRegiao($tabela_info['codigo'], $cep_origem); } else { $tabela_regiao = array(); } $this->load->model('localisation/zone'); $data['tabela_regiao'] = array(); foreach ($tabela_regiao as $regiao => $zones) { foreach ($zones as $zone_id) { $zone_info = $this->model_localisation_zone->getZone($zone_id); if ($zone_info) { $data['tabela_regiao'][$regiao][] = array( 'zone_id' => $zone_info['zone_id'], 'code' => $zone_info['code'] ); } } } if (isset($this->request->post['faixa_cep_local'])) { $data['faixa_cep_local'] = $this->request->post['faixa_cep_local']; } elseif (!empty($tabela_info)) { $cep_origem = preg_replace("/[^0-9]/", '', $tabela_info['cep_origem']); $data['faixa_cep_local'] = $this->model_extension_shipping_correios->getFaixasCepLocal($tabela_info['codigo'], $cep_origem); } else { $data['faixa_cep_local'] = array(); } $data['user_token'] = $this->session->data['user_token']; $data['header'] = $this->load->controller('common/header'); $data['column_left'] = $this->load->controller('common/column_left'); $data['footer'] = $this->load->controller('common/footer'); $this->response->setOutput($this->load->view('extension/shipping/correios_tabela_form', $data)); } protected function validateForm() { if (!$this->user->hasPermission('modify', 'extension/shipping/correios')) { $this->error['warning'] = $this->language->get('error_permission'); } return !$this->error; } public function autocomplete() { $json = array(); if (isset($this->request->get['filter_name'])) { $this->load->model('extension/shipping/correios'); $filter_data = array( 'filter_name' => $this->request->get['filter_name'], 'start' => 0, 'limit' => 5 ); $results = $this->model_extension_shipping_correios->getZones($filter_data); foreach ($results as $result) { $json[] = array( 'zone_id' => $result['zone_id'], 'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')), 'code' => $result['code'] ); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function install() { $this->load->model('setting/setting'); $result = $this->model_setting_setting->getSetting('shipping_correios'); if (!$result) { $data = array(); $data['shipping_correios_servicos'][] = array( "codigo" => "04014", "nome" => "SEDEX", "tipo" => "sedex", "status" => "1", "a_cobrar" => "0", "postcode" => "37540000", "max_declarado" => "10000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "30", "mao_propria" => "0", "mao_propria_codigo" => "045", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "039", "declarar_valor" => "0", "declarar_valor_codigo" => "032", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "04065", "nome" => "SEDEX a Cobrar", "tipo" => "sedex", "status" => "0", "a_cobrar" => "1", "postcode" => "37540000", "max_declarado" => "10000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "30", "mao_propria" => "0", "mao_propria_codigo" => "045", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "039", "declarar_valor" => "1", "declarar_valor_codigo" => "032", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "40215", "nome" => "SEDEX 10", "tipo" => "sedex", "status" => "0", "a_cobrar" => "0", "postcode" => "37540000", "max_declarado" => "10000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "10", "mao_propria" => "0", "mao_propria_codigo" => "002", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "001", "declarar_valor" => "0", "declarar_valor_codigo" => "019", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "40169", "nome" => "SEDEX 12", "tipo" => "sedex", "status" => "0", "a_cobrar" => "0", "postcode" => "37540000", "max_declarado" => "10000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "10", "mao_propria" => "0", "mao_propria_codigo" => "002", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "001", "declarar_valor" => "0", "declarar_valor_codigo" => "019", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "40290", "nome" => "SEDEX Hoje", "tipo" => "sedex", "status" => "0", "a_cobrar" => "0", "postcode" => "37540000", "max_declarado" => "10000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "10", "mao_propria" => "0", "mao_propria_codigo" => "", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "", "declarar_valor" => "0", "declarar_valor_codigo" => "019", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "04510", "nome" => "PAC", "tipo" => "pac", "status" => "1", "a_cobrar" => "0", "postcode" => "37540000", "max_declarado" => "3000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "30", "mao_propria" => "0", "mao_propria_codigo" => "045", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "039", "declarar_valor" => "0", "declarar_valor_codigo" => "064", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "04707", "nome" => "PAC a Cobrar", "tipo" => "pac", "status" => "0", "a_cobrar" => "1", "postcode" => "37540000", "max_declarado" => "3000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "30", "mao_propria" => "0", "mao_propria_codigo" => "045", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "039", "declarar_valor" => "1", "declarar_valor_codigo" => "064", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "04227", "nome" => "PAC Mini", "tipo" => "pac_mini", "status" => "0", "a_cobrar" => "0", "postcode" => "37540000", "max_declarado" => "100", "min_declarado" => "10.25", "max_soma_lados" => "44", "min_soma_lados" => "26", "max_lado" => "24", "max_peso" => "0.3", "mao_propria" => "0", "mao_propria_codigo" => "", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "001", "declarar_valor" => "1", "declarar_valor_codigo" => "065", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "0", "operacao" => "online" ); $this->model_setting_setting->editSetting('shipping_correios', $data); } $this->load->model('extension/shipping/correios'); $this->model_extension_shipping_correios->criarTabelas(); } /* Não modifique, desative ou delete pois pode ser denunciado por pirataria e também expulso da plataforma OpenCart.com */ public function validar($license_key) { $domain = parse_url(HTTP_SERVER); $domain = $domain['host']; $domain = str_replace('www.', '', $domain); $domain = str_replace('http://', '', $domain); $domain = str_replace('https://', '', $domain); $domain = str_replace('/', '', $domain); $domain = strtolower($domain); $post_data = array( 'license_key' => trim($license_key), 'domain' => $domain, 'product_id' => '60,50,980,63,62,65', 'version' => defined('VERSION') ? VERSION : '', 'store' => $this->config->get('config_name'), 'email' => $this->config->get('config_email') ); $curl = curl_init(); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLINFO_HEADER_OUT, true); curl_setopt($curl, CURLOPT_USERAGENT, 'OpenCart Extension Licensing System'); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_FORBID_REUSE, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_URL, 'https://www.julioguimaraes.com/opencart/index.php?route=tool/venda/call'); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data)); $response = curl_exec($curl); if (curl_errno($curl)) { $curl_error = 'Error ' . curl_errno($curl) . ': ' . curl_error($curl); } else { $curl_error = ''; } curl_close($curl); $response = json_decode($response, true); if (isset($response['error'])) { return array( 'error' => $response['error'], 'success' => false ); } else if (isset($response['success'])) { $this->load->model('extension/shipping/correios'); $this->model_extension_shipping_correios->in($license_key, $domain); return array( 'error' => false, 'success' => true ); } else { $this->log->write(print_r($response, true)); return array( 'error' => 'Não foi possível conectar ao servidor de ativação da licença. Por favor, confira se seu servidor está conectado na internet.' . $curl_error, 'success' => false ); } } public function ativar() { $json = array(); if (isset($this->request->get['license_key'])) { $license_key = $this->request->get['license_key']; } else { $license_key = ''; } if ($license_key) { $result = $this->validar($license_key); if ($result['error']) { $json['error'] = $result['error']; } else { $json['success'] = $result['success']; $code = 'shipping_correios'; $key = 'shipping_correios_chave'; $this->load->model('setting/setting'); $data = $this->model_setting_setting->getSetting($code); $data[$key] = $license_key; $this->model_setting_setting->editSetting($code, $data); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function uninstall() { if (file_exists(DIR_STORAGE . 'cp.sys')) { unlink(DIR_STORAGE . 'cp.sys'); } } } A string não está compactada com gzip ou não pôde ser descompactada. Aqui está a string decodificada em Base64: class ControllerExtensionShippingCorreios extends Controller { private $error = array(); public function index() { $this->load->language('extension/shipping/correios'); $this->document->setTitle($this->language->get('heading_title')); $this->load->model('setting/setting'); $this->load->model('extension/shipping/correios'); if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { $this->model_setting_setting->editSetting('shipping_correios', $this->request->post); $this->model_extension_shipping_correios->deleteServicos($this->request->post['shipping_correios_servicos']); // somente redireciona se o Submit não tenha sido feito para editar a tabela offline if (!isset($this->request->get['codigo'])) { $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true)); } } $data['correios_version'] = 'v5.0.3 - 21/09/2023'; if (isset($this->error['warning'])) { $data['error_warning'] = $this->error['warning']; } else { $data['error_warning'] = ''; } if (isset($this->error['required'])) { $data['error_required'] = $this->error['required']; } else { $data['error_required'] = ''; } if (isset($this->error['chave'])) { $data['error_chave'] = $this->error['chave']; } else { $data['error_chave'] = ''; } if (isset($this->error['result'])) { $data['error_result'] = $this->error['result']; } else { $data['error_result'] = ''; } if (isset($this->error['usuario'])) { $data['error_usuario'] = $this->error['usuario']; } else { $data['error_usuario'] = ''; } if (isset($this->error['senha'])) { $data['error_senha'] = $this->error['senha']; } else { $data['error_senha'] = ''; } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_extension'), 'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true) ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true) ); $data['action'] = $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true); $data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true); if (isset($this->request->post['shipping_correios_servicos'])) { $data['shipping_correios_servicos'] = $this->request->post['shipping_correios_servicos']; } else { $data['shipping_correios_servicos'] = $this->config->get('shipping_correios_servicos'); } if (empty($data['shipping_correios_servicos'])) { $data['shipping_correios_servicos'] = array(); } if (isset($this->request->post['shipping_correios_faixas'])) { $data['shipping_correios_faixas'] = $this->request->post['shipping_correios_faixas']; } else { $data['shipping_correios_faixas'] = $this->config->get('shipping_correios_faixas'); } if (empty($data['shipping_correios_faixas'])) { $data['shipping_correios_faixas'] = array(); } if (isset($this->request->post['shipping_correios_adicional'])) { $data['shipping_correios_adicional'] = $this->request->post['shipping_correios_adicional']; } else { $data['shipping_correios_adicional'] = $this->config->get('shipping_correios_adicional'); } if (empty($data['shipping_correios_adicional'])) { $data['shipping_correios_adicional'] = array(); } if (isset($this->request->post['shipping_correios_gratis_estados'])) { $data['shipping_correios_gratis_estados'] = $this->request->post['shipping_correios_gratis_estados']; } else { $data['shipping_correios_gratis_estados'] = $this->config->get('shipping_correios_gratis_estados'); } if (empty($data['shipping_correios_gratis_estados'])) { $data['shipping_correios_gratis_estados'] = array(); } if (isset($this->request->post['shipping_correios_gratis_produtos'])) { $data['shipping_correios_gratis_produtos'] = $this->request->post['shipping_correios_gratis_produtos']; } else { $data['shipping_correios_gratis_produtos'] = $this->config->get('shipping_correios_gratis_produtos'); } $data['product_categories'] = array(); $data['product_manufacturers'] = array(); $data['product_products'] = array(); if (empty($data['shipping_correios_gratis_produtos'])) { $data['shipping_correios_gratis_produtos'] = array(); } else { $this->load->model('catalog/category'); $this->load->model('catalog/manufacturer'); $this->load->model('catalog/product'); foreach ($data['shipping_correios_gratis_produtos'] as $key => $row) { if (isset($row['categorias']) && is_array($row['categorias'])) { foreach ($row['categorias'] as $category_id) { $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { $data['product_categories'][$key][] = array( 'category_id' => $category_info['category_id'], 'name' => ($category_info['path']) ? $category_info['path'] . ' > ' . $category_info['name'] : $category_info['name'] ); } } } if (isset($row['marcas']) && is_array($row['marcas'])) { foreach ($row['marcas'] as $manufacturer_id) { $manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($manufacturer_id); if ($manufacturer_info) { $data['product_manufacturers'][$key][] = array( 'manufacturer_id' => $manufacturer_info['manufacturer_id'], 'name' => $manufacturer_info['name'] ); } } } if (isset($row['produtos']) && is_array($row['produtos'])) { foreach ($row['produtos'] as $product_id) { $product_info = $this->model_catalog_product->getProduct($product_id); if ($product_info) { $data['product_products'][$key][] = array( 'product_id' => $product_info['product_id'], 'name' => $product_info['name'] ); } } } } } if (isset($this->request->post['shipping_correios_gratis_cep'])) { $data['shipping_correios_gratis_cep'] = $this->request->post['shipping_correios_gratis_cep']; } else { $data['shipping_correios_gratis_cep'] = $this->config->get('shipping_correios_gratis_cep'); } if (empty($data['shipping_correios_gratis_cep'])) { $data['shipping_correios_gratis_cep'] = array(); } if (isset($this->request->post['shipping_correios_msg_restricao'])) { $data['shipping_correios_msg_restricao'] = $this->request->post['shipping_correios_msg_restricao']; } else { $data['shipping_correios_msg_restricao'] = $this->config->get('shipping_correios_msg_restricao'); } if (isset($this->request->post['shipping_correios_status'])) { $data['shipping_correios_status'] = $this->request->post['shipping_correios_status']; } else { $data['shipping_correios_status'] = $this->config->get('shipping_correios_status'); } if (isset($this->request->post['shipping_correios_tax_class_id'])) { $data['shipping_correios_tax_class_id'] = $this->request->post['shipping_correios_tax_class_id']; } else { $data['shipping_correios_tax_class_id'] = $this->config->get('shipping_correios_tax_class_id'); } if (isset($this->request->post['shipping_correios_geo_zone_id'])) { $data['shipping_correios_geo_zone_id'] = $this->request->post['shipping_correios_geo_zone_id']; } else { $data['shipping_correios_geo_zone_id'] = $this->config->get('shipping_correios_geo_zone_id'); } if (isset($this->request->post['shipping_correios_sort_order'])) { $data['shipping_correios_sort_order'] = $this->request->post['shipping_correios_sort_order']; } else { $data['shipping_correios_sort_order'] = $this->config->get('shipping_correios_sort_order'); } if (isset($this->request->post['shipping_correios_chave'])) { $data['shipping_correios_chave'] = $this->request->post['shipping_correios_chave']; } else { $data['shipping_correios_chave'] = $this->config->get('shipping_correios_chave'); } if (isset($this->request->post['shipping_correios_api_usuario'])) { $data['shipping_correios_api_usuario'] = $this->request->post['shipping_correios_api_usuario']; } else { $data['shipping_correios_api_usuario'] = $this->config->get('shipping_correios_api_usuario'); } if (isset($this->request->post['shipping_correios_api_senha'])) { $data['shipping_correios_api_senha'] = $this->request->post['shipping_correios_api_senha']; } else { $data['shipping_correios_api_senha'] = $this->config->get('shipping_correios_api_senha'); } if (isset($this->request->post['shipping_correios_api_cartao_postagem'])) { $data['shipping_correios_api_cartao_postagem'] = $this->request->post['shipping_correios_api_cartao_postagem']; } else { $data['shipping_correios_api_cartao_postagem'] = $this->config->get('shipping_correios_api_cartao_postagem'); } if (isset($this->request->post['shipping_correios_api_codigo_contrato'])) { $data['shipping_correios_api_codigo_contrato'] = $this->request->post['shipping_correios_api_codigo_contrato']; } else { $data['shipping_correios_api_codigo_contrato'] = $this->config->get('shipping_correios_api_codigo_contrato'); } if (isset($this->request->post['shipping_correios_log'])) { $data['shipping_correios_log'] = $this->request->post['shipping_correios_log']; } else { $data['shipping_correios_log'] = $this->config->get('shipping_correios_log'); } if (isset($this->request->post['shipping_correios_log_debug'])) { $data['shipping_correios_log_debug'] = $this->request->post['shipping_correios_log_debug']; } else { $data['shipping_correios_log_debug'] = $this->config->get('shipping_correios_log_debug'); } $this->load->model('localisation/tax_class'); $data['tax_classes'] = $this->model_localisation_tax_class->getTaxClasses(); $this->load->model('localisation/geo_zone'); $data['geo_zones'] = $this->model_localisation_geo_zone->getGeoZones(); $this->load->model('localisation/zone'); $data['zones'] = $this->model_localisation_zone->getZonesByCountryId($this->config->get('config_country_id')); $data['user_token'] = $this->session->data['user_token']; $data['status_licenca'] = $this->model_extension_shipping_correios->out(); $data['header'] = $this->load->controller('common/header'); $data['column_left'] = $this->load->controller('common/column_left'); $data['footer'] = $this->load->controller('common/footer'); $this->response->setOutput($this->load->view('extension/shipping/correios', $data)); } protected function validate() { if (!$this->user->hasPermission('modify', 'extension/shipping/correios')) { $this->error['warning'] = $this->language->get('error_permission'); } if (!isset($this->request->post['shipping_correios_chave']) || (utf8_strlen(trim($this->request->post['shipping_correios_chave'])) != 24)) { $this->error['chave'] = $this->language->get('error_chave'); } if (!isset($this->request->post['shipping_correios_api_usuario']) || (utf8_strlen(trim($this->request->post['shipping_correios_api_usuario'])) < 1)) { $this->error['usuario'] = $this->language->get('error_usuario'); } if (!isset($this->request->post['shipping_correios_api_senha']) || (utf8_strlen(trim($this->request->post['shipping_correios_api_senha'])) < 1)) { $this->error['senha'] = $this->language->get('error_senha'); } if (isset($this->request->post['shipping_correios_chave']) && (utf8_strlen(trim($this->request->post['shipping_correios_chave'])) == 24)) { $status = $this->model_extension_shipping_correios->out(); if (!$status) { $this->error['result'] = $this->language->get('error_result'); } } return !$this->error; } public function tabela() { $this->load->language('extension/shipping/correios_tabela'); $this->document->setTitle($this->language->get('heading_title_tabela')); if (isset($this->request->get['codigo'])) { $codigo = $this->request->get['codigo']; } else { $codigo = ''; } if (isset($this->request->get['cep_origem'])) { $cep_origem = preg_replace("/[^0-9]/", '', $this->request->get['cep_origem']); } else { $cep_origem = ''; } $this->load->model('extension/shipping/correios'); if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) { $this->model_extension_shipping_correios->editTabela($codigo, $cep_origem, $this->request->post); $this->session->data['success'] = $this->language->get('text_success'); $this->response->redirect($this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true)); } $this->getTabelaForm(); } public function getTabelaForm() { if (isset($this->request->get['codigo'])) { $codigo = $this->request->get['codigo']; } else { $codigo = ''; } if (isset($this->request->get['cep_origem'])) { $cep_origem = preg_replace("/[^0-9]/", '', $this->request->get['cep_origem']); } else { $cep_origem = ''; } $data['text_form'] = sprintf($this->language->get('text_edit'), $codigo, $cep_origem); if (isset($this->error['warning'])) { $data['error_warning'] = $this->error['warning']; } else { $data['error_warning'] = ''; } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_extension'), 'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=shipping', true) ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title'), 'href' => $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true) ); $data['breadcrumbs'][] = array( 'text' => $this->language->get('heading_title_tabela'), 'href' => $this->url->link('extension/shipping/correios/tabela', 'user_token=' . $this->session->data['user_token'] . '&codigo=' . $codigo . '&cep_origem=' . $cep_origem, true) ); $this->load->model('extension/shipping/correios'); if ($this->request->server['REQUEST_METHOD'] != 'POST') { $tabela_info = $this->model_extension_shipping_correios->getServico($codigo, $cep_origem); } $data['action'] = $this->url->link('extension/shipping/correios/tabela', 'user_token=' . $this->session->data['user_token'] . '&codigo=' . $codigo . '&cep_origem=' . $cep_origem, true); $data['cancel'] = $this->url->link('extension/shipping/correios', 'user_token=' . $this->session->data['user_token'], true); if (isset($this->request->post['max_peso_real'])) { $data['max_peso_real'] = $this->request->post['max_peso_real']; } elseif (!empty($tabela_info)) { $data['max_peso_real'] = $tabela_info['max_peso_real']; } else { $data['max_peso_real'] = ''; } if (isset($this->request->post['ad_valorem'])) { $data['ad_valorem'] = $this->request->post['ad_valorem']; } elseif (!empty($tabela_info)) { $data['ad_valorem'] = $tabela_info['ad_valorem']; } else { $data['ad_valorem'] = ''; } if (isset($this->request->post['aviso_recebimento'])) { $data['aviso_recebimento'] = $this->request->post['aviso_recebimento']; } elseif (!empty($tabela_info)) { $data['aviso_recebimento'] = $tabela_info['aviso_recebimento']; } else { $data['aviso_recebimento'] = ''; } if (isset($this->request->post['mao_propria'])) { $data['mao_propria'] = $this->request->post['mao_propria']; } elseif (!empty($tabela_info)) { $data['mao_propria'] = $tabela_info['mao_propria']; } else { $data['mao_propria'] = ''; } if (isset($this->request->post['a_cobrar_vpne'])) { $data['a_cobrar_vpne'] = $this->request->post['a_cobrar_vpne']; } elseif (!empty($tabela_info)) { $data['a_cobrar_vpne'] = $tabela_info['a_cobrar_vpne']; } else { $data['a_cobrar_vpne'] = ''; } if (isset($this->request->post['taxa_emergencial'])) { $data['taxa_emergencial'] = $this->request->post['taxa_emergencial']; } elseif (!empty($tabela_info)) { $data['taxa_emergencial'] = $tabela_info['taxa_emergencial']; } else { $data['taxa_emergencial'] = ''; } if (isset($this->request->post['lx_adicional_kg'])) { $data['lx_adicional_kg'] = $this->request->post['lx_adicional_kg']; } elseif (!empty($tabela_info)) { $data['lx_adicional_kg'] = $tabela_info['lx_adicional_kg']; } else { $data['lx_adicional_kg'] = ''; } if (isset($this->request->post['ex_adicional_kg'])) { $data['ex_adicional_kg'] = $this->request->post['ex_adicional_kg']; } elseif (!empty($tabela_info)) { $data['ex_adicional_kg'] = $tabela_info['ex_adicional_kg']; } else { $data['ex_adicional_kg'] = ''; } if (isset($this->request->post['i1_adicional_kg'])) { $data['i1_adicional_kg'] = $this->request->post['i1_adicional_kg']; } elseif (!empty($tabela_info)) { $data['i1_adicional_kg'] = $tabela_info['i1_adicional_kg']; } else { $data['i1_adicional_kg'] = ''; } if (isset($this->request->post['i2_adicional_kg'])) { $data['i2_adicional_kg'] = $this->request->post['i2_adicional_kg']; } elseif (!empty($tabela_info)) { $data['i2_adicional_kg'] = $tabela_info['i2_adicional_kg']; } else { $data['i2_adicional_kg'] = ''; } if (isset($this->request->post['i3_adicional_kg'])) { $data['i3_adicional_kg'] = $this->request->post['i3_adicional_kg']; } elseif (!empty($tabela_info)) { $data['i3_adicional_kg'] = $tabela_info['i3_adicional_kg']; } else { $data['i3_adicional_kg'] = ''; } if (isset($this->request->post['i4_adicional_kg'])) { $data['i4_adicional_kg'] = $this->request->post['i4_adicional_kg']; } elseif (!empty($tabela_info)) { $data['i4_adicional_kg'] = $tabela_info['i4_adicional_kg']; } else { $data['i4_adicional_kg'] = ''; } if (isset($this->request->post['i5_adicional_kg'])) { $data['i5_adicional_kg'] = $this->request->post['i5_adicional_kg']; } elseif (!empty($tabela_info)) { $data['i5_adicional_kg'] = $tabela_info['i5_adicional_kg']; } else { $data['i5_adicional_kg'] = ''; } if (isset($this->request->post['i6_adicional_kg'])) { $data['i6_adicional_kg'] = $this->request->post['i6_adicional_kg']; } elseif (!empty($tabela_info)) { $data['i6_adicional_kg'] = $tabela_info['i6_adicional_kg']; } else { $data['i6_adicional_kg'] = ''; } if (isset($this->request->post['n1_adicional_kg'])) { $data['n1_adicional_kg'] = $this->request->post['n1_adicional_kg']; } elseif (!empty($tabela_info)) { $data['n1_adicional_kg'] = $tabela_info['n1_adicional_kg']; } else { $data['n1_adicional_kg'] = ''; } if (isset($this->request->post['n2_adicional_kg'])) { $data['n2_adicional_kg'] = $this->request->post['n2_adicional_kg']; } elseif (!empty($tabela_info)) { $data['n2_adicional_kg'] = $tabela_info['n2_adicional_kg']; } else { $data['n2_adicional_kg'] = ''; } if (isset($this->request->post['n3_adicional_kg'])) { $data['n3_adicional_kg'] = $this->request->post['n3_adicional_kg']; } elseif (!empty($tabela_info)) { $data['n3_adicional_kg'] = $tabela_info['n3_adicional_kg']; } else { $data['n3_adicional_kg'] = ''; } if (isset($this->request->post['n4_adicional_kg'])) { $data['n4_adicional_kg'] = $this->request->post['n4_adicional_kg']; } elseif (!empty($tabela_info)) { $data['n4_adicional_kg'] = $tabela_info['n4_adicional_kg']; } else { $data['n4_adicional_kg'] = ''; } if (isset($this->request->post['n5_adicional_kg'])) { $data['n5_adicional_kg'] = $this->request->post['n5_adicional_kg']; } elseif (!empty($tabela_info)) { $data['n5_adicional_kg'] = $tabela_info['n5_adicional_kg']; } else { $data['n5_adicional_kg'] = ''; } if (isset($this->request->post['n6_adicional_kg'])) { $data['n6_adicional_kg'] = $this->request->post['n6_adicional_kg']; } elseif (!empty($tabela_info)) { $data['n6_adicional_kg'] = $tabela_info['n6_adicional_kg']; } else { $data['n6_adicional_kg'] = ''; } if (isset($this->request->post['faixa_peso'])) { $data['faixa_peso'] = $this->request->post['faixa_peso']; } elseif (!empty($tabela_info)) { $cep_origem = preg_replace("/[^0-9]/", '', $tabela_info['cep_origem']); $data['faixa_peso'] = $this->model_extension_shipping_correios->getFaixaPeso($tabela_info['codigo'], $cep_origem); } else { $data['faixa_peso'] = array(); } if (isset($this->request->post['tabela_regiao'])) { $tabela_regiao = $this->request->post['tabela_regiao']; } elseif (!empty($tabela_info)) { $cep_origem = preg_replace("/[^0-9]/", '', $tabela_info['cep_origem']); $tabela_regiao = $this->model_extension_shipping_correios->getTabelaRegiao($tabela_info['codigo'], $cep_origem); } else { $tabela_regiao = array(); } $this->load->model('localisation/zone'); $data['tabela_regiao'] = array(); foreach ($tabela_regiao as $regiao => $zones) { foreach ($zones as $zone_id) { $zone_info = $this->model_localisation_zone->getZone($zone_id); if ($zone_info) { $data['tabela_regiao'][$regiao][] = array( 'zone_id' => $zone_info['zone_id'], 'code' => $zone_info['code'] ); } } } if (isset($this->request->post['faixa_cep_local'])) { $data['faixa_cep_local'] = $this->request->post['faixa_cep_local']; } elseif (!empty($tabela_info)) { $cep_origem = preg_replace("/[^0-9]/", '', $tabela_info['cep_origem']); $data['faixa_cep_local'] = $this->model_extension_shipping_correios->getFaixasCepLocal($tabela_info['codigo'], $cep_origem); } else { $data['faixa_cep_local'] = array(); } $data['user_token'] = $this->session->data['user_token']; $data['header'] = $this->load->controller('common/header'); $data['column_left'] = $this->load->controller('common/column_left'); $data['footer'] = $this->load->controller('common/footer'); $this->response->setOutput($this->load->view('extension/shipping/correios_tabela_form', $data)); } protected function validateForm() { if (!$this->user->hasPermission('modify', 'extension/shipping/correios')) { $this->error['warning'] = $this->language->get('error_permission'); } return !$this->error; } public function autocomplete() { $json = array(); if (isset($this->request->get['filter_name'])) { $this->load->model('extension/shipping/correios'); $filter_data = array( 'filter_name' => $this->request->get['filter_name'], 'start' => 0, 'limit' => 5 ); $results = $this->model_extension_shipping_correios->getZones($filter_data); foreach ($results as $result) { $json[] = array( 'zone_id' => $result['zone_id'], 'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')), 'code' => $result['code'] ); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function install() { $this->load->model('setting/setting'); $result = $this->model_setting_setting->getSetting('shipping_correios'); if (!$result) { $data = array(); $data['shipping_correios_servicos'][] = array( "codigo" => "04014", "nome" => "SEDEX", "tipo" => "sedex", "status" => "1", "a_cobrar" => "0", "postcode" => "37540000", "max_declarado" => "10000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "30", "mao_propria" => "0", "mao_propria_codigo" => "045", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "039", "declarar_valor" => "0", "declarar_valor_codigo" => "032", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "04065", "nome" => "SEDEX a Cobrar", "tipo" => "sedex", "status" => "0", "a_cobrar" => "1", "postcode" => "37540000", "max_declarado" => "10000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "30", "mao_propria" => "0", "mao_propria_codigo" => "045", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "039", "declarar_valor" => "1", "declarar_valor_codigo" => "032", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "40215", "nome" => "SEDEX 10", "tipo" => "sedex", "status" => "0", "a_cobrar" => "0", "postcode" => "37540000", "max_declarado" => "10000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "10", "mao_propria" => "0", "mao_propria_codigo" => "002", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "001", "declarar_valor" => "0", "declarar_valor_codigo" => "019", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "40169", "nome" => "SEDEX 12", "tipo" => "sedex", "status" => "0", "a_cobrar" => "0", "postcode" => "37540000", "max_declarado" => "10000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "10", "mao_propria" => "0", "mao_propria_codigo" => "002", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "001", "declarar_valor" => "0", "declarar_valor_codigo" => "019", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "40290", "nome" => "SEDEX Hoje", "tipo" => "sedex", "status" => "0", "a_cobrar" => "0", "postcode" => "37540000", "max_declarado" => "10000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "10", "mao_propria" => "0", "mao_propria_codigo" => "", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "", "declarar_valor" => "0", "declarar_valor_codigo" => "019", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "04510", "nome" => "PAC", "tipo" => "pac", "status" => "1", "a_cobrar" => "0", "postcode" => "37540000", "max_declarado" => "3000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "30", "mao_propria" => "0", "mao_propria_codigo" => "045", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "039", "declarar_valor" => "0", "declarar_valor_codigo" => "064", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "04707", "nome" => "PAC a Cobrar", "tipo" => "pac", "status" => "0", "a_cobrar" => "1", "postcode" => "37540000", "max_declarado" => "3000", "min_declarado" => "25", "max_soma_lados" => "200", "min_soma_lados" => "29", "max_lado" => "105", "max_peso" => "30", "mao_propria" => "0", "mao_propria_codigo" => "045", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "039", "declarar_valor" => "1", "declarar_valor_codigo" => "064", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "79.00", "operacao" => "online" ); $data['shipping_correios_servicos'][] = array( "codigo" => "04227", "nome" => "PAC Mini", "tipo" => "pac_mini", "status" => "0", "a_cobrar" => "0", "postcode" => "37540000", "max_declarado" => "100", "min_declarado" => "10.25", "max_soma_lados" => "44", "min_soma_lados" => "26", "max_lado" => "24", "max_peso" => "0.3", "mao_propria" => "0", "mao_propria_codigo" => "", "aviso_recebimento" => "0", "aviso_recebimento_codigo" => "001", "declarar_valor" => "1", "declarar_valor_codigo" => "065", "total" => "", "prazo_adicional" => "", "adicional_manuseio" => "0", "operacao" => "online" ); $this->model_setting_setting->editSetting('shipping_correios', $data); } $this->load->model('extension/shipping/correios'); $this->model_extension_shipping_correios->criarTabelas(); } /* Não modifique, desative ou delete pois pode ser denunciado por pirataria e também expulso da plataforma OpenCart.com */ public function validar($license_key) { $domain = parse_url(HTTP_SERVER); $domain = $domain['host']; $domain = str_replace('www.', '', $domain); $domain = str_replace('http://', '', $domain); $domain = str_replace('https://', '', $domain); $domain = str_replace('/', '', $domain); $domain = strtolower($domain); $post_data = array( 'license_key' => trim($license_key), 'domain' => $domain, 'product_id' => '60,50,980,63,62,65', 'version' => defined('VERSION') ? VERSION : '', 'store' => $this->config->get('config_name'), 'email' => $this->config->get('config_email') ); $curl = curl_init(); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLINFO_HEADER_OUT, true); curl_setopt($curl, CURLOPT_USERAGENT, 'OpenCart Extension Licensing System'); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_FORBID_REUSE, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_URL, 'https://www.julioguimaraes.com/opencart/index.php?route=tool/venda/call'); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data)); $response = curl_exec($curl); if (curl_errno($curl)) { $curl_error = 'Error ' . curl_errno($curl) . ': ' . curl_error($curl); } else { $curl_error = ''; } curl_close($curl); $response = json_decode($response, true); if (isset($response['error'])) { return array( 'error' => $response['error'], 'success' => false ); } else if (isset($response['success'])) { $this->load->model('extension/shipping/correios'); $this->model_extension_shipping_correios->in($license_key, $domain); return array( 'error' => false, 'success' => true ); } else { $this->log->write(print_r($response, true)); return array( 'error' => 'Não foi possível conectar ao servidor de ativação da licença. Por favor, confira se seu servidor está conectado na internet.' . $curl_error, 'success' => false ); } } public function ativar() { $json = array(); if (isset($this->request->get['license_key'])) { $license_key = $this->request->get['license_key']; } else { $license_key = ''; } if ($license_key) { $result = $this->validar($license_key); if ($result['error']) { $json['error'] = $result['error']; } else { $json['success'] = $result['success']; $code = 'shipping_correios'; $key = 'shipping_correios_chave'; $this->load->model('setting/setting'); $data = $this->model_setting_setting->getSetting($code); $data[$key] = $license_key; $this->model_setting_setting->editSetting($code, $data); } } $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } public function uninstall() { if (file_exists(DIR_STORAGE . 'cp.sys')) { unlink(DIR_STORAGE . 'cp.sys'); } } }