這裏就是你需要做的:
1)創建MySQL中的事務表與這些領域:
TRANSACTIONS
############
id - INT, AUTO-INCREMENT, UNSIGNED, NOT NULL
transaction_id - VARCHAR(8)
created_on - TIMESTAMP, DEFAULT CURRENT_TIMESTAMP()
2)創建MySQL中的轉換表與這些字段:
CONVERSIONS
###########
id - INT, AUTO-INCREMENT, UNSIGNED, NOT NULL
transaction_id - VARCHAR(8)
created_on - TIMESTAMP, DEFAULT CURRENT_TIMESTAMP()
3)在你的代碼之前,將它們發送到一個URL,你需要生成並附加唯一的事務ID(又名子ID):
/**
* Generates [$length] character transaction ID's. Verifies transaction ID is not
* currently in use. If it is, function recursively attempts to generate
* a unique one. After 10 attempts, it fails and returns false.
*
* @param PDO Database connection via dependency injection
* @param Int Length of string to generate
*/
function generateTransactionId($db, $length = 8)
{
// Don't let this function get stuck in endless recursion.
static $recursion_count = 0;
$recursion_count++;
if($recursion_count > 10)
{
$recursion_count = 0;
return false;
}
// Create transaction ID
$transaction_id = substr(md5(uniqid(mt_rand(), true)), 0, $length);
// Check to make sure it is unique
$query = "SELECT id FROM myDb.transactions WHERE transaction_id = ?";
$stmt = $db->prepare($query);
$stmt->execute(array($transaction_id));
$row = $stmt->fetch(PDO::FETCH_OBJ);
$stmt = null;
// If nothing found, we have a unique ID. Otherwise recursively find a unique one.
if(!is_object($row) || $row == false)
{
// Reset recursion counter
$recursion_count = 0;
// Found unique ID
return $transaction_id;
}
else
{
// Recursively generate unique transaction ID
return generateTransactionId($db);
}
}
$url = "http://www.google.com/";
$transaction_id = generateTransactionId($myPDOConnection);
// Add to URL
$url = $url . "?c3=" . $transaction_id;
// Do redirect to URL
header('Location: ' . $url);
4)用於接收另一個腳本回傳,你將要抓住通過GET小組ID /交易ID(或POST如果你是如此傾斜)和標記的轉化:
$transaction_id = isset($_GET['c3']) ? trim($_GET['c3']) : false;
if($transaction_id)
{
// Received conversion, add this transaction ID to conversions table
}
至於實時比較推移,唯一的指標,您有權限訪問重定向之前的時間以及收到回傳的時間點。您可以通過查看事務表中的COUNT()來查看您已完成多少重定向。您可以通過查看轉化表中的COUNT()來查看您已收到多少次回傳/轉化。