<?php

header('Access-Control-Allow-Origin: *');

// Version 19-11-22 18:00
const API_URL = "https://sendmelead.com/api/v3/lead/add";
const OFFER_ID = '##########'; // ID выбранного оффера
const WEBMASTER_TOKEN = '#########'; // Токен из Вашего профиля


function writeToLog(array $data)
{
    $log = date("F j, Y, g:i a") . PHP_EOL .
        "----------- DATA -------------" . PHP_EOL .
        print_r($data, true) . PHP_EOL .
        "----------- END --------------" . PHP_EOL;

    file_put_contents('./log_' . date("j.n.Y") . '.log', $log, FILE_APPEND);
}


writeToLog($_REQUEST['data']);


function getUserIP()
{
    // Get real visitor IP behind CloudFlare network
    if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
        $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
        $_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
    }
    $client = @$_SERVER['HTTP_CLIENT_IP'];
    $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
    $remote = $_SERVER['REMOTE_ADDR'];

    if (filter_var($client, FILTER_VALIDATE_IP)) {
        $ip = $client;
    } elseif (filter_var($forward, FILTER_VALIDATE_IP)) {
        $ip = $forward;
    } else {
        $ip = $remote;
    }

    return $ip;
}

// Проверки
$isCurlEnabled = function () {
    return function_exists('curl_version');
};

if (!$isCurlEnabled) {
    echo "<pre>";
    echo "pls install curl\n";
    echo "For *unix open terminal and type this:\n";
    echo 'sudo apt-get install curl && apt-get install php-curl';
    die;
}

/*
 * Обработка присланных данных
 */
if (in_array($_REQUEST['event'], ['lead'])) {
    $lead = $_REQUEST['data'];

    $utm = $lead['utm'];

    $args = [
        'offerId' => OFFER_ID,
        'domain' => $lead['page']['url'],
        'ip' => getUserIp(),
        'utm_campaign' => key_exists('utm_campaign', $utm) ? $utm['utm_campaign'] : null,
        'utm_content' => key_exists('utm_content', $lead) ? $utm['utm_content'] : null,
        'utm_medium' => key_exists('utm_medium', $utm) ? $utm['utm_medium'] : null,
        'utm_source' => key_exists('utm_source', $utm) ? $utm['utm_source'] : null,
        'utm_term' => key_exists('utm_term', $utm) ? $utm['utm_term'] : null,
        'clickid' => $lead['num'],
        'fbpxl' => key_exists('fbpxl', $lead) ? $lead['fbpxl'] : null,
    ];

    // Поля заявки
    foreach ($lead['form_data'] as $item) {
        $args[strtolower($item['name'])] = $item['value'];
    }

    $data = json_encode($args);
    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_URL => API_URL,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $data,
        CURLOPT_HTTPHEADER => [
            'Content-Type: application/json',
            'Content-Length: ' . strlen($data),
            'X-Token: ' . WEBMASTER_TOKEN,
        ],
    ]);

    $result = curl_exec($curl);
    curl_close($curl);
    writeToLog($args, $result);

    $result = json_decode($result, true);

    if ($result !== null) {
        echo 'ok';
    }
    exit;
}

