HEX
Server: Apache
System: Linux ns308404 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
User: root (0)
PHP: 8.3.31
Disabled: opcache_get_status
Upload Files
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;
}