1<?php 2class ControllerExtensionFraudMaxMind extends Controller { 3 private $error = array(); 4 5 public function index() { 6 $this->load->language('extension/fraud/maxmind'); 7 8 $this->document->setTitle($this->language->get('heading_title')); 9 10 $this->load->model('setting/setting'); 11 12 if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { 13 $this->model_setting_setting->editSetting('fraud_maxmind', $this->request->post); 14 15 $this->session->data['success'] = $this->language->get('text_success'); 16 17 $this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=fraud', true)); 18 } 19 20 if (isset($this->error['warning'])) { 21 $data['error_warning'] = $this->error['warning']; 22 } else { 23 $data['error_warning'] = ''; 24 } 25 26 if (isset($this->error['key'])) { 27 $data['error_key'] = $this->error['key']; 28 } else { 29 $data['error_key'] = ''; 30 } 31 32 $data['breadcrumbs'] = array(); 33 34 $data['breadcrumbs'][] = array( 35 'text' => $this->language->get('text_home'), 36 'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true) 37 ); 38 39 $data['breadcrumbs'][] = array( 40 'text' => $this->language->get('text_extension'), 41 'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=fraud', true) 42 ); 43 44 $data['breadcrumbs'][] = array( 45 'text' => $this->language->get('heading_title'), 46 'href' => $this->url->link('extension/fraud/maxmind', 'user_token=' . $this->session->data['user_token'], true) 47 ); 48 49 $data['action'] = $this->url->link('extension/fraud/maxmind', 'user_token=' . $this->session->data['user_token'], true); 50 51 $data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=fraud', true); 52 53 if (isset($this->request->post['fraud_maxmind_key'])) { 54 $data['fraud_maxmind_key'] = $this->request->post['fraud_maxmind_key']; 55 } else { 56 $data['fraud_maxmind_key'] = $this->config->get('fraud_maxmind_key'); 57 } 58 59 if (isset($this->request->post['fraud_maxmind_score'])) { 60 $data['fraud_maxmind_score'] = $this->request->post['fraud_maxmind_score']; 61 } else { 62 $data['fraud_maxmind_score'] = $this->config->get('fraud_maxmind_score'); 63 } 64 65 if (isset($this->request->post['fraud_maxmind_order_status_id'])) { 66 $data['fraud_maxmind_order_status_id'] = $this->request->post['fraud_maxmind_order_status_id']; 67 } else { 68 $data['fraud_maxmind_order_status_id'] = $this->config->get('fraud_maxmind_order_status_id'); 69 } 70 71 $this->load->model('localisation/order_status'); 72 73 $data['order_statuses'] = $this->model_localisation_order_status->getOrderStatuses(); 74 75 if (isset($this->request->post['fraud_maxmind_status'])) { 76 $data['fraud_maxmind_status'] = $this->request->post['fraud_maxmind_status']; 77 } else { 78 $data['fraud_maxmind_status'] = $this->config->get('fraud_maxmind_status'); 79 } 80 81 $data['header'] = $this->load->controller('common/header'); 82 $data['column_left'] = $this->load->controller('common/column_left'); 83 $data['footer'] = $this->load->controller('common/footer'); 84 85 $this->response->setOutput($this->load->view('extension/fraud/maxmind', $data)); 86 } 87 88 public function install() { 89 $this->load->model('extension/fraud/maxmind'); 90 91 $this->model_extension_fraud_maxmind->install(); 92 } 93 94 public function uninstall() { 95 $this->load->model('extension/fraud/maxmind'); 96 97 $this->model_extension_fraud_maxmind->uninstall(); 98 } 99 100 protected function validate() { 101 if (!$this->user->hasPermission('modify', 'extension/fraud/maxmind')) { 102 $this->error['warning'] = $this->language->get('error_permission'); 103 } 104 105 if (!$this->request->post['fraud_maxmind_key']) { 106 $this->error['key'] = $this->language->get('error_key'); 107 } 108 109 return !$this->error; 110 } 111 112 public function order() { 113 $this->load->language('extension/fraud/maxmind'); 114 115 $this->load->model('extension/fraud/maxmind'); 116 117 if (isset($this->request->get['order_id'])) { 118 $order_id = $this->request->get['order_id']; 119 } else { 120 $order_id = 0; 121 } 122 123 $fraud_info = $this->model_extension_fraud_maxmind->getOrder($order_id); 124 125 if ($fraud_info) { 126 $data['text_country_match'] = $this->language->get('text_country_match'); 127 $data['text_country_code'] = $this->language->get('text_country_code'); 128 $data['text_high_risk_country'] = $this->language->get('text_high_risk_country'); 129 $data['text_distance'] = $this->language->get('text_distance'); 130 $data['text_ip_region'] = $this->language->get('text_ip_region'); 131 $data['text_ip_city'] = $this->language->get('text_ip_city'); 132 $data['text_ip_latitude'] = $this->language->get('text_ip_latitude'); 133 $data['text_ip_longitude'] = $this->language->get('text_ip_longitude'); 134 $data['text_ip_isp'] = $this->language->get('text_ip_isp'); 135 $data['text_ip_org'] = $this->language->get('text_ip_org'); 136 $data['text_ip_asnum'] = $this->language->get('text_ip_asnum'); 137 $data['text_ip_user_type'] = $this->language->get('text_ip_user_type'); 138 $data['text_ip_country_confidence'] = $this->language->get('text_ip_country_confidence'); 139 $data['text_ip_region_confidence'] = $this->language->get('text_ip_region_confidence'); 140 $data['text_ip_city_confidence'] = $this->language->get('text_ip_city_confidence'); 141 $data['text_ip_postal_confidence'] = $this->language->get('text_ip_postal_confidence'); 142 $data['text_ip_postal_code'] = $this->language->get('text_ip_postal_code'); 143 $data['text_ip_accuracy_radius'] = $this->language->get('text_ip_accuracy_radius'); 144 $data['text_ip_net_speed_cell'] = $this->language->get('text_ip_net_speed_cell'); 145 $data['text_ip_metro_code'] = $this->language->get('text_ip_metro_code'); 146 $data['text_ip_area_code'] = $this->language->get('text_ip_area_code'); 147 $data['text_ip_time_zone'] = $this->language->get('text_ip_time_zone'); 148 $data['text_ip_region_name'] = $this->language->get('text_ip_region_name'); 149 $data['text_ip_domain'] = $this->language->get('text_ip_domain'); 150 $data['text_ip_country_name'] = $this->language->get('text_ip_country_name'); 151 $data['text_ip_continent_code'] = $this->language->get('text_ip_continent_code'); 152 $data['text_ip_corporate_proxy'] = $this->language->get('text_ip_corporate_proxy'); 153 $data['text_anonymous_proxy'] = $this->language->get('text_anonymous_proxy'); 154 $data['text_proxy_score'] = $this->language->get('text_proxy_score'); 155 $data['text_is_trans_proxy'] = $this->language->get('text_is_trans_proxy'); 156 $data['text_free_mail'] = $this->language->get('text_free_mail'); 157 $data['text_carder_email'] = $this->language->get('text_carder_email'); 158 $data['text_high_risk_username'] = $this->language->get('text_high_risk_username'); 159 $data['text_high_risk_password'] = $this->language->get('text_high_risk_password'); 160 $data['text_bin_match'] = $this->language->get('text_bin_match'); 161 $data['text_bin_country'] = $this->language->get('text_bin_country'); 162 $data['text_bin_name_match'] = $this->language->get('text_bin_name_match'); 163 $data['text_bin_name'] = $this->language->get('text_bin_name'); 164 $data['text_bin_phone_match'] = $this->language->get('text_bin_phone_match'); 165 $data['text_bin_phone'] = $this->language->get('text_bin_phone'); 166 $data['text_customer_phone_in_billing_location'] = $this->language->get('text_customer_phone_in_billing_location'); 167 $data['text_ship_forward'] = $this->language->get('text_ship_forward'); 168 $data['text_city_postal_match'] = $this->language->get('text_city_postal_match'); 169 $data['text_ship_city_postal_match'] = $this->language->get('text_ship_city_postal_match'); 170 $data['text_score'] = $this->language->get('text_score'); 171 $data['text_explanation'] = $this->language->get('text_explanation'); 172 $data['text_risk_score'] = $this->language->get('text_risk_score'); 173 $data['text_queries_remaining'] = $this->language->get('text_queries_remaining'); 174 $data['text_maxmind_id'] = $this->language->get('text_maxmind_id'); 175 $data['text_error'] = $this->language->get('text_error'); 176 177 $data['help_country_match'] = $this->language->get('help_country_match'); 178 $data['help_country_code'] = $this->language->get('help_country_code'); 179 $data['help_high_risk_country'] = $this->language->get('help_high_risk_country'); 180 $data['help_distance'] = $this->language->get('help_distance'); 181 $data['help_ip_region'] = $this->language->get('help_ip_region'); 182 $data['help_ip_city'] = $this->language->get('help_ip_city'); 183 $data['help_ip_latitude'] = $this->language->get('help_ip_latitude'); 184 $data['help_ip_longitude'] = $this->language->get('help_ip_longitude'); 185 $data['help_ip_isp'] = $this->language->get('help_ip_isp'); 186 $data['help_ip_org'] = $this->language->get('help_ip_org'); 187 $data['help_ip_asnum'] = $this->language->get('help_ip_asnum'); 188 $data['help_ip_user_type'] = $this->language->get('help_ip_user_type'); 189 $data['help_ip_country_confidence'] = $this->language->get('help_ip_country_confidence'); 190 $data['help_ip_region_confidence'] = $this->language->get('help_ip_region_confidence'); 191 $data['help_ip_city_confidence'] = $this->language->get('help_ip_city_confidence'); 192 $data['help_ip_postal_confidence'] = $this->language->get('help_ip_postal_confidence'); 193 $data['help_ip_postal_code'] = $this->language->get('help_ip_postal_code'); 194 $data['help_ip_accuracy_radius'] = $this->language->get('help_ip_accuracy_radius'); 195 $data['help_ip_net_speed_cell'] = $this->language->get('help_ip_net_speed_cell'); 196 $data['help_ip_metro_code'] = $this->language->get('help_ip_metro_code'); 197 $data['help_ip_area_code'] = $this->language->get('help_ip_area_code'); 198 $data['help_ip_time_zone'] = $this->language->get('help_ip_time_zone'); 199 $data['help_ip_region_name'] = $this->language->get('help_ip_region_name'); 200 $data['help_ip_domain'] = $this->language->get('help_ip_domain'); 201 $data['help_ip_country_name'] = $this->language->get('help_ip_country_name'); 202 $data['help_ip_continent_code'] = $this->language->get('help_ip_continent_code'); 203 $data['help_ip_corporate_proxy'] = $this->language->get('help_ip_corporate_proxy'); 204 $data['help_anonymous_proxy'] = $this->language->get('help_anonymous_proxy'); 205 $data['help_proxy_score'] = $this->language->get('help_proxy_score'); 206 $data['help_is_trans_proxy'] = $this->language->get('help_is_trans_proxy'); 207 $data['help_free_mail'] = $this->language->get('help_free_mail'); 208 $data['help_carder_email'] = $this->language->get('help_carder_email'); 209 $data['help_high_risk_username'] = $this->language->get('help_high_risk_username'); 210 $data['help_high_risk_password'] = $this->language->get('help_high_risk_password'); 211 $data['help_bin_match'] = $this->language->get('help_bin_match'); 212 $data['help_bin_country'] = $this->language->get('help_bin_country'); 213 $data['help_bin_name_match'] = $this->language->get('help_bin_name_match'); 214 $data['help_bin_name'] = $this->language->get('help_bin_name'); 215 $data['help_bin_phone_match'] = $this->language->get('help_bin_phone_match'); 216 $data['help_bin_phone'] = $this->language->get('help_bin_phone'); 217 $data['help_customer_phone_in_billing_location'] = $this->language->get('help_customer_phone_in_billing_location'); 218 $data['help_ship_forward'] = $this->language->get('help_ship_forward'); 219 $data['help_city_postal_match'] = $this->language->get('help_city_postal_match'); 220 $data['help_ship_city_postal_match'] = $this->language->get('help_ship_city_postal_match'); 221 $data['help_score'] = $this->language->get('help_score'); 222 $data['help_explanation'] = $this->language->get('help_explanation'); 223 $data['help_risk_score'] = $this->language->get('help_risk_score'); 224 $data['help_queries_remaining'] = $this->language->get('help_queries_remaining'); 225 $data['help_maxmind_id'] = $this->language->get('help_maxmind_id'); 226 $data['help_error'] = $this->language->get('help_error'); 227 228 $data['country_match'] = $fraud_info['country_match']; 229 230 if ($fraud_info['country_code']) { 231 $data['country_code'] = $fraud_info['country_code']; 232 } else { 233 $data['country_code'] = ''; 234 } 235 236 $data['high_risk_country'] = $fraud_info['high_risk_country']; 237 $data['distance'] = $fraud_info['distance']; 238 239 if ($fraud_info['ip_region']) { 240 $data['ip_region'] = $fraud_info['ip_region']; 241 } else { 242 $data['ip_region'] = ''; 243 } 244 245 if ($fraud_info['ip_city']) { 246 $data['ip_city'] = $fraud_info['ip_city']; 247 } else { 248 $data['ip_city'] = ''; 249 } 250 251 $data['ip_latitude'] = $fraud_info['ip_latitude']; 252 $data['ip_longitude'] = $fraud_info['ip_longitude']; 253 254 if ($fraud_info['ip_isp']) { 255 $data['ip_isp'] = $fraud_info['ip_isp']; 256 } else { 257 $data['ip_isp'] = ''; 258 } 259 260 if ($fraud_info['ip_org']) { 261 $data['ip_org'] = $fraud_info['ip_org']; 262 } else { 263 $data['ip_org'] = ''; 264 } 265 266 $data['ip_asnum'] = $fraud_info['ip_asnum']; 267 268 if ($fraud_info['ip_user_type']) { 269 $data['ip_user_type'] = $fraud_info['ip_user_type']; 270 } else { 271 $data['ip_user_type'] = ''; 272 } 273 274 if ($fraud_info['ip_country_confidence']) { 275 $data['ip_country_confidence'] = $fraud_info['ip_country_confidence']; 276 } else { 277 $data['ip_country_confidence'] = ''; 278 } 279 280 if ($fraud_info['ip_region_confidence']) { 281 $data['ip_region_confidence'] = $fraud_info['ip_region_confidence']; 282 } else { 283 $data['ip_region_confidence'] = ''; 284 } 285 286 if ($fraud_info['ip_city_confidence']) { 287 $data['ip_city_confidence'] = $fraud_info['ip_city_confidence']; 288 } else { 289 $data['ip_city_confidence'] = ''; 290 } 291 292 if ($fraud_info['ip_postal_confidence']) { 293 $data['ip_postal_confidence'] = $fraud_info['ip_postal_confidence']; 294 } else { 295 $data['ip_postal_confidence'] = ''; 296 } 297 298 if ($fraud_info['ip_postal_code']) { 299 $data['ip_postal_code'] = $fraud_info['ip_postal_code']; 300 } else { 301 $data['ip_postal_code'] = ''; 302 } 303 304 $data['ip_accuracy_radius'] = $fraud_info['ip_accuracy_radius']; 305 306 if ($fraud_info['ip_net_speed_cell']) { 307 $data['ip_net_speed_cell'] = $fraud_info['ip_net_speed_cell']; 308 } else { 309 $data['ip_net_speed_cell'] = ''; 310 } 311 312 $data['ip_metro_code'] = $fraud_info['ip_metro_code']; 313 $data['ip_area_code'] = $fraud_info['ip_area_code']; 314 315 if ($fraud_info['ip_time_zone']) { 316 $data['ip_time_zone'] = $fraud_info['ip_time_zone']; 317 } else { 318 $data['ip_time_zone'] = ''; 319 } 320 321 if ($fraud_info['ip_region_name']) { 322 $data['ip_region_name'] = $fraud_info['ip_region_name']; 323 } else { 324 $data['ip_region_name'] = ''; 325 } 326 327 if ($fraud_info['ip_domain']) { 328 $data['ip_domain'] = $fraud_info['ip_domain']; 329 } else { 330 $data['ip_domain'] = ''; 331 } 332 333 if ($fraud_info['ip_country_name']) { 334 $data['ip_country_name'] = $fraud_info['ip_country_name']; 335 } else { 336 $data['ip_country_name'] = ''; 337 } 338 339 if ($fraud_info['ip_continent_code']) { 340 $data['ip_continent_code'] = $fraud_info['ip_continent_code']; 341 } else { 342 $data['ip_continent_code'] = ''; 343 } 344 345 if ($fraud_info['ip_corporate_proxy']) { 346 $data['ip_corporate_proxy'] = $fraud_info['ip_corporate_proxy']; 347 } else { 348 $data['ip_corporate_proxy'] = ''; 349 } 350 351 $data['anonymous_proxy'] = $fraud_info['anonymous_proxy']; 352 $data['proxy_score'] = $fraud_info['proxy_score']; 353 354 if ($fraud_info['is_trans_proxy']) { 355 $data['is_trans_proxy'] = $fraud_info['is_trans_proxy']; 356 } else { 357 $data['is_trans_proxy'] = ''; 358 } 359 360 $data['free_mail'] = $fraud_info['free_mail']; 361 $data['carder_email'] = $fraud_info['carder_email']; 362 363 if ($fraud_info['high_risk_username']) { 364 $data['high_risk_username'] = $fraud_info['high_risk_username']; 365 } else { 366 $data['high_risk_username'] = ''; 367 } 368 369 if ($fraud_info['high_risk_password']) { 370 $data['high_risk_password'] = $fraud_info['high_risk_password']; 371 } else { 372 $data['high_risk_password'] = ''; 373 } 374 375 $data['bin_match'] = $fraud_info['bin_match']; 376 377 if ($fraud_info['bin_country']) { 378 $data['bin_country'] = $fraud_info['bin_country']; 379 } else { 380 $data['bin_country'] = ''; 381 } 382 383 $data['bin_name_match'] = $fraud_info['bin_name_match']; 384 385 if ($fraud_info['bin_name']) { 386 $data['bin_name'] = $fraud_info['bin_name']; 387 } else { 388 $data['bin_name'] = ''; 389 } 390 391 $data['bin_phone_match'] = $fraud_info['bin_phone_match']; 392 393 if ($fraud_info['bin_phone']) { 394 $data['bin_phone'] = $fraud_info['bin_phone']; 395 } else { 396 $data['bin_phone'] = ''; 397 } 398 399 if ($fraud_info['customer_phone_in_billing_location']) { 400 $data['customer_phone_in_billing_location'] = $fraud_info['customer_phone_in_billing_location']; 401 } else { 402 $data['customer_phone_in_billing_location'] = ''; 403 } 404 405 $data['ship_forward'] = $fraud_info['ship_forward']; 406 407 if ($fraud_info['city_postal_match']) { 408 $data['city_postal_match'] = $fraud_info['city_postal_match']; 409 } else { 410 $data['city_postal_match'] = ''; 411 } 412 413 if ($fraud_info['ship_city_postal_match']) { 414 $data['ship_city_postal_match'] = $fraud_info['ship_city_postal_match']; 415 } else { 416 $data['ship_city_postal_match'] = ''; 417 } 418 419 $data['score'] = $fraud_info['score']; 420 $data['explanation'] = $fraud_info['explanation']; 421 $data['risk_score'] = $fraud_info['risk_score']; 422 $data['queries_remaining'] = $fraud_info['queries_remaining']; 423 $data['maxmind_id'] = $fraud_info['maxmind_id']; 424 $data['error'] = $fraud_info['error']; 425 426 return $this->load->view('extension/fraud/maxmind_info', $data); 427 } 428 } 429}