function fromRow($rowData) { $modelMapper = new WPAM_Data_Models_ModelMapper(); $modelMapper->map($rowData, $this); $binConverter = new WPAM_Util_BinConverter(); $this->dateCreated = strtotime($this->dateCreated); $this->trackingKey = $binConverter->stringToBin($this->trackingKey); }
public function fromRow($rowData) { $modelMapper = new WPAM_Data_Models_ModelMapper(); $binConverter = new WPAM_Util_BinConverter(); $modelMapper->map($rowData, $this); $this->dateCreated = strtotime($this->dateCreated); $this->uniqueRefKey = $binConverter->stringToBin($rowData->uniqueRefKey); $this->userData = unserialize($rowData->userData); }
function to_token($uniqueRefKey) { $binConverter = new WPAM_Util_BinConverter(); $binRefKey = $binConverter->stringToBin($uniqueRefKey); $creative_id = 1; $reserved = 0; $revRefKey = new WPAM_Tracking_TrackingKey(); $revRefKey->setAffiliateRefKey($binRefKey); $revRefKey->setCreativeId($creative_id); $revRefKey->setReserved($reserved); $token = $revRefKey->pack(); var_dump($token); return $token; }
public function unpack($data) { $binConverter = new WPAM_Util_BinConverter(); $data = $binConverter->stringToBin($data); if (strlen($data) != 28) { throw new Exception(sprintf(__('invalid refkey format. (length=%s)', 'wpam'), strlen($data))); } //try both unpacking methods - test cases refKey zBVGC-a7cCyBJfVLhI1TkrdFO12 and FxjiRElrO8RryBSjNwSdh94rxB5 $unpacked = unpack("A20aid/Lcid/Lr", $data); if (strlen($unpacked['aid']) != 20) { $unpacked = unpack("a20aid/Lcid/Lr", $data); } //this output will prevent wp_redirect from working //if ( WPAM_DEBUG ) // var_export($unpacked); $this->affiliateRefKey = $unpacked['aid']; $this->creativeId = $unpacked['cid']; $this->reserved = $unpacked['r']; }
public function handleCheckoutWithRefKey($purchaseLogId, $purchaseAmount, $strRefKey) { $db = new WPAM_Data_DataAccess(); $binConverter = new WPAM_Util_BinConverter(); $affiliate = NULL; // keeping this block and "($affiliate !== NULL)" seperate to // help indicate any problems // (purchase log recorded w/o a purchase event) if (!empty($strRefKey)) { $trackingToken = $db->getTrackingTokenRepository()->loadBy(array('trackingKey' => $strRefKey)); if ($trackingToken !== NULL) { $ttpl = $db->getTrackingTokenPurchaseLogRepository()->loadBy(array('trackingTokenId' => $trackingToken->trackingTokenId, 'purchaseLogId' => $purchaseLogId)); if ($ttpl === NULL) { $trackingTokenPurchaseLog = new WPAM_Data_Models_TrackingTokenPurchaseLogModel(); $trackingTokenPurchaseLog->trackingTokenId = $trackingToken->trackingTokenId; $trackingTokenPurchaseLog->purchaseLogId = $purchaseLogId; $db->getTrackingTokenPurchaseLogRepository()->insert($trackingTokenPurchaseLog); //this will be handled further down if the affiliate is set and the purchase was successful //$db->getEventRepository()->quickInsert(time(), $strRefKey, 'purchase'); } } } $affiliate = $db->getAffiliateRepository()->loadByPurchaseLogId($purchaseLogId); if ($affiliate !== NULL && $affiliate->isActive()) { if ($strRefKey) { $db->getEventRepository()->quickInsert(time(), $binConverter->stringToBin($strRefKey), 'purchase'); } $creditAmount = $this->calculateCreditAmount($affiliate, $purchaseAmount); $creditAmount = apply_filters('wpam_credit_amount', $creditAmount, $purchaseAmount, $purchaseLogId); $currency = WPAM_MoneyHelper::getCurrencyCode(); $description = "Credit for sale of {$purchaseAmount} {$currency} (PURCHASE LOG ID = {$purchaseLogId})"; $existingCredit = $db->getTransactionRepository()->loadBy(array('referenceId' => $purchaseLogId)); if ($existingCredit === NULL) { $credit = new WPAM_Data_Models_TransactionModel(); $credit->dateCreated = time(); $credit->referenceId = $purchaseLogId; $credit->affiliateId = $affiliate->affiliateId; $credit->type = 'credit'; $credit->description = $description; $credit->amount = $creditAmount; $db->getTransactionRepository()->insert($credit); } else { $existingCredit->dateModified = time(); $existingCredit->description = $description; $existingCredit->amount = $creditAmount; $db->getTransactionRepository()->update($existingCredit); } } }