fraudlabspro.php (5502B)
1 <?php 2 class ModelExtensionFraudFraudLabsPro extends Model { 3 public function install() { 4 $this->db->query(" 5 CREATE TABLE IF NOT EXISTS `" . DB_PREFIX . "fraudlabspro` ( 6 `order_id` VARCHAR(11) NOT NULL, 7 `is_country_match` CHAR(2) NOT NULL, 8 `is_high_risk_country` CHAR(2) NOT NULL, 9 `distance_in_km` VARCHAR(10) NOT NULL, 10 `distance_in_mile` VARCHAR(10) NOT NULL, 11 `ip_address` VARCHAR(15) NOT NULL, 12 `ip_country` VARCHAR(2) NOT NULL, 13 `ip_continent` VARCHAR(20) NOT NULL, 14 `ip_region` VARCHAR(21) NOT NULL, 15 `ip_city` VARCHAR(21) NOT NULL, 16 `ip_latitude` VARCHAR(21) NOT NULL, 17 `ip_longitude` VARCHAR(21) NOT NULL, 18 `ip_timezone` VARCHAR(10) NOT NULL, 19 `ip_elevation` VARCHAR(10) NOT NULL, 20 `ip_domain` VARCHAR(50) NOT NULL, 21 `ip_mobile_mnc` VARCHAR(100) NOT NULL, 22 `ip_mobile_mcc` VARCHAR(100) NOT NULL, 23 `ip_mobile_brand` VARCHAR(100) NOT NULL, 24 `ip_netspeed` VARCHAR(10) NOT NULL, 25 `ip_isp_name` VARCHAR(50) NOT NULL, 26 `ip_usage_type` VARCHAR(30) NOT NULL, 27 `is_free_email` CHAR(2) NOT NULL, 28 `is_new_domain_name` CHAR(2) NOT NULL, 29 `is_proxy_ip_address` CHAR(2) NOT NULL, 30 `is_bin_found` CHAR(2) NOT NULL, 31 `is_bin_country_match` CHAR(2) NOT NULL, 32 `is_bin_name_match` CHAR(2) NOT NULL, 33 `is_bin_phone_match` CHAR(2) NOT NULL, 34 `is_bin_prepaid` CHAR(2) NOT NULL, 35 `is_address_ship_forward` CHAR(2) NOT NULL, 36 `is_bill_ship_city_match` CHAR(2) NOT NULL, 37 `is_bill_ship_state_match` CHAR(2) NOT NULL, 38 `is_bill_ship_country_match` CHAR(2) NOT NULL, 39 `is_bill_ship_postal_match` CHAR(2) NOT NULL, 40 `is_ip_blacklist` CHAR(2) NOT NULL, 41 `is_email_blacklist` CHAR(2) NOT NULL, 42 `is_credit_card_blacklist` CHAR(2) NOT NULL, 43 `is_device_blacklist` CHAR(2) NOT NULL, 44 `is_user_blacklist` CHAR(2) NOT NULL, 45 `fraudlabspro_score` CHAR(3) NOT NULL, 46 `fraudlabspro_distribution` CHAR(3) NOT NULL, 47 `fraudlabspro_status` CHAR(10) NOT NULL, 48 `fraudlabspro_id` CHAR(15) NOT NULL, 49 `fraudlabspro_error` CHAR(3) NOT NULL, 50 `fraudlabspro_message` VARCHAR(50) NOT NULL, 51 `fraudlabspro_credits` VARCHAR(10) NOT NULL, 52 `api_key` CHAR(32) NOT NULL, 53 PRIMARY KEY (`order_id`) 54 ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; 55 "); 56 57 $this->db->query("INSERT INTO `" . DB_PREFIX . "order_status` (`language_id`, `name`) VALUES (1, 'Fraud');"); 58 $status_fraud_id = $this->db->getLastId(); 59 60 $this->db->query("INSERT INTO `" . DB_PREFIX . "order_status` (`language_id`, `name`) VALUES (1, 'Fraud Review');"); 61 62 $status_fraud_review_id = $this->db->getLastId(); 63 64 $this->db->query("INSERT INTO `" . DB_PREFIX . "setting` (`code`, `key`, `value`, `serialized`) VALUES ('fraudlabspro', 'fraud_fraudlabspro_score', '80', '0');"); 65 $this->db->query("INSERT INTO `" . DB_PREFIX . "setting` (`code`, `key`, `value`, `serialized`) VALUES ('fraudlabspro', 'fraud_fraudlabspro_order_status_id', '" . (int)$status_fraud_id . "', '0');"); 66 $this->db->query("INSERT INTO `" . DB_PREFIX . "setting` (`code`, `key`, `value`, `serialized`) VALUES ('fraudlabspro', 'fraud_fraudlabspro_review_status_id', '" . (int)$status_fraud_review_id . "', '0');"); 67 $this->db->query("INSERT INTO `" . DB_PREFIX . "setting` (`code`, `key`, `value`, `serialized`) VALUES ('fraudlabspro', 'fraud_fraudlabspro_approve_status_id', '2', '0');"); 68 $this->db->query("INSERT INTO `" . DB_PREFIX . "setting` (`code`, `key`, `value`, `serialized`) VALUES ('fraudlabspro', 'fraud_fraudlabspro_reject_status_id', '8', '0');"); 69 70 $this->cache->delete('order_status.' . (int)$this->config->get('config_language_id')); 71 } 72 73 public function uninstall() { 74 //$this->db->query("DROP TABLE IF EXISTS `" . DB_PREFIX . "fraudlabspro`"); 75 $this->db->query("DELETE FROM `" . DB_PREFIX . "order_status` WHERE `name` = 'Fraud'"); 76 $this->db->query("DELETE FROM `" . DB_PREFIX . "order_status` WHERE `name` = 'Fraud Review'"); 77 } 78 79 public function getOrder($order_id) { 80 $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "fraudlabspro` WHERE order_id = '" . (int)$order_id . "'"); 81 82 return $query->row; 83 } 84 85 public function addOrderHistory($order_id, $data, $store_id = 0) { 86 $json = array(); 87 88 $this->load->model('setting/store'); 89 90 $store_info = $this->model_setting_store->getStore($store_id); 91 92 if ($store_info) { 93 $url = $store_info['ssl']; 94 } else { 95 $url = HTTPS_CATALOG; 96 } 97 98 if (isset($this->session->data['cookie'])) { 99 $curl = curl_init(); 100 101 // Set SSL if required 102 if (substr($url, 0, 5) == 'https') { 103 curl_setopt($curl, CURLOPT_PORT, 443); 104 } 105 106 curl_setopt($curl, CURLOPT_HEADER, false); 107 curl_setopt($curl, CURLINFO_HEADER_OUT, true); 108 curl_setopt($curl, CURLOPT_USERAGENT, $this->request->server['HTTP_USER_AGENT']); 109 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 110 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 111 curl_setopt($curl, CURLOPT_FORBID_REUSE, false); 112 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 113 curl_setopt($curl, CURLOPT_URL, $url . 'index.php?route=api/order/history&order_id=' . $order_id); 114 curl_setopt($curl, CURLOPT_POST, true); 115 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data)); 116 curl_setopt($curl, CURLOPT_COOKIE, session_name() . '=' . $this->session->data['cookie'] . ';'); 117 118 $json = curl_exec($curl); 119 120 curl_close($curl); 121 } 122 123 return $json; 124 } 125 }