2012-04-19 17 views
4

我正在爲Php編寫一個賞金腳本。 (獎勵腳本),使用Prosper202的開源代碼。使用Subid和Postback跟蹤潛在客戶。我無法獲得這些東西。 示例。製作子標和回發跟蹤工作

我想追加唯一的ID在網址結束。 Like http://google.com/c3={unique_id}

這裏唯一id需要隨機生成至少vaild 15分鐘,需要存儲在Mysql數據庫中。

當成功的第三方服務器發送格式回發。

http://watever.com/c3={unique_id} 

然後我們需要實時比較兩者。 (這需要儘可能快以避免延誤最終用戶)。

我們應該在這種情況下使用什麼?

要用於Postback或php的JavaScript?

以及如何操作php腳本中的回發。

正如我所提到的。該腳本Prosper202也具有跟蹤回傳的相同功能。 但我無法從中提取有用的代碼。

資源: -

http://prosper.tracking202.com/apps/ 
http://prosper.tracking202.com/forum/6/21/tracking-subids#7848 

回答

1

這裏就是你需要做的:

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()來查看您已收到多少次回傳/轉化。