/** * @return array * @throws \Exception */ public function getPaymentHistory() { $paymentHistory = array(); $urls = array(); $urls[] = new \Oara\Curl\Request('http://affiliates.affiliatefuture.com/myaccount/invoices.aspx', array()); $exportReport = $this->_client->get($urls); $doc = new \DOMDocument(); @$doc->loadHTML($exportReport[0]); $xpath = new \DOMXPath($doc); $tableList = $xpath->query('//table'); $registerTable = $tableList->item(12); if ($registerTable == null) { throw new \Exception('Fail getting the payment History'); } $registerLines = $registerTable->childNodes; for ($i = 1; $i < $registerLines->length; $i++) { $registerLine = $registerLines->item($i)->childNodes; $obj = array(); $date = \DateTime::createFromFormat("d/m/Y", trim($registerLine->item(1)->nodeValue)); $date->setTime(0, 0); $obj['date'] = $date->format("Y-m-d H:i:s"); $obj['pid'] = trim($registerLine->item(0)->nodeValue); $value = trim(substr(trim($registerLine->item(4)->nodeValue), 4)); $obj['value'] = \Oara\Utilities::parseDouble($value); $obj['method'] = 'BACS'; $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(); $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; }
/** * @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(); $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 */ 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 * @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 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('ctl00$cphPage$reportFrom', $dStartDate->format("Y-m-d")); $valuesFromExport[] = new \Oara\Curl\Parameter('ctl00$cphPage$reportTo', $dEndDate->format("Y-m-d")); $urls = array(); $urls[] = new \Oara\Curl\Request('https://affiliates.affutd.com/affiliatesv1/DataServiceWrapper/DataService.svc/Export/CSV/Affiliates_Reports_GeneralStats_DailyFigures', $valuesFromExport); $exportReport = $this->_client->post($urls); $exportData = \str_getcsv($exportReport[0], "\n"); $num = \count($exportData); for ($i = 2; $i < $num - 1; $i++) { $transactionExportArray = \str_getcsv($exportData[$i], ","); $transaction = array(); $transaction['merchantId'] = 1; $date = \DateTime::createFromFormat("d-m-Y", trim($transactionExportArray[0])); $date->setTime(0, 0); $transaction['date'] = $date->format("Y-m-d H:i:s"); $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[16]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[16]); $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(); $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; }
/** * @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); $valuesFromExport = array(); $valuesFromExport[] = new \Oara\Curl\Parameter('c', 'stats'); $valuesFromExport[] = new \Oara\Curl\Parameter('id_shop', ''); $valuesFromExport[] = new \Oara\Curl\Parameter('a', 'listMonthDayOrder'); $valuesFromExport[] = new \Oara\Curl\Parameter('month', $dEndDate->fromat("Y-m")); $valuesFromExport[] = new \Oara\Curl\Parameter('export', 'csv'); $urls = array(); $urls[] = new \Oara\Curl\Request('http://www.afiliant.com/publisher/index.php?', $valuesFromExport); $exportData = null; try { $exportReport = $this->_client->get($urls); $exportData = \str_getcsv($exportReport[0], "\r\n"); } catch (\Exception $e) { echo "No data \n"; } if ($exportData != null) { $num = \count($exportData); for ($i = 0; $i < $num; $i++) { $transactionExportArray = \str_getcsv($exportData[$i], ";"); if (isset($merchantMap[$transactionExportArray[1]])) { $transaction = array(); $merchantId = (int) $merchantMap[$transactionExportArray[1]]; $transaction['merchantId'] = $merchantId; $transaction['date'] = $transactionExportArray[0] . " 00:00:00"; $transaction['unique_id'] = $transactionExportArray[3]; if (isset($transactionExportArray[8]) && $transactionExportArray[8] != null) { $transaction['custom_id'] = $transactionExportArray[8]; } if ($transactionExportArray[6] == 'zaakceptowana') { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } else { if ($transactionExportArray[6] == 'oczekuje') { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($transactionExportArray[6] == 'odrzucona') { $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(); //---------------------------------------------- // get recordset of list of transactions $request = new \Pap_Api_TransactionsGrid($this->_session); // set filter $request->addFilter('dateinserted', 'D>=', $dStartDate->format("Y-m-d")); $request->addFilter('dateinserted', 'D<=', $dEndDate->format("Y-m-d")); $request->setLimit(0, 100); $request->setSorting('t_orderid', false); $request->sendNow(); $grid = $request->getGrid(); $recordset = $grid->getRecordset(); // iterate through the records foreach ($recordset as $rec) { $transaction = array(); $transaction['merchantId'] = 1; $transaction['unique_id'] = $rec->get('id'); $transaction['date'] = $rec->get('dateinserted'); $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; $transaction['amount'] = \Oara\Utilities::parseDouble($rec->get('totalcost')); $transaction['commission'] = \Oara\Utilities::parseDouble($rec->get('commission')); $totalTransactions[] = $transaction; } //---------------------------------------------- // in case there are more than 30 records total // we should load and display the rest of the records // in the cycle $totalRecords = $grid->getTotalCount(); $maxRecords = $recordset->getSize(); if ($maxRecords > 0) { $cycles = \ceil($totalRecords / $maxRecords); for ($i = 1; $i < $cycles; $i++) { // now get next 30 records $request->setLimit($i * $maxRecords, $maxRecords); $request->sendNow(); $recordset = $request->getGrid()->getRecordset(); // iterate through the records foreach ($recordset as $rec) { $transaction = array(); $transaction['merchantId'] = 1; $transaction['unique_id'] = $rec->get('id'); $transaction['date'] = $rec->get('dateinserted'); if ($rec->get('rstatus') == 'D') { $transaction['status'] = \Oara\Utilities::STATUS_DECLINED; } else { if ($rec->get('rstatus') == 'P') { $transaction['status'] = \Oara\Utilities::STATUS_PENDING; } else { if ($rec->get('rstatus') == 'A') { $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; } } } $transaction['amount'] = \Oara\Utilities::parseDouble($rec->get('totalcost')); $transaction['commission'] = \Oara\Utilities::parseDouble($rec->get('commission')); $totalTransactions[] = $transaction; } } } return $totalTransactions; }
/** * @return array * @throws \Exception */ public function getPaymentHistory() { $paymentHistory = array(); $past = new \DateTime("2013-01-01 00:00:00"); $now = new \DateTime(); foreach ($this->_siteList as $site) { $interval = $past->diff($now); $numberYears = (int) $interval->format('%y') + 1; $auxStartDate = clone $past; for ($i = 0; $i < $numberYears; $i++) { $auxEndData = clone $auxStartDate; $auxEndData = $auxEndData->add(new \DateInterval('P1Y')); $url = "https://reportws.linksynergy.com/downloadreport.php?bdate=" . $auxStartDate->format("Ymd") . "&edate=" . $auxEndData->format("Ymd") . "&token=" . $site->secureToken . "&nid=" . $this->_nid . "&reportid=1"; $result = \file_get_contents($url); if (\preg_match("/You cannot request/", $result)) { throw new \Exception("Reached the limit"); } $paymentLines = \str_getcsv($result, "\n"); $number = \count($paymentLines); for ($j = 1; $j < $number; $j++) { $paymentData = \str_getcsv($paymentLines[$j], ","); $obj = array(); $date = \DateTime::createFromFormat("Y-m-d", $paymentData[1]); $obj['date'] = $date->format("Y-m-d H:i:s"); $obj['value'] = \Oara\Utilities::parseDouble($paymentData[5]); $obj['method'] = "BACS"; $obj['pid'] = $paymentData[0]; $paymentHistory[] = $obj; } $auxStartDate->add(new \DateInterval('P1Y')); } } 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(); $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; }
/** * @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; }
/** * @return array * @throws \Exception */ public function getPaymentHistory() { $paymentHistory = array(); $urls = array(); $urls[] = new \Oara\Curl\Request('http://publisher.tradedoubler.com/pan/reportSelection/Payment?', array()); $exportReport = $this->_client->get($urls); /*** load the html into the object ***/ $doc = new \DOMDocument(); \libxml_use_internal_errors(true); $doc->validateOnParse = true; $doc->loadHTML($exportReport[0]); $selectList = $doc->getElementsByTagName('select'); $paymentSelect = null; if ($selectList->length > 0) { // looking for the payments select $it = 0; while ($it < $selectList->length) { $selectName = $selectList->item($it)->attributes->getNamedItem('name')->nodeValue; if ($selectName == 'payment_id') { $paymentSelect = $selectList->item($it); break; } $it++; } if ($paymentSelect != null) { $paymentLines = $paymentSelect->childNodes; for ($i = 0; $i < $paymentLines->length; $i++) { $pid = $paymentLines->item($i)->attributes->getNamedItem("value")->nodeValue; if (\is_numeric($pid)) { $obj = array(); $paymentLine = $paymentLines->item($i)->nodeValue; $value = \preg_replace('/[^0-9\\.,]/', "", \substr($paymentLine, 10)); $paymentParts = \explode(" ", $paymentLine); $date = self::toDate($paymentParts[0] . " 00:00:00"); $obj['date'] = $date->format("Y-m-d H:i:s"); $obj['pid'] = $pid; $obj['method'] = 'BACS'; $obj['value'] = \Oara\Utilities::parseDouble($value); $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(); $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; }
/** * (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 * @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 * @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(); $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; }
/** * @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; }
/** * @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; }
/** * @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; }
/** * @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 */ 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 */ 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; }
/** * @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(); $urls = array(); $urls[] = new \Oara\Curl\Request('https://affiliate.hidemyass.com/reports', array()); $exportReport = $this->_client->get($urls); $urls = array(); $urls[] = new \Oara\Curl\Request('https://affiliate.hidemyass.com/reports/index_date', array()); $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['unique_id'] = $transactionExportArray[5] . '-' . $transactionExportArray[1]; $transaction['date'] = $transactionExportArray[1]; $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED; $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[8]); $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[10]); $totalTransactions[] = $transaction; } return $totalTransactions; }