first commit
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
<?php
|
||||
class ModelExtensionFraudFraudLabsPro extends Model {
|
||||
public function install() {
|
||||
$this->db->query("
|
||||
CREATE TABLE IF NOT EXISTS `" . DB_PREFIX . "fraudlabspro` (
|
||||
`order_id` VARCHAR(11) NOT NULL,
|
||||
`is_country_match` CHAR(2) NOT NULL,
|
||||
`is_high_risk_country` CHAR(2) NOT NULL,
|
||||
`distance_in_km` VARCHAR(10) NOT NULL,
|
||||
`distance_in_mile` VARCHAR(10) NOT NULL,
|
||||
`ip_address` VARCHAR(15) NOT NULL,
|
||||
`ip_country` VARCHAR(2) NOT NULL,
|
||||
`ip_continent` VARCHAR(20) NOT NULL,
|
||||
`ip_region` VARCHAR(21) NOT NULL,
|
||||
`ip_city` VARCHAR(21) NOT NULL,
|
||||
`ip_latitude` VARCHAR(21) NOT NULL,
|
||||
`ip_longitude` VARCHAR(21) NOT NULL,
|
||||
`ip_timezone` VARCHAR(10) NOT NULL,
|
||||
`ip_elevation` VARCHAR(10) NOT NULL,
|
||||
`ip_domain` VARCHAR(50) NOT NULL,
|
||||
`ip_mobile_mnc` VARCHAR(100) NOT NULL,
|
||||
`ip_mobile_mcc` VARCHAR(100) NOT NULL,
|
||||
`ip_mobile_brand` VARCHAR(100) NOT NULL,
|
||||
`ip_netspeed` VARCHAR(10) NOT NULL,
|
||||
`ip_isp_name` VARCHAR(50) NOT NULL,
|
||||
`ip_usage_type` VARCHAR(30) NOT NULL,
|
||||
`is_free_email` CHAR(2) NOT NULL,
|
||||
`is_new_domain_name` CHAR(2) NOT NULL,
|
||||
`is_proxy_ip_address` CHAR(2) NOT NULL,
|
||||
`is_bin_found` CHAR(2) NOT NULL,
|
||||
`is_bin_country_match` CHAR(2) NOT NULL,
|
||||
`is_bin_name_match` CHAR(2) NOT NULL,
|
||||
`is_bin_phone_match` CHAR(2) NOT NULL,
|
||||
`is_bin_prepaid` CHAR(2) NOT NULL,
|
||||
`is_address_ship_forward` CHAR(2) NOT NULL,
|
||||
`is_bill_ship_city_match` CHAR(2) NOT NULL,
|
||||
`is_bill_ship_state_match` CHAR(2) NOT NULL,
|
||||
`is_bill_ship_country_match` CHAR(2) NOT NULL,
|
||||
`is_bill_ship_postal_match` CHAR(2) NOT NULL,
|
||||
`is_ip_blacklist` CHAR(2) NOT NULL,
|
||||
`is_email_blacklist` CHAR(2) NOT NULL,
|
||||
`is_credit_card_blacklist` CHAR(2) NOT NULL,
|
||||
`is_device_blacklist` CHAR(2) NOT NULL,
|
||||
`is_user_blacklist` CHAR(2) NOT NULL,
|
||||
`fraudlabspro_score` CHAR(3) NOT NULL,
|
||||
`fraudlabspro_distribution` CHAR(3) NOT NULL,
|
||||
`fraudlabspro_status` CHAR(10) NOT NULL,
|
||||
`fraudlabspro_id` CHAR(15) NOT NULL,
|
||||
`fraudlabspro_error` CHAR(3) NOT NULL,
|
||||
`fraudlabspro_message` VARCHAR(50) NOT NULL,
|
||||
`fraudlabspro_credits` VARCHAR(10) NOT NULL,
|
||||
`api_key` CHAR(32) NOT NULL,
|
||||
PRIMARY KEY (`order_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
");
|
||||
|
||||
$this->db->query("INSERT INTO `" . DB_PREFIX . "order_status` (`language_id`, `name`) VALUES (1, 'Fraud');");
|
||||
$status_fraud_id = $this->db->getLastId();
|
||||
|
||||
$this->db->query("INSERT INTO `" . DB_PREFIX . "order_status` (`language_id`, `name`) VALUES (1, 'Fraud Review');");
|
||||
|
||||
$status_fraud_review_id = $this->db->getLastId();
|
||||
|
||||
$this->db->query("INSERT INTO `" . DB_PREFIX . "setting` (`code`, `key`, `value`, `serialized`) VALUES ('fraudlabspro', 'fraud_fraudlabspro_score', '80', '0');");
|
||||
$this->db->query("INSERT INTO `" . DB_PREFIX . "setting` (`code`, `key`, `value`, `serialized`) VALUES ('fraudlabspro', 'fraud_fraudlabspro_order_status_id', '" . (int)$status_fraud_id . "', '0');");
|
||||
$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');");
|
||||
$this->db->query("INSERT INTO `" . DB_PREFIX . "setting` (`code`, `key`, `value`, `serialized`) VALUES ('fraudlabspro', 'fraud_fraudlabspro_approve_status_id', '2', '0');");
|
||||
$this->db->query("INSERT INTO `" . DB_PREFIX . "setting` (`code`, `key`, `value`, `serialized`) VALUES ('fraudlabspro', 'fraud_fraudlabspro_reject_status_id', '8', '0');");
|
||||
|
||||
$this->cache->delete('order_status.' . (int)$this->config->get('config_language_id'));
|
||||
}
|
||||
|
||||
public function uninstall() {
|
||||
//$this->db->query("DROP TABLE IF EXISTS `" . DB_PREFIX . "fraudlabspro`");
|
||||
$this->db->query("DELETE FROM `" . DB_PREFIX . "order_status` WHERE `name` = 'Fraud'");
|
||||
$this->db->query("DELETE FROM `" . DB_PREFIX . "order_status` WHERE `name` = 'Fraud Review'");
|
||||
}
|
||||
|
||||
public function getOrder($order_id) {
|
||||
$query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "fraudlabspro` WHERE order_id = '" . (int)$order_id . "'");
|
||||
|
||||
return $query->row;
|
||||
}
|
||||
|
||||
public function addOrderHistory($order_id, $data, $store_id = 0) {
|
||||
$json = array();
|
||||
|
||||
$this->load->model('setting/store');
|
||||
|
||||
$store_info = $this->model_setting_store->getStore($store_id);
|
||||
|
||||
if ($store_info) {
|
||||
$url = $store_info['ssl'];
|
||||
} else {
|
||||
$url = HTTPS_CATALOG;
|
||||
}
|
||||
|
||||
if (isset($this->session->data['cookie'])) {
|
||||
$curl = curl_init();
|
||||
|
||||
// Set SSL if required
|
||||
if (substr($url, 0, 5) == 'https') {
|
||||
curl_setopt($curl, CURLOPT_PORT, 443);
|
||||
}
|
||||
|
||||
curl_setopt($curl, CURLOPT_HEADER, false);
|
||||
curl_setopt($curl, CURLINFO_HEADER_OUT, true);
|
||||
curl_setopt($curl, CURLOPT_USERAGENT, $this->request->server['HTTP_USER_AGENT']);
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
|
||||
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($curl, CURLOPT_FORBID_REUSE, false);
|
||||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($curl, CURLOPT_URL, $url . 'index.php?route=api/order/history&order_id=' . $order_id);
|
||||
curl_setopt($curl, CURLOPT_POST, true);
|
||||
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
|
||||
curl_setopt($curl, CURLOPT_COOKIE, session_name() . '=' . $this->session->data['cookie'] . ';');
|
||||
|
||||
$json = curl_exec($curl);
|
||||
|
||||
curl_close($curl);
|
||||
}
|
||||
|
||||
return $json;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
class ModelExtensionFraudIp extends Model {
|
||||
public function install() {
|
||||
$this->db->query("
|
||||
CREATE TABLE IF NOT EXISTS `" . DB_PREFIX . "fraud_ip` (
|
||||
`ip` varchar(40) NOT NULL,
|
||||
`date_added` datetime NOT NULL,
|
||||
PRIMARY KEY (`ip`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
");
|
||||
}
|
||||
|
||||
public function uninstall() {
|
||||
$this->db->query("DROP TABLE IF EXISTS `" . DB_PREFIX . "fraud_ip`");
|
||||
}
|
||||
|
||||
public function addIp($ip) {
|
||||
$this->db->query("INSERT INTO `" . DB_PREFIX . "fraud_ip` SET `ip` = '" . $this->db->escape($ip) . "', date_added = NOW()");
|
||||
}
|
||||
|
||||
public function removeIp($ip) {
|
||||
$this->db->query("DELETE FROM `" . DB_PREFIX . "fraud_ip` WHERE `ip` = '" . $this->db->escape($ip) . "'");
|
||||
}
|
||||
|
||||
public function getIps($start = 0, $limit = 10) {
|
||||
if ($start < 0) {
|
||||
$start = 0;
|
||||
}
|
||||
|
||||
if ($limit < 1) {
|
||||
$limit = 10;
|
||||
}
|
||||
|
||||
$query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "fraud_ip` ORDER BY `ip` ASC LIMIT " . (int)$start . "," . (int)$limit);
|
||||
|
||||
return $query->rows;
|
||||
}
|
||||
|
||||
public function getTotalIps() {
|
||||
$query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "fraud_ip`");
|
||||
|
||||
return $query->row['total'];
|
||||
}
|
||||
|
||||
public function getTotalIpsByIp($ip) {
|
||||
$query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "fraud_ip` WHERE ip = '" . $this->db->escape($ip) . "'");
|
||||
|
||||
return $query->row['total'];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
class ModelExtensionFraudMaxMind extends Model {
|
||||
public function install() {
|
||||
$this->db->query("
|
||||
CREATE TABLE IF NOT EXISTS `" . DB_PREFIX . "maxmind` (
|
||||
`order_id` int(11) NOT NULL,
|
||||
`customer_id` int(11) NOT NULL,
|
||||
`country_match` varchar(3) NOT NULL,
|
||||
`country_code` varchar(2) NOT NULL,
|
||||
`high_risk_country` varchar(3) NOT NULL,
|
||||
`distance` int(11) NOT NULL,
|
||||
`ip_region` varchar(255) NOT NULL,
|
||||
`ip_city` varchar(255) NOT NULL,
|
||||
`ip_latitude` decimal(10,6) NOT NULL,
|
||||
`ip_longitude` decimal(10,6) NOT NULL,
|
||||
`ip_isp` varchar(255) NOT NULL,
|
||||
`ip_org` varchar(255) NOT NULL,
|
||||
`ip_asnum` int(11) NOT NULL,
|
||||
`ip_user_type` varchar(255) NOT NULL,
|
||||
`ip_country_confidence` varchar(3) NOT NULL,
|
||||
`ip_region_confidence` varchar(3) NOT NULL,
|
||||
`ip_city_confidence` varchar(3) NOT NULL,
|
||||
`ip_postal_confidence` varchar(3) NOT NULL,
|
||||
`ip_postal_code` varchar(10) NOT NULL,
|
||||
`ip_accuracy_radius` int(11) NOT NULL,
|
||||
`ip_net_speed_cell` varchar(255) NOT NULL,
|
||||
`ip_metro_code` int(3) NOT NULL,
|
||||
`ip_area_code` int(3) NOT NULL,
|
||||
`ip_time_zone` varchar(255) NOT NULL,
|
||||
`ip_region_name` varchar(255) NOT NULL,
|
||||
`ip_domain` varchar(255) NOT NULL,
|
||||
`ip_country_name` varchar(255) NOT NULL,
|
||||
`ip_continent_code` varchar(2) NOT NULL,
|
||||
`ip_corporate_proxy` varchar(3) NOT NULL,
|
||||
`anonymous_proxy` varchar(3) NOT NULL,
|
||||
`proxy_score` int(3) NOT NULL,
|
||||
`is_trans_proxy` varchar(3) NOT NULL,
|
||||
`free_mail` varchar(3) NOT NULL,
|
||||
`carder_email` varchar(3) NOT NULL,
|
||||
`high_risk_username` varchar(3) NOT NULL,
|
||||
`high_risk_password` varchar(3) NOT NULL,
|
||||
`bin_match` varchar(10) NOT NULL,
|
||||
`bin_country` varchar(2) NOT NULL,
|
||||
`bin_name_match` varchar(3) NOT NULL,
|
||||
`bin_name` varchar(255) NOT NULL,
|
||||
`bin_phone_match` varchar(3) NOT NULL,
|
||||
`bin_phone` varchar(32) NOT NULL,
|
||||
`customer_phone_in_billing_location` varchar(8) NOT NULL,
|
||||
`ship_forward` varchar(3) NOT NULL,
|
||||
`city_postal_match` varchar(3) NOT NULL,
|
||||
`ship_city_postal_match` varchar(3) NOT NULL,
|
||||
`score` decimal(10,5) NOT NULL,
|
||||
`explanation` text NOT NULL,
|
||||
`risk_score` decimal(10,5) NOT NULL,
|
||||
`queries_remaining` int(11) NOT NULL,
|
||||
`maxmind_id` varchar(8) NOT NULL,
|
||||
`error` text NOT NULL,
|
||||
`date_added` datetime NOT NULL,
|
||||
PRIMARY KEY (`order_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
|
||||
");
|
||||
}
|
||||
|
||||
public function uninstall() {
|
||||
$this->db->query("DROP TABLE IF EXISTS `" . DB_PREFIX . "maxmind`");
|
||||
}
|
||||
|
||||
public function getOrder($order_id) {
|
||||
$query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "maxmind` WHERE order_id = '" . (int)$order_id . "'");
|
||||
|
||||
return $query->row;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user