shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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 }