/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $valuesFromExport = array(); $valuesFromExport[] = new \Oara\Curl\Parameter('FromDate', $dStartDate->format("d/m/Y")); $valuesFromExport[] = new \Oara\Curl\Parameter('ToDate', $dEndDate->format("d/m/Y")); $valuesFromExport[] = new \Oara\Curl\Parameter('ReportType', 'dailyReport'); $valuesFromExport[] = new \Oara\Curl\Parameter('Link', '-1'); $urls = array(); $urls[] = new \Oara\Curl\Request('https://www.bet365affiliates.com/Members/Members/Statistics/Print.aspx?', $valuesFromExport); $exportReport = $this->_client->get($urls); $doc = new \DOMDocument(); @$doc->loadHTML($exportReport[0]); $xpath = new \DOMXPath($doc); $tableList = $xpath->query('//*[contains(concat(" ", normalize-space(@id), " "), " Results ")]'); if (!\preg_match("/No results exist/", $exportReport[0])) { $exportData = \Oara\Utilities::htmlToCsv(\Oara\Utilities::DOMinnerHTML($tableList->current())); $num = \count($exportData); for ($i = 2; $i < $num - 1; $i++) { $transactionExportArray = \str_getcsv($exportData[$i], ";"); $transaction = array(); $transaction['merchantId'] = 1; $transactionDate = \DateTime::createFromFormat("d-m-Y", $transactionExportArray[1]); $transaction['date'] = $transactionDate->format("Y-m-d 00:00:00"); $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[27]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[32]); if ($transaction['amount'] != 0 && $transaction['commission'] != 0) { $totalTransactions[] = $transaction; } } } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $urls = array(); $valuesFormExport = array(new \Oara\Curl\Parameter('apikey', $this->_apiPassword), new \Oara\Curl\Parameter('Format', 'CSV'), new \Oara\Curl\Parameter('FieldSeparator', 'comma'), new \Oara\Curl\Parameter('Fields', 'MerchantID,OrderDate,NetworkOrderID,CustomTrackingID,OrderValue,AffiliateCommission,TransactionType,PaidtoAffiliate,DatePaidToAffiliate'), new \Oara\Curl\Parameter('AffiliateID', $this->_user), new \Oara\Curl\Parameter('DateFormat', 'DD/MM/YYYY+HH:MN:SS'), new \Oara\Curl\Parameter('PendingSales', 'YES'), new \Oara\Curl\Parameter('ValidatedSales', 'YES'), new \Oara\Curl\Parameter('VoidSales', 'YES'), new \Oara\Curl\Parameter('GetNewSales', 'YES')); $valuesFormExport[] = new \Oara\Curl\Parameter('DateFrom', $dStartDate->format("Y-m-d")); $valuesFormExport[] = new \Oara\Curl\Parameter('DateTo', $dEndDate->format("Y-m-d")); $urls[] = new \Oara\Curl\Request('http://affiliate.paidonresults.com/api/transactions?', $valuesFormExport); $exportReport = $this->_client->get($urls); $exportData = \str_getcsv($exportReport[0], "\r\n"); $num = \count($exportData); for ($i = 1; $i < $num; $i++) { $exportData[$i] = preg_replace("/\n/", "", $exportData[$i]); $transactionExportArray = \str_getcsv($exportData[$i], ","); if (isset($merchantIdList[$transactionExportArray[0]])) { $transaction = array(); $transaction['merchantId'] = $transactionExportArray[0]; $transactionDate = \DateTime::createFromFormat("d/m/Y H:i:s", $transactionExportArray[1]); $transaction['date'] = $transactionDate->format("Y-m-d H:i:s"); $transaction['unique_id'] = $transactionExportArray[2]; if ($transactionExportArray[3] != null) { $transaction['custom_id'] = $transactionExportArray[3]; } $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[4]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[5]); if ($transactionExportArray[6] == 'VALIDATED') { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($transactionExportArray[6] == 'PENDING') { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($transactionExportArray[6] == 'VOID') { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } } } $totalTransactions[] = $transaction; } } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $urls = array(); $urls[] = new \Oara\Curl\Request('https://www.sportscoverdirect.com/promoters/earn', array()); $exportReport = $this->_client->get($urls); $doc = new \DOMDocument(); @$doc->loadHTML($exportReport[0]); $xpath = new \DOMXPath($doc); $results = $xpath->query('//*[contains(concat(" ", normalize-space(@class), " "), " performance ")]'); if (\count($results) > 0) { $exportData = \Oara\Utilities::htmlToCsv(\Oara\Utilities::DOMinnerHTML($results->item(0))); $num = \count($exportData) - 1; //the last row is show-more show-less for ($i = 1; $i < $num; $i++) { $overviewExportArray = \str_getcsv($exportData[$i], ";"); $transaction = array(); $transaction['merchantId'] = 1; $date = \DateTime::createFromFormat("d/m/Y", $overviewExportArray[0]); $transaction['date'] = $date->format("Y-m-d H:i:s"); $transaction['amount'] = \Oara\Utilities::parseDouble($overviewExportArray[1]); $transaction['commission'] = \Oara\Utilities::parseDouble($overviewExportArray[1]); $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; $totalTransactions[] = $transaction; } } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $affiliate_id = $this->_id; $auth_key = $this->_apikey; $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $strUrl = "https://classic." . $this->_domain . '/api.php'; $strUrl .= "?affiliate_id={$affiliate_id}"; $strUrl .= "&auth_key={$auth_key}"; $strUrl .= "&module=AffiliateReport"; $strUrl .= "&output=" . \urlencode('csv'); $strUrl .= "&report_id=8"; $strUrl .= "&date_begin=" . \urlencode($dStartDate->format("Y-m-d H:i:s")); $strUrl .= "&date_end=" . \urlencode($dEndDate->format("Y-m-d H:i:s")); $strUrl .= "&include_inactive_merchants=0"; $strUrl .= "&search_results_include_cpc=0"; $returnResult = self::makeCall($strUrl); $exportData = \str_getcsv($returnResult, "\r\n"); $num = \count($exportData); for ($i = 1; $i < $num; $i++) { $transactionExportArray = \str_getcsv($exportData[$i], ","); if (\count($transactionExportArray) > 1 && isset($merchantIdList[(int) $transactionExportArray[17]])) { $transaction = array(); $merchantId = (int) $transactionExportArray[17]; $transaction['merchantId'] = $merchantId; $transactionDate = \DateTime::createFromFormat("m-d-Y H:i:s", $transactionExportArray[11]); if (!$transactionDate) { $transactionDate = \DateTime::createFromFormat("Y-m-d H:i:s", $transactionExportArray[11]); } $transaction['date'] = $transactionDate->format("Y-m-d H:i:s"); $transaction['unique_id'] = (int) $transactionExportArray[5]; if ($transactionExportArray[4] != null) { $transaction['custom_id'] = $transactionExportArray[4]; } $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[6]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[7]); $totalTransactions[] = $transaction; } } return $totalTransactions; }
/** * @return array */ public function getPaymentHistory() { $paymentHistory = array(); $urls = array(); $urls[] = new \Oara\Curl\Request("{$this->_extension}/affiliate_invoice.html?", array()); $exportReport = $this->_client->get($urls); $doc = new \DOMDocument(); @$doc->loadHTML($exportReport[0]); $xpath = new \DOMXPath($doc); $tableList = $xpath->query('//table[@class="bluetable"]'); $exportData = \Oara\Utilities::htmlToCsv(\Oara\Utilities::DOMinnerHTML($tableList->item(0))); $num = \count($exportData); for ($i = 4; $i < $num; $i++) { $paymentExportArray = \str_getcsv($exportData[$i], ";"); if (\count($paymentExportArray) > 7) { $obj = array(); $date = \DateTime::createFromFormat("d/m/Y", $paymentExportArray[1]); $obj['date'] = $date->format("Y-m-d H:i:s"); $obj['pid'] = \preg_replace('/[^0-9]/', "", $paymentExportArray[0]); $obj['method'] = 'BACS'; $obj['value'] = \Oara\Utilities::parseDouble($paymentExportArray[4]); $paymentHistory[] = $obj; } } return $paymentHistory; }
/** * (non-PHPdoc) * @see Oara/Network/Base#getPaymentHistory() */ public function getPaymentHistory() { $paymentHistory = array(); $options = array(); foreach ($this->_apiClient->getPayments($options) as $payment) { $obj = array(); $date = new \DateTime($payment->billDate); $obj['date'] = $date->format("Y-m-d H:i:s"); $obj['pid'] = $date->format("Ymd"); $obj['method'] = 'BACS'; $obj['value'] = \Oara\Utilities::parseDouble($payment->endTotal); $paymentHistory[] = $obj; } return $paymentHistory; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $transactions = array(); $page = 1; $import = true; $merchantIdMap = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); while ($import) { $totalRows = $page * 300; $urls = array(); $valuesFromExport = array(); $valuesFromExport[] = new \Oara\Curl\Parameter('email', $this->_user); $valuesFromExport[] = new \Oara\Curl\Parameter('apikey', $this->_pass); $valuesFromExport[] = new \Oara\Curl\Parameter('from', $dStartDate->format("Y-m-d")); $valuesFromExport[] = new \Oara\Curl\Parameter('to', $dEndDate->format("Y-m-d")); $valuesFromExport[] = new \Oara\Curl\Parameter('limit', 300); $valuesFromExport[] = new \Oara\Curl\Parameter('page', $page); $urls[] = new \Oara\Curl\Request("http://api.affiliate4you.nl/1.0/orders.csv?", $valuesFromExport); try { $result = $this->_client->get($urls); } catch (\Exception $e) { return $transactions; } $exportData = \str_getcsv($result[0], "\n"); for ($i = 1; $i < \count($exportData); $i++) { $transactionExportArray = \str_getcsv($exportData[$i], ";"); if (isset($merchantIdMap[$transactionExportArray[12]])) { $transaction = array(); $transaction['unique_id'] = $transactionExportArray[3]; $transaction['merchantId'] = $transactionExportArray[12]; $transaction['date'] = $transactionExportArray[0]; if ($transactionExportArray[8] != null) { $transaction['custom_id'] = $transactionExportArray[8]; } if ($transactionExportArray[5] == 'approved') { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($transactionExportArray[5] == 'new' || $transactionExportArray[5] == 'onhold') { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($transactionExportArray[5] == 'declined') { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } } } $transaction['amount'] = $transactionExportArray[4]; $transaction['commission'] = $transactionExportArray[1]; $transactions[] = $transaction; } } if (\count($exportData) != $totalRows + 1) { $import = false; } $page++; } return $transactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $merchantMap = \Oara\Utilities::getMerchantNameMapFromMerchantList($merchantList); $valuesFromExport = array(); $valuesFromExport[] = new \Oara\Curl\Parameter('api_key', $this->_apiPassword); $valuesFromExport[] = new \Oara\Curl\Parameter('start_date', $dStartDate->format("Y-m-d")); $valuesFromExport[] = new \Oara\Curl\Parameter('end_date', $dEndDate->format("Y-m-d")); $valuesFromExport[] = new \Oara\Curl\Parameter('filter[Stat.offer_id]', \implode(",", $merchantIdList)); $urls = array(); $urls[] = new \Oara\Curl\Request('http://p.wowtrk.com/stats/lead_report.xml?', $valuesFromExport); $exportReport = $this->_exportClient->get($urls); $exportData = self::loadXml($exportReport[0]); foreach ($exportData->stats->stat as $transaction) { if (isset($merchantMap[(string) $transaction->offer])) { $obj = array(); $obj['merchantId'] = $merchantMap[(string) $transaction->offer]; $obj['date'] = (string) $transaction->date_time; $obj['status'] = \Oara\Utilities::STATUS_CONFIRMED; $obj['customId'] = (string) $transaction->sub_id; $obj['amount'] = \Oara\Utilities::parseDouble((string) $transaction->payout); $obj['commission'] = \Oara\Utilities::parseDouble((string) $transaction->payout); if ($obj['amount'] != 0 || $obj['commission'] != 0) { $totalTransactions[] = $obj; } } } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array * @throws Exception */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $user = $this->_credentials['user']; $password = $this->_credentials['password']; foreach ($this->_publisherId as $publisherId) { $page = 1; $pageSize = 100; $finish = false; while (!$finish) { $url = "https://services.daisycon.com:443/publishers/{$publisherId}/transactions?page={$page}&per_page={$pageSize}&start=" . \urlencode($dStartDate->format("Y-m-d H:i:s")) . "&end=" . \urlencode($dEndDate->format("Y-m-d H:i:s")); // initialize curl resource $ch = \curl_init(); // set the http request authentication headers $headers = array('Authorization: Basic ' . \base64_encode($user . ':' . $password)); // set curl options \curl_setopt($ch, CURLOPT_URL, $url); \curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); \curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // execute curl $response = \curl_exec($ch); $transactionList = \json_decode($response, true); if ($transactionList) { foreach ($transactionList as $transaction) { $merchantId = $transaction['program_id']; if (isset($merchantIdList[$merchantId])) { $transactionArray = array(); $transactionArray['unique_id'] = $transaction['affiliatemarketing_id']; $transactionArray['merchantId'] = $merchantId; $transactionDate = new \DateTime($transaction['date']); $transactionArray['date'] = $transactionDate->format("Y-m-d H:i:s"); $parts = \current($transaction['parts']); if ($parts['subid'] != null) { $transactionArray['custom_id'] = $parts['subid']; } if ($parts['status'] == 'approved') { $transactionArray['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($parts['status'] == 'pending' || $parts['status'] == 'potential' || $parts['status'] == 'open') { $transactionArray['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($parts['status'] == 'disapproved' || $parts['status'] == 'incasso') { $transactionArray['status'] = \Oara\Utilities::STATUS_DECLINED; } else { throw new \Exception("New status {$parts['status']}"); } } } $transactionArray['amount'] = \Oara\Utilities::parseDouble($parts['revenue']); $transactionArray['commission'] = \Oara\Utilities::parseDouble($parts['commission']); $totalTransactions[] = $transactionArray; } } } if (\count($transactionList) != $pageSize) { $finish = true; } $page++; } } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $page = 1; $continue = true; while ($continue) { $valuesFormExport = array(); $valuesFormExport[] = new \Oara\Curl\Parameter('dateFrom', $dStartDate->format("d/m/Y")); $valuesFormExport[] = new \Oara\Curl\Parameter('dateTo', $dEndDate->format("d/m/Y")); $valuesFormExport[] = new \Oara\Curl\Parameter('startIndex', $page); $valuesFormExport[] = new \Oara\Curl\Parameter('numberOfPages', '1'); $urls = array(); $urls[] = new \Oara\Curl\Request('https://etrader.kalahari.com/view/affiliate/transactionreport', $valuesFormExport); $exportReport = $this->_client->post($urls); $doc = new \DOMDocument(); @$doc->loadHTML($exportReport[0]); $xpath = new \DOMXPath($doc); $results = $xpath->query('//table'); $exportData = \Oara\Utilities::htmlToCsv(\Oara\Utilities::DOMinnerHTML($results->item(0))); if (\preg_match("/No results found/", $exportData[1])) { break; } else { $page++; } for ($j = 1; $j < \count($exportData); $j++) { $transactionDetail = \str_getcsv($exportData[$j], ";"); $transaction = array(); $transaction['merchantId'] = "1"; if (\preg_match("/Order dispatched: ([0-9]+) /", $transactionDetail[2], $match)) { $transaction['custom_id'] = $match[1]; } $date = \DateTime::createFromFormat("d M Y", $transactionDetail[0]); $transaction['date'] = $date->format("Y-m-d 00:00:00"); $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; if ($transactionDetail[3] != null) { $transaction['amount'] = \Oara\Utilities::parseDouble($transactionDetail[3]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionDetail[3]); } else { if ($transactionDetail[4] != null) { $transaction['amount'] = \Oara\Utilities::parseDouble($transactionDetail[4]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionDetail[4]); } } $totalTransactions[] = $transaction; } } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $transactions = array(); $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); foreach ($this->_publisherList as $publisherId => $publisherName) { $page = 0; $import = true; while ($import) { $offset = $page * 300; $url = "https://{$this->_pass}@itunes-api.performancehorizon.com/reporting/report_publisher/publisher/{$publisherId}/conversion.json?"; $url .= "status=approved|mixed|pending|rejected"; $url .= "&start_date=" . \urlencode($dStartDate->format("Y-m-d H:i")); $url .= "&end_date=" . \urlencode($dEndDate->format("Y-m-d H:i")); $url .= "&offset=" . $offset; $result = \file_get_contents($url); $conversionList = \json_decode($result, true); foreach ($conversionList["conversions"] as $conversion) { $conversion = $conversion["conversion_data"]; $conversion["campaign_id"] = \str_replace("l", "", $conversion["campaign_id"]); if (isset($merchantIdList[$conversion["campaign_id"]])) { $transaction = array(); $transaction['unique_id'] = $conversion["conversion_id"]; $transaction['merchantId'] = $conversion["campaign_id"]; $transaction['date'] = $conversion["conversion_time"]; if ($conversion["publisher_reference"] != null) { $transaction['custom_id'] = $conversion["publisher_reference"]; } if ($conversion["conversion_value"]["conversion_status"] == 'approved') { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($conversion["conversion_value"]["conversion_status"] == 'pending' || $conversion["conversion_value"]["conversion_status"] == 'mixed') { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($conversion["conversion_value"]["conversion_status"] == 'rejected') { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } } } $transaction['amount'] = $conversion["conversion_value"]["value"]; $transaction['currency'] = $conversion["currency"]; $transaction['commission'] = $conversion["conversion_value"]["publisher_commission"]; $transactions[] = $transaction; } } if ((int) $conversionList["count"] < $offset) { $import = false; } $page++; } } return $transactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $rowIndex = 0; $rowCount = 0; $apiURL = "http://{$this->_domain}/affiliates/api/5/reports.asmx/Conversions?api_key={$this->_apiPassword}&affiliate_id={$this->_user}&start_date=" . \urlencode($dStartDate->format("Y-m-d H:i:s")) . "&end_date=" . \urlencode($dEndDate->format("Y-m-d H:i:s")) . "&offer_id=0&start_at_row={$rowIndex}&row_limit={$rowCount}"; $response = self::call($apiURL); if (isset($response["conversions"]["conversion"])) { foreach ($response["conversions"]["conversion"] as $transactionApi) { $transaction = array(); $merchantId = (int) $transactionApi["offer_id"]; if (isset($merchantIdList[$merchantId])) { $transaction['merchantId'] = $merchantId; $transactionDate = new \DateTime($transactionApi["conversion_date"]); $transaction['date'] = $transactionDate->format("Y-m-d H:i:s"); if (!isset($transactionApi["order_id"])) { $transaction['unique_id'] = $transactionApi["conversion_id"]; } else { $transaction['unique_id'] = $transactionApi["order_id"]; } if (\count($transactionApi["subid_1"]) > 0) { $transaction['custom_id'] = $transactionApi["subid_1"]; } if ($transactionApi["disposition"] == "Approved") { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($transactionApi["disposition"] == "Pending" || $transactionApi["disposition"] == null) { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($transactionApi["disposition"] == "Rejected") { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } } } $transaction['amount'] = $transactionApi["price"]; $transaction['commission'] = $transactionApi["price"]; $totalTransactions[] = $transaction; } } } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $diff = $dStartDate->diff($dEndDate)->days; $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $auxDate = clone $dStartDate; for ($i = 0; $i <= $diff; $i++) { $totalAuxTransactions = array(); $transactionList = $this->getSales($auxDate->format("Y-m-d"), 0, $this->_pageSize); if ($transactionList->total > 0) { $iteration = self::calculeIterationNumber($transactionList->total, $this->_pageSize); $totalAuxTransactions = \array_merge($totalAuxTransactions, $transactionList->saleItems->saleItem); for ($j = 1; $j < $iteration; $j++) { $transactionList = $this->getSales($auxDate->format("Y-m-d"), $j, $this->_pageSize); $totalAuxTransactions = \array_merge($totalAuxTransactions, $transactionList->saleItems->saleItem); unset($transactionList); \gc_collect_cycles(); } } $leadList = $this->_apiClient->getLeads($auxDate->format("Y-m-d"), 'trackingDate', null, null, null, 0, $this->_pageSize); if ($leadList->total > 0) { $iteration = self::calculeIterationNumber($leadList->total, $this->_pageSize); $totalAuxTransactions = \array_merge($totalAuxTransactions, $leadList->leadItems->leadItem); for ($j = 1; $j < $iteration; $j++) { $leadList = $this->_apiClient->getLeads($auxDate->format("Y-m-d"), 'trackingDate', null, null, null, $j, $this->_pageSize); $totalAuxTransactions = \array_merge($totalAuxTransactions, $leadList->leadItems->leadItem); unset($leadList); \gc_collect_cycles(); } } foreach ($totalAuxTransactions as $transaction) { if ($merchantList == null || isset($merchantIdList[$transaction->program->id])) { $obj = array(); $obj['currency'] = $transaction->currency; if ($transaction->reviewState == 'confirmed') { $obj['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($transaction->reviewState == 'open' || $transaction->reviewState == 'approved') { $obj['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($transaction->reviewState == 'rejected') { $obj['status'] = \Oara\Utilities::STATUS_DECLINED; } } } if (!isset($transaction->amount) || $transaction->amount == 0) { $obj['amount'] = $transaction->commission; } else { $obj['amount'] = $transaction->amount; } if (isset($transaction->gpps) && $transaction->gpps != null) { foreach ($transaction->gpps->gpp as $gpp) { if ($gpp->id == "zpar0") { if (\strlen($gpp->_) > 150) { $gpp->_ = \substr($gpp->_, 0, 150); } $obj['custom_id'] = $gpp->_; } } } if (isset($transaction->trackingCategory->_) && $transaction->trackingCategory->_ != null) { $obj['title'] = $transaction->trackingCategory->_; } $obj['unique_id'] = $transaction->id; $obj['commission'] = $transaction->commission; $dateString = \explode(".", $transaction->trackingDate); $dateString = \explode("+", $dateString[0]); $transactionDate = \DateTime::createFromFormat("Y-m-d\\TH:i:s", $dateString[0]); $obj["date"] = $transactionDate->format("Y-m-d H:i:s"); $obj['merchantId'] = $transaction->program->id; $obj['approved'] = $transaction->reviewState == 'approved' ? true : false; $totalTransactions[] = $obj; } } unset($totalAuxTransactions); \gc_collect_cycles(); $interval = new \DateInterval('P1D'); $auxDate->add($interval); } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array * @throws Exception */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $startDate = $dStartDate->format('d/m/Y'); $endDate = $dEndDate->format('d/m/Y'); $marchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $valueIndex = 9; $commissionIndex = 16; $statusIndex = 17; $valuesFormExport = array(new \Oara\Curl\Parameter('user', $this->_exportUser), new \Oara\Curl\Parameter('pwd', $this->_exportPassword), new \Oara\Curl\Parameter('report', 'AMSCommission_Breakdown'), new \Oara\Curl\Parameter('groupby', 'Programme'), new \Oara\Curl\Parameter('groupdate', 'Day'), new \Oara\Curl\Parameter('creative', ''), new \Oara\Curl\Parameter('CommOnly', '1'), new \Oara\Curl\Parameter('showimpressions', 'True'), new \Oara\Curl\Parameter('showclicks', 'True'), new \Oara\Curl\Parameter('showreferrals', 'True'), new \Oara\Curl\Parameter('showtransactionvalues', 'True'), new \Oara\Curl\Parameter('sort', 'Date asc'), new \Oara\Curl\Parameter('format', 'csv')); $valuesFormExport[] = new \Oara\Curl\Parameter('datefrom', $startDate); $valuesFormExport[] = new \Oara\Curl\Parameter('dateto', $endDate); $urls = array(); $urls[] = new \Oara\Curl\Request($this->_serverUrl . 'reports/remote.aspx?', $valuesFormExport); $exportReport = $this->_client->get($urls); $exportData = \str_getcsv($exportReport[0], "\r\n"); $num = \count($exportData); for ($i = 1; $i < $num; $i++) { $transactionExportArray = \str_getcsv($exportData[$i], ","); if (isset($marchantIdList[$transactionExportArray[4]])) { $transaction = array(); $transaction['unique_id'] = \preg_replace('/\\D/', '', $transactionExportArray[0]); $transaction['merchantId'] = $transactionExportArray[4]; $transactionDate = \DateTime::createFromFormat("d/m/Y H:i:s", $transactionExportArray[2]); $transaction['date'] = $transactionDate->format("Y-m-d H:i:s"); if ($transactionExportArray[7] != null) { $transaction['custom_id'] = $transactionExportArray[7]; } if (\preg_match('/Unpaid Confirmed/', $transactionExportArray[$statusIndex]) || \preg_match('/Paid Confirmed/', $transactionExportArray[$statusIndex])) { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if (\preg_match('/Unpaid Unconfirmed/', $transactionExportArray[$statusIndex])) { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if (\preg_match('/Unpaid Rejected/', $transactionExportArray[$statusIndex])) { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } else { throw new \Exception("No Status supported " . $transactionExportArray[$statusIndex]); } } } $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[$valueIndex]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[$commissionIndex]); $totalTransactions[] = $transaction; } } return $totalTransactions; }
/** * @param $paymentId * @return array * @throws \Exception */ public function paymentTransactions($paymentId) { $transactionList = array(); $urls = array(); $valuesFormExport = array(); $valuesFormExport[] = new \Oara\Curl\Parameter('popup', 'true'); $valuesFormExport[] = new \Oara\Curl\Parameter('payment_id', $paymentId); $urls[] = new \Oara\Curl\Request('http://publisher.tradedoubler.com/pan/reports/Payment.html?', $valuesFormExport); $exportReport = $this->_client->get($urls); $doc = new \DOMDocument(); @$doc->loadHTML(\Oara\Utilities::DOMinnerHTML($exportReport[0])); $xpath = new \DOMXPath($doc); $results = $xpath->query('//a'); $urls = array(); foreach ($results as $result) { $url = $result->getAttribute('href'); $urls[] = new \Oara\Curl\Request("http://publisher.tradedoubler.com" . $url . "&format=CSV", array()); } $exportReportList = $this->_client->get($urls); foreach ($exportReportList as $exportReport) { $exportReportData = \str_getcsv($exportReport, "\r\n"); $num = \count($exportReportData); for ($i = 2; $i < $num - 1; $i++) { $transactionArray = \str_getcsv($exportReportData[$i], ";"); if ($transactionArray[8] != '') { $transactionList[] = $transactionArray[8]; } else { if ($transactionArray[7] != '') { $transactionList[] = $transactionArray[7]; } else { throw new \Exception("No Identifier"); } } } } return $transactionList; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $limit = 100; $page = 1; $loop = true; while ($loop) { $apiURL = "http://api.hasoffers.com/v3/Affiliate_Report.json?limit={$limit}&page={$page}&Method=getConversions&api_key={$this->_apiPassword}&NetworkId={$this->_domain}&fields[]=Stat.offer_id&fields[]=Stat.datetime&fields[]=Offer.name&fields[]=Stat.conversion_status&fields[]=Stat.payout&fields[]=Stat.conversion_sale_amount&fields[]=Stat.ip&fields[]=Stat.ad_id&fields[]=Stat.affiliate_info1&sort[Stat.datetime]=desc&filters[Stat.date][conditional]=BETWEEN&filters[Stat.date][values][]={$dStartDate->format("Y-m-d")}&filters[Stat.date][values][]={$dEndDate->format("Y-m-d")}&data_start={$dStartDate->format("Y-m-d")}&data_end={$dEndDate->format("Y-m-d")}"; $response = self::call($apiURL); foreach ($response["response"]["data"]["data"] as $transactionApi) { $transaction = array(); $merchantId = (int) $transactionApi["Stat"]["offer_id"]; if ($merchantList == null || isset($merchantIdList[$merchantId])) { $transaction['merchantId'] = $merchantId; $transaction['date'] = $transactionApi["Stat"]["datetime"]; if ($transactionApi["Stat"]["ad_id"] != null) { $transaction['unique_id'] = $transactionApi["Stat"]["ad_id"]; } if ($transactionApi["Stat"]["affiliate_info1"] != null) { $transaction['custom_id'] = $transactionApi["Stat"]["affiliate_info1"]; } if ($transactionApi["Stat"]["conversion_status"] == "approved") { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($transactionApi["Stat"]["conversion_status"] == "pending") { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($transactionApi["Stat"]["conversion_status"] == "rejected") { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } } } $transaction['amount'] = $transactionApi["Stat"]["payout"]; if (isset($transactionApi["Stat"]["conversion_sale_amount"])) { $transaction['amount'] = $transactionApi["Stat"]["conversion_sale_amount"]; } $transaction['commission'] = $transactionApi["Stat"]["payout"]; $totalTransactions[] = $transaction; } } if ((int) $response["response"]["data"]["pageCount"] <= $page) { $loop = false; } $page++; } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array * @throws Exception */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $urls = array(); $url = "https://foxtransfer.eu/index.php?q=prices.en.html&page=affiliate_orders&language=1&basedir=theme2&what=record_time&what=record_time&fy={$dStartDate->format("Y")}&fm={$dStartDate->format("n")}&fd={$dStartDate->format("j")}&ty={$dEndDate->format("Y")}&tm={$dEndDate->format("n")}&td={$dEndDate->format("j")}"; $urls[] = new \Oara\Curl\Request($url, array()); $exportReport = $this->_client->get($urls); $exportReport = \str_replace("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", "", $exportReport[0]); $doc = new \DOMDocument(); @$doc->loadHTML($exportReport); $xpath = new \DOMXPath($doc); $tableList = $xpath->query('//*[contains(concat(" ", normalize-space(@id), " "), " tartalom-hatter ")]'); $exportData = \Oara\Utilities::htmlToCsv(\Oara\Utilities::DOMinnerHTML($tableList->item(0))); $num = \count($exportData); for ($i = 11; $i < $num - 8; $i++) { $transactionExportArray = \str_getcsv($exportData[$i], ";"); $transaction = array(); $transaction['merchantId'] = 1; $transaction['unique_id'] = $transactionExportArray[0]; $transaction['date'] = "{$dStartDate->format("Y")}-{$dStartDate->format("m")}-01 00:00:00"; if ($transactionExportArray[7] == "Confirmed") { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($transactionExportArray[7] == "Cancelled") { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } else { throw new \Exception("New status found {$transaction['status']}"); } } $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[10]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[13]); $totalTransactions[] = $transaction; } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $merchantMap = \Oara\Utilities::getMerchantNameMapFromMerchantList($merchantList); $statusArray = array(0, 1, 2); foreach ($statusArray as $status) { $valuesFromExport = array(new \Oara\Curl\Parameter('AfID', '0'), new \Oara\Curl\Parameter('S', ''), new \Oara\Curl\Parameter('ST', '2'), new \Oara\Curl\Parameter('Period', '6'), new \Oara\Curl\Parameter('AdID', '0'), new \Oara\Curl\Parameter('B', '2')); $valuesFromExport[] = new \Oara\Curl\Parameter('SD', $dStartDate->format("Y-m-d")); $valuesFromExport[] = new \Oara\Curl\Parameter('ED', $dEndDate->format("Y-m-d")); $valuesFromExport[] = new \Oara\Curl\Parameter('Status', $status); $urls = array(); $urls[] = new \Oara\Curl\Request('http://www.clixgalore.co.uk/AffiliateTransactionSentReport_Excel.aspx?', $valuesFromExport); $exportReport = $this->_client->get($urls); $exportData = \Oara\Utilities::htmlToCsv($exportReport[0]); $num = \count($exportData); for ($i = 1; $i < $num; $i++) { $transactionExportArray = \str_getcsv($exportData[$i], ";"); if (isset($merchantMap[$transactionExportArray[2]])) { $transaction = array(); $merchantId = (int) $merchantMap[$transactionExportArray[2]]; $transaction['merchantId'] = $merchantId; $transactionDate = \DateTime::createFromFormat("d M Y H:m", $transactionExportArray[0]); $transaction['date'] = $transactionDate->format("Y-m-d H:i:s"); if ($transactionExportArray[6] != null) { $transaction['custom_id'] = $transactionExportArray[6]; } if ($status == 1) { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($status == 2) { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($status == 0) { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } } } $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[4]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[5]); $totalTransactions[] = $transaction; } } } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $dirDestination = \realpath(\dirname(COOKIES_BASE_DIR)) . '/pdf'; $file = "{$this->_bucket}/sales/salesreport_" . $dStartDate->format("Ym") . ".zip"; $url = "http://affjet.dc.fubra.net/tools/gsutil/gs.php?bucket=" . \urlencode($file) . "&type=cp"; $context = \stream_context_create(array('http' => array('header' => "Authorization: Basic " . \base64_encode("{$this->_httpLogin}")))); \file_put_contents($dirDestination . "/report.zip", \file_get_contents($url, false, $context)); $zip = new \ZipArchive(); if ($zip->open($dirDestination . "/report.zip") === TRUE) { $zip->extractTo($dirDestination); $zip->close(); } else { return $totalTransactions; } \unlink($dirDestination . "/report.zip"); $salesReport = \file_get_contents($dirDestination . "/salesreport_" . $dStartDate->format("Ym") . ".csv"); $salesReport = \explode("\n", $salesReport); for ($i = 1; $i < \count($salesReport) - 1; $i++) { $row = \str_getcsv($salesReport[$i], ","); $sub = false; if ($row[12] < 0) { $sub = true; } $obj = array(); $obj['unique_id'] = $row[0] . $row[3]; $obj['merchantId'] = "1"; $obj['date'] = $row[1] . " 00:00:00"; $obj['custom_id'] = $row[5]; $comission = 0.3; if ($row[6] == "com.petrolprices.app") { $value = 2.99; $obj['amount'] = \Oara\Utilities::parseDouble($value); $obj['commission'] = \Oara\Utilities::parseDouble($value - $value * $comission); } else { if ($row[6] == "com.fubra.wac") { if ($obj['date'] < "2013-04-23 00:00:00") { $value = 0.6899999999999999; $obj['amount'] = \Oara\Utilities::parseDouble($value); $obj['commission'] = \Oara\Utilities::parseDouble($value - $value * $comission); } else { $value = 1.49; $obj['amount'] = \Oara\Utilities::parseDouble($value); $obj['commission'] = \Oara\Utilities::parseDouble($value - $value * $comission); } } } if ($sub) { $obj['amount'] = -$obj['amount']; $obj['commission'] = -$obj['commission']; } $obj['status'] = \Oara\Utilities::STATUS_CONFIRMED; $totalTransactions[] = $obj; } \unlink($dirDestination . "/salesreport_" . $dStartDate->format("Ym") . ".csv"); return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array * @throws Exception */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $dEndDate->add(new \DateInterval('P1D')); $publisherStatisticsServiceUrl = 'https://api.affili.net/V2.0/PublisherStatistics.svc?wsdl'; $publisherStatisticsService = new \SoapClient($publisherStatisticsServiceUrl, array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE, 'soap_version' => SOAP_1_1)); $iterationNumber = self::calculeIterationNumber(\count($merchantIdList), 100); for ($currentIteration = 0; $currentIteration < $iterationNumber; $currentIteration++) { $merchantListSlice = \array_slice(\array_keys($merchantIdList), 100 * $currentIteration, 100); $merchantListAux = array(); foreach ($merchantListSlice as $merchant) { $merchantListAux[] = (string) $merchant; } $params = array('StartDate' => \strtotime($dStartDate->format("Y-m-d")), 'EndDate' => \strtotime($dEndDate->format("Y-m-d")), 'TransactionStatus' => 'All', 'ProgramIds' => $merchantListAux); $currentPage = 1; $transactionList = self::affilinetCall('transaction', $publisherStatisticsService, $params, 0, $currentPage); while (isset($transactionList->TotalRecords) && $transactionList->TotalRecords > 0 && isset($transactionList->TransactionCollection->Transaction)) { $transactionCollection = array(); if (!\is_array($transactionList->TransactionCollection->Transaction)) { $transactionCollection[] = $transactionList->TransactionCollection->Transaction; } else { $transactionCollection = $transactionList->TransactionCollection->Transaction; } foreach ($transactionCollection as $transactionObject) { $transaction = array(); $transaction["status"] = $transactionObject->TransactionStatus; $transaction["unique_id"] = $transactionObject->TransactionId; $transaction["commission"] = $transactionObject->PublisherCommission; $transaction["amount"] = $transactionObject->NetPrice; $dateString = \explode(".", $transactionObject->RegistrationDate); $transactionDate = \DateTime::createFromFormat("Y-m-d\\TH:i:s", $dateString[0]); $transaction["date"] = $transactionDate->format("Y-m-d H:i:s"); $transaction["merchantId"] = $transactionObject->ProgramId; $transaction["custom_id"] = $transactionObject->SubId; if ($transaction['status'] == 'Confirmed') { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($transaction['status'] == 'Open') { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($transaction['status'] == 'Cancelled') { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } } } $totalTransactions[] = $transaction; } $currentPage++; $transactionList = self::affilinetCall('transaction', $publisherStatisticsService, $params, 0, $currentPage); } } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array * @throws Exception */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $dEndDate->add(new \DateInterval('P1D')); $valuesFormExport = array(); $valuesFormExport[] = new \Oara\Curl\Parameter('pDB', 'UK'); $valuesFormExport[] = new \Oara\Curl\Parameter('content', 'PDF'); $valuesFormExport[] = new \Oara\Curl\Parameter('pDate1', $dStartDate->format("m/j/Y")); $valuesFormExport[] = new \Oara\Curl\Parameter('pDate2', $dEndDate->format("m/j/Y")); $urls = array(); $urls[] = new \Oara\Curl\Request('https://www.autoeurope.co.uk/afftools/iatareport_popup.cfm?', $valuesFormExport); $exportReport = $this->_client->post($urls); $xmlTransactionList = self::readTransactions($exportReport[0]); foreach ($xmlTransactionList as $xmlTransaction) { $transaction = array(); $transaction['merchantId'] = 1; $date = \DateTime::createFromFormat("m/d/Y", $xmlTransaction['Booked']); $transaction['date'] = $date->format("Y-m-d 00:00:00"); $transaction['amount'] = \Oara\Utilities::parseDouble((double) $xmlTransaction['commissionValue']); $transaction['commission'] = \Oara\Utilities::parseDouble((double) $xmlTransaction['commission']); $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; $transaction['unique_id'] = $xmlTransaction['Res #']; if (isset($xmlTransaction['Affiliate1']) && isset($xmlTransaction['Affiliate2'])) { $customId = (string) $xmlTransaction['Affiliate1'] . (string) $xmlTransaction['Affiliate2']; $transaction['custom_id'] = $customId; } $totalTransactions[] = $transaction; } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $mechantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $returnResult = self::makeCall("activity", "&dateStart=" . $dStartDate->format("m/d/Y") . "&dateEnd=" . $dEndDate->format("m/d/Y")); $exportData = \str_getcsv($returnResult, "\r\n"); $num = \count($exportData); for ($i = 1; $i < $num; $i++) { $transactionExportArray = \str_getcsv($exportData[$i], "|"); if (\count($transactionExportArray) > 1 && isset($mechantIdList[(int) $transactionExportArray[2]])) { $transaction = array(); $merchantId = (int) $transactionExportArray[2]; $transaction['merchantId'] = $merchantId; $dateString = str_replace(array(" AM", " PM"), "", $transactionExportArray[3]); $transactionDate = \DateTime::createFromFormat("m/d/Y H:i:s", $dateString); $transaction['date'] = $transactionDate->format("yyyy-MM-dd HH:mm:ss"); $transaction['unique_id'] = (int) $transactionExportArray[0]; if ($transactionExportArray[1] != null) { $transaction['custom_id'] = $transactionExportArray[1]; } if ($transactionExportArray[9] != null) { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($transactionExportArray[8] != null) { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($transactionExportArray[7] != null) { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } else { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } } } $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[4]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[5]); $totalTransactions[] = $transaction; } } return $totalTransactions; }
/** * @return array * @throws Exception */ public function getPaymentHistory() { $paymentHistory = array(); $urls = array(); $urls[] = new \Oara\Curl\Request('https://member.impactradius.co.uk/secure/nositemesh/accounting/getPayStubParamsCSV.csv', array()); $exportReport = $this->_client->get($urls); $exportData = \str_getcsv($exportReport[0], "\n"); $num = \count($exportData); for ($i = 1; $i < $num; $i++) { $paymentExportArray = \str_getcsv($exportData[$i], ","); $obj = array(); $date = \DateTime::createFromFormat("M d, Y", $paymentExportArray[1]); $obj['date'] = $date->format("y-m-d H:i:s"); $obj['pid'] = $paymentExportArray[0]; $obj['method'] = 'BACS'; $obj['value'] = \Oara\Utilities::parseDouble($paymentExportArray[6]); $paymentHistory[] = $obj; } return $paymentHistory; }
/** * @return array */ public function getPaymentHistory() { $paymentHistory = array(); $urls = array(); $urls[] = new \Oara\Curl\Request('http://affiliates.mypcbackup.com/paychecks', array()); $exportReport = $this->_client->get($urls); $doc = new \DOMDocument(); @$doc->loadHTML($exportReport[0]); $xpath = new \DOMXPath($doc); $tableList = $xpath->query('//*[contains(concat(" ", normalize-space(@class), " "), " transtable ")]'); if ($tableList->item(0) != null) { $exportData = \Oara\Utilities::htmlToCsv(\Oara\Utilities::DOMinnerHTML($tableList->item(0))); $num = \count($exportData); for ($i = 1; $i < $num; $i++) { $paymentExportArray = \str_getcsv($exportData[$i], ";"); try { $obj = array(); $date = \DateTime::createFromFormat("m/d/Y", $paymentExportArray[14]); $date->setTime(0, 0); $obj['date'] = $date->format("Y-m-d H:i:s"); $obj['pid'] = \preg_replace('/[^0-9\\.,]/', "", $paymentExportArray[14]); $obj['method'] = $paymentExportArray[16]; $obj['value'] = \Oara\Utilities::parseDouble($paymentExportArray[12]); $paymentHistory[] = $obj; } catch (\Exception $e) { echo "Payment failed\n"; } } } return $paymentHistory; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array * @throws \Exception */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $valuesFormExport = array(); $urls = array(); $urls[] = new \Oara\Curl\Request('http://system.fashiontraffic.com/stats/lead_report', $valuesFormExport); $exportReport = $this->_client->post($urls); $doc = new \DOMDocument(); @$doc->loadHTML($exportReport[0]); $xpath = new \DOMXPath($doc); $results = $xpath->query('//input[@name="data[_Token][key]"]'); foreach ($results as $values) { $valuesFormExport[] = new \Oara\Curl\Parameter($values->getAttribute("name"), $values->getAttribute("value")); } $results = $xpath->query('//input[@name="data[_Token][fields]"]'); foreach ($results as $values) { $valuesFormExport[] = new \Oara\Curl\Parameter($values->getAttribute("name"), $values->getAttribute("value")); } $valuesFormExport[] = new \Oara\Curl\Parameter("_method", 'POST'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][page]", ''); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.offer_id'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.datetime'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.ad_id'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.source'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.affiliate_info1'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.affiliate_info2'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.affiliate_info3'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.affiliate_info4'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.affiliate_info5'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.conversion_payout'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][fields][]", 'Stat.conversion_status'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][search][field]", ''); $valuesFormExport[] = new \Oara\Curl\Parameter("data[Report][search][value]", ''); $valuesFormExport[] = new \Oara\Curl\Parameter("data[DateRange][timezone]", 'America/New_York'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[DateRange][preset_date_range]", 'other'); $valuesFormExport[] = new \Oara\Curl\Parameter("data[DateRange][start_date]", $dStartDate->format("Y-m-d")); $valuesFormExport[] = new \Oara\Curl\Parameter("data[DateRange][end_date]", $dEndDate->format("Y-m-d")); $urls = array(); $urls[] = new \Oara\Curl\Request('http://system.fashiontraffic.com/stats/lead_report', $valuesFormExport); $exportReport = $this->_client->post($urls); $csvUrl = null; if (\preg_match("/report:(.*).csv/", $exportReport[0], $match)) { $csvUrl = "http://system.fashiontraffic.com/stats/conversion_report/report:{$match[1]}.csv"; } $valuesFormExport = array(); $urls = array(); $urls[] = new \Oara\Curl\Request($csvUrl, $valuesFormExport); $exportReport = $this->_client->get($urls); $exportData = \str_getcsv($exportReport[0], "\n"); $num = \count($exportData); for ($i = 1; $i < $num; $i++) { $transactionExportArray = \str_getcsv($exportData[$i], ","); if (isset($merchantIdList[(int) $transactionExportArray[0]])) { $transaction = array(); $merchantId = (int) $transactionExportArray[0]; $transaction['merchantId'] = $merchantId; $transaction['date'] = $transactionExportArray[1]; if ($transactionExportArray[5] != null) { $transaction['custom_id'] = $transactionExportArray[5]; } if ($transactionExportArray[10] == 'approved') { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($transactionExportArray[10] == 'rejected') { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } else { throw new \Exception("Status {$transactionExportArray[10]} unknown"); } } $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[9]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[9]); $totalTransactions[] = $transaction; } } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $chip = $this->_s; if ($this->_transactionList == null) { $urls = array(); $urls[] = new \Oara\Curl\Request("https://billing.purevpn.com/affiliates/scripts/server.php?C=Pap_Affiliates_Reports_TransactionsGrid&M=getCSVFile&S={$chip}&FormRequest=Y&FormResponse=Y", array()); $exportReport = $this->_client->post($urls); $this->_transactionList = \str_getcsv($exportReport[0], "\n"); } $exportData = $this->_transactionList; $num = \count($exportData); for ($i = 1; $i < $num; $i++) { $transactionExportArray = \str_getcsv($exportData[$i], ","); $transaction = array(); $transaction['merchantId'] = 1; $transaction['unique_id'] = $transactionExportArray[36]; $transaction['date'] = $transactionExportArray[5]; $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[1]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[0]); if ($transaction['date'] >= $dStartDate->format("Y-m-d H:i:s") && $transaction['date'] <= $dEndDate->format("Y-m-d H:i:s")) { $totalTransactions[] = $transaction; } } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $context = \stream_context_create(array('http' => array('header' => "Authorization: Basic " . \base64_encode("{$this->_user}:{$this->_pass}")))); $from = \urlencode($dStartDate->format("Y-m-d H:i:s")); $data = \file_get_contents("http://api.webepartners.pl/wydawca/Auctions?from={$from}", false, $context); $dataArray = \json_decode($data, true); foreach ($dataArray as $transactionObject) { if (isset($merchantIdList[$transactionObject["ProgramId"]])) { $transaction = array(); $transaction['merchantId'] = $transactionObject["ProgramId"]; $transaction['date'] = $transactionObject["AuctionDate"]; if (isset($transactionObject["AuctionId"]) && $transactionObject["AuctionId"] != '') { $transaction['unique_id'] = $transactionObject["AuctionId"]; } if (isset($transactionObject["subID"]) && $transactionObject["subID"] != '') { $transaction['custom_id'] = $transactionObject["subID"]; } if ($transactionObject["AuctionStatusId"] == 3 || $transactionObject["AuctionStatusId"] == 4 || $transactionObject["AuctionStatusId"] == 5) { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($transactionObject["AuctionStatusId"] == 1) { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($transactionObject["AuctionStatusId"] == 2) { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } else { if ($transactionObject["AuctionStatusId"] == 6) { $transaction['status'] = \Oara\Utilities::STATUS_PAID; } } } } $transaction['amount'] = \Oara\Utilities::parseDouble($transactionObject["OrderCost"]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionObject["Commission"]); $totalTransactions[] = $transaction; } } return $totalTransactions; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array * @throws \Exception */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $auxDate = clone $dStartDate; $amountDays = $dStartDate->diff($dEndDate)->days; for ($j = 0; $j <= $amountDays; $j++) { // Getting the csv by curl can throw an exception if the csv size is 0 bytes. So, first of all, get the json. If total is 0, continue, else, get the csv. $valuesFormExport = array(); $url = "https://partner-int-api.groupon.com/reporting/v2/order.json?clientId={$this->_credentials['apipassword']}&group=order&date={$auxDate->format("Y-m-d")}"; $urls = array(); $urls[] = new \Oara\Curl\Request($url, $valuesFormExport); $exportReport = $this->_client->get($urls); $jsonExportReport = json_decode($exportReport[0], true); if ($jsonExportReport['total'] != 0) { $valuesFormExport = array(); $url = "https://partner-int-api.groupon.com/reporting/v2/order.csv?clientId={$this->_credentials['apipassword']}&group=order&date={$auxDate->format("Y-m-d")}"; $urls = array(); $urls[] = new \Oara\Curl\Request($url, $valuesFormExport); $exportReport = $this->_client->get($urls); $exportData = \str_getcsv($exportReport[0], "\n"); $num = \count($exportData); for ($i = 1; $i < $num; $i++) { $transactionExportArray = \str_getcsv($exportData[$i], ","); $transaction = array(); $transaction['merchantId'] = "1"; $transaction['date'] = $auxDate->format("Y-m-d H:i:s"); $transaction['unique_id'] = $transactionExportArray[0]; $transaction['currency'] = $transactionExportArray[4]; if ($transactionExportArray[1] != null) { $transaction['custom_id'] = $transactionExportArray[1]; } if ($transactionExportArray[5] == 'VALID' || $transactionExportArray[5] == 'REFUNDED') { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($transactionExportArray[5] == 'INVALID') { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } else { throw new \Exception("Status {$transactionExportArray[5]} unknown"); } } $transaction['amount'] = \Oara\Utilities::parseDouble((double) $transactionExportArray[8]); $transaction['commission'] = \Oara\Utilities::parseDouble((double) $transactionExportArray[12]); $totalTransactions[] = $transaction; } } $auxDate->add(new \DateInterval('P1D')); } return $totalTransactions; }
/** * @return array */ public function getPaymentHistory() { $paymentHistory = array(); $urls = array(); $urls[] = new \Oara\Curl\Request('https://members.cj.com/member/cj/publisher/paymentStatus', array()); $exportReport = $this->_client->get($urls); if (\preg_match('/\\/publisher\\/getpublisherpaymenthistory\\.do/', $exportReport[0], $matches)) { $urls = array(); $valuesFromExport = array(new \Oara\Curl\Parameter('startRow', '0'), new \Oara\Curl\Parameter('sortKey', ''), new \Oara\Curl\Parameter('sortOrder', ''), new \Oara\Curl\Parameter('format', '6'), new \Oara\Curl\Parameter('button', 'Go')); $urls[] = new \Oara\Curl\Request('https://members.cj.com/member/' . $this->_memberId . '/publisher/getpublisherpaymenthistory.do?', $valuesFromExport); $exportReport = $this->_client->get($urls); $exportData = \str_getcsv($exportReport[0], "\n"); $num = \count($exportData); for ($j = 1; $j < $num; $j++) { $paymentData = \str_getcsv($exportData[$j], ","); $obj = array(); $date = \DateTime::createFromFormat("d-M-Y H:i \\P\\S\\T", $paymentData[0]); if (!$date) { $date = \DateTime::createFromFormat("d-M-Y H:i \\P\\D\\T", $paymentData[0]); } if ($date) { $obj['date'] = $date->format("Y-m-d H:i:s"); $obj['value'] = \Oara\Utilities::parseDouble($paymentData[1]); $obj['method'] = $paymentData[2]; $obj['pid'] = $paymentData[6]; $paymentHistory[] = $obj; } } } return $paymentHistory; }
/** * @param null $merchantList * @param \DateTime|null $dStartDate * @param \DateTime|null $dEndDate * @return array */ public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null) { $totalTransactions = array(); $merchantIdMap = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList); $result = $this->_client->getEventList(null, null, null, null, null, $dStartDate->format("Y-m-d"), $dEndDate->format("Y-m-d"), null, null, null, null, 0); foreach ($result->handler->events as $event) { if (isset($merchantIdMap[$event["programid"]])) { $transaction = array(); $transaction['unique_id'] = $event["eventid"]; $transaction['merchantId'] = $event["programid"]; $transaction['date'] = $event["eventdate"]; if ($event["subid"] != null) { $transaction['custom_id'] = $event["subid"]; if (\preg_match("/subid1=/", $transaction['custom_id'])) { $transaction['custom_id'] = str_replace("subid1=", "", $transaction['custom_id']); } } if ($event["eventstatus"] == 'APPROVED') { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($event["eventstatus"] == 'PENDING') { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($event["eventstatus"] == 'REJECTED') { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } } } $transaction['amount'] = \Oara\Utilities::parseDouble($event["netvalue"]); $transaction['commission'] = \Oara\Utilities::parseDouble($event["eventcommission"]); $totalTransactions[] = $transaction; } } return $totalTransactions; }