Revision 2017.3060 Keywords ads, advertising, Peanut Labs, server See also peanutlabs.*
Peanut Labs requires that you integrate their
The examples below are just a guideline to getting started. There are numerous ways to implement this functionality and naturally we can't list them all. Please see the Peanut Labs server callback documentation for further information.
<?php $db = new mysqli('localhost', 'YOURDATABASEUSER', 'YOURDATABASEUSERPASSWORD', 'YOURDATABASE'); if (!$db) { // Can't connect to the database echo( 0 ); } define("TABLE_NAME", "peanutlabs"); // Database table name (change for your needs) define("APPLICATION_KEY", 'Your_Application_Key'); // Your Peanut Labs application key define("TRANSACTION_KEY", 'Your_Transaction_Key'); // Your Peanut Labs transaction key define("PUBLISHER_ID", "Your_App_ID"); // Your Peanut Labs app ID $transactionHash = $_GET['txnHash']; $oidHash = $_GET['oidHash']; $cmd = $_GET['cmd']; $endUserId = $_GET['endUserId']; // 'sample_user_id'; $status = $_GET['status']; // Transaction status $surveyId = $_GET['offerInvitationId']; // Survey ID $currencyAmount = $_GET['currencyAmt']; $transactionId = $_GET['transactionId']; $publisherCut = $_GET['amt']; $myTransactionHash = md5($transactionId . TRANSACTION_KEY); $myOidHash = md5($surveyId . APPLICATION_KEY); if ($myTransactionHash == $transactionHash) { // Transaction hash is valid } else { // Invalid transaction hash //echo( "invalid transation hash - " . $myTransactionHash . " " . $transactionHash ); echo( 0 ); exit; } if ($myOidHash == $oidHash) { // OID hash is valid } else { // Invalid OID hash //echo( "invalid OID hash" ); echo( 0 ); exit; } // Update DB with $publisherCut // Escape the strings to prevent SQL injection attacks $kEndUserId = $db->real_escape_string($endUserId); $kStatus = $db->real_escape_string($status); $kSurveyId = $db->real_escape_string($surveyId); $kCurrencyAmount = (int)$db->real_escape_string($currencyAmount); $kTransactionId = $db->real_escape_string($transactionId); $kPublisherCut = (float)$db->real_escape_string($publisherCut); // Set the values to insert into the database $now = time(); $query = $db->prepare("INSERT INTO " . TABLE_NAME . " (userId, status, surveyId, currencyAmount, transactionId, publisherCut, timestamp) VALUES ( ?, ?, ?, ?, ?, ?, ?);" ); $query->bind_param("sssisd", $kEndUserId, $kStatus, $kSurveyId, $kCurrencyAmount, $kTransactionId, $kPublisherCut, $now); // Execute the query $result = $query->execute(); if(!$result) { //echo( "DB query failed" ); echo(0); exit; } echo(1); ?>
<?php $db = new mysqli('localhost', 'YOURDATABASEUSER', 'YOURDATABASEUSERPASSWORD', 'YOURDATABASE'); if (!$db) { // Can't connect to the DB trigger_error( "Cannot connect to the DB" ); } define("TABLE_NAME", "peanutlabs"); // Database table name (change for your needs) define("APPLICATION_KEY", 'Your_Application_Key'); // Your Peanut Labs application key define("TRANSACTION_KEY", 'Your_Transaction_Key'); // Your Peanut Labs transaction key define("PUBLISHER_ID", "Your_App_ID"); // Your Peanut Labs app ID // Get the user ID passed to the GET call, for example "http://yoursite.com/getUser.php?userId=User_Id_Here" $kEndUserId = $db->real_escape_string( $_GET['userId'] ); // Create an array to hold the rows $rows = array(); // Get the SQL column $queryString = "SELECT * FROM peanutlabs WHERE userId = '" . $kEndUserId . "' ORDER BY timestamp DESC LIMIT 1"; $result = $db->query( $queryString ); if ($result) { // Fetch associative array $i = 1; while ($row = $result->fetch_assoc()) { $rows[$i++] = $row; } $result->free(); // Close connection $db->close(); // Return the data echo json_encode($rows); } else { trigger_error('Query failed: ' . $queryString . ' Error: ' . $db->error, E_USER_ERROR); } ?>
CREATE TABLE IF NOT EXISTS `peanutlabs` ( `id` mediumint(9) NOT NULL AUTO_INCREMENT, `userId` text COLLATE utf8_unicode_ci NOT NULL, `status` char(1) COLLATE utf8_unicode_ci NOT NULL, `surveyId` text COLLATE utf8_unicode_ci NOT NULL, `currencyAmount` int(11) NOT NULL, `transactionId` text COLLATE utf8_unicode_ci NOT NULL, `publisherCut` float NOT NULL, `timestamp` int(11) NOT NULL, UNIQUE KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=10 ;