File: /var/www/vhosts/onlinedev.com/httpdocs/sherlock_transactions/index.php
<?php
//multiplexare de id-uri pentru sistemul de plata sherlock
//config
define('HOST', 'localhost');
define('USER', 'prog');
define('PASS', 'prog123');
define('DB', 'sherlock_transactions');
define('OFFSET', 5700); //asta va fi primul id generat , care e ceva mai mare decat cel mai mare order_id din teslogos la ora implementarii acestui sistem
//end config
//site-uri actualmente in sistem: teslogos.com, materiel-professionnel-occasion.com, mon-catalogue-flash.com
//explicatie: sistemul de plata sherlock nu permite plata a doua tranzactii cu acelasi transaction_id. cum mai multe site-uri utilizeaza acest sistem de plata, trebuie sa generez id-uri unice pentru sherlock si sa tin minte corespondentele cu
//id-urile fiecarui site. pt asta am folosit o tabela "transactions" in care :
// global_id = id-ul unic transmis catre sherlock , de asemenea primary key al tabelei. de fapt ceea ce se trimite la sherlock e acest id + valoarea constantei OFFSET
// site = denumirea site-ului - e un text tip "teslogos" , "mpo" , "catalog"
// site_transaction_id = id-ul local al site-ului
// created_at = data la care a fost generat id-ul
//apelarea va fi de forma: http://sherlock.onlinedev.com/teslogos/id - pentru generarea unui id unic nou, pe baza id-ului pasat ca parametru
// sau: http://sherlock.onlinedev.com/translate/teslogos/id - pentru transformarea id-ului global pasat ca parametru in id-ul corespunzator site-ului teslogos
mysql_connect(HOST, USER, PASS) or die('could not connect');
mysql_select_db(DB) or die('could not select db');
switch ($_REQUEST['action']) {
case 'translate'://
$site = mysql_escape_string($_REQUEST['site']);
$global_id = intval($_REQUEST['id']) - OFFSET;
if($global_id <=0) die('invalid id '.$global_id);
$sql = 'SELECT site_transaction_id FROM transactions WHERE global_id = '.($global_id);
$q = mysql_query($sql);
$row = mysql_fetch_array($q);
echo $row['site_transaction_id'];
die;
break;
default://
$site = mysql_escape_string($_REQUEST['site']);
$id = intval($_REQUEST['id']);
if (!$id) die('Invalid id value');
if (!$site) die('invalid site value');
$sql = 'INSERT INTO transactions(site_transaction_id, site, created_at) VALUES('.$id.', "'.$site.'", "'.date('Y-m-d H:i:s').'")';
$q = mysql_query($sql);
if (!$q) die(mysql_error());
$generated_id = mysql_insert_id();
echo ($generated_id + OFFSET);
die;
break;
}