/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Publisher_Interface#getTransactionList($aMerchantIds, $dStartDate, $dEndDate, $sTransactionStatus) */ public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null, $merchantMap = null) { $totalTransactions = array(); $urls = array(); $exportParams = array(new Oara_Curl_Parameter('agentcode', $this->_credentials['user']), new Oara_Curl_Parameter('pword', $this->_credentials['password']), new Oara_Curl_Parameter('fromdate', $dStartDate->toString("dd-MM-yyyy")), new Oara_Curl_Parameter('todate', $dEndDate->toString("dd-MM-yyyy")), new Oara_Curl_Parameter('rqtype', "report")); $urls[] = new Oara_Curl_Request('https://www.parkandgo.co.uk/agents/', $exportParams); $exportReport = $this->_client->post($urls); $today = new Zend_Date(); $today->setHour(0); $today->setMinute(0); $exportData = str_getcsv($exportReport[0], "\n"); $num = count($exportData); for ($i = 1; $i < $num; $i++) { $transactionExportArray = str_getcsv($exportData[$i], ","); $arrivalDate = new Zend_Date($transactionExportArray[3], 'yyyy-MM-dd 00:00:00', 'en'); $transaction = array(); $transaction['merchantId'] = 1; $transaction['unique_id'] = $transactionExportArray[0]; $transactionDate = new Zend_Date($transactionExportArray[2], 'yyyy-MM-dd 00:00:00', 'en'); $transaction['date'] = $transactionDate->toString("yyyy-MM-dd HH:mm:ss"); unset($transactionDate); $transaction['status'] = Oara_Utilities::STATUS_PENDING; if ($today > $arrivalDate) { $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED; } $transaction['amount'] = Oara_Utilities::parseDouble($transactionExportArray[6]); $transaction['commission'] = Oara_Utilities::parseDouble($transactionExportArray[7]); $totalTransactions[] = $transaction; } return $totalTransactions; }
/** * Check the connection */ public function checkConnection() { //If not login properly the construct launch an exception $connection = true; $urls = array(); $urls[] = new Oara_Curl_Request('https://affiliate.hidemyass.com/dashboard', array()); $exportReport = $this->_client->post($urls); $dom = new Zend_Dom_Query($exportReport[0]); $results = $dom->query('#loginform'); if (count($results) > 0) { $connection = false; } return $connection; }
/** * Check the connection */ public function checkConnection() { //If not login properly the construct launch an exception $connection = false; $urls = array(); $urls[] = new Oara_Curl_Request('http://affiliates.paddypartners.com/affiliates/Dashboard.aspx', array()); $exportReport = $this->_client->post($urls); $dom = new Zend_Dom_Query($exportReport[0]); $results = $dom->query('.lnkLogOut'); if (count($results) > 0) { $connection = true; } return $connection; }
/** * (non-PHPdoc) * @see Oara/Network/Oara_Network_Base#getPaymentHistory() */ public function getPaymentHistory() { $paymentHistory = array(); $valuesFromExport = Oara_Utilities::cloneArray($this->_exportPaymentParameters); $valuesFromExport[] = new Oara_Curl_Parameter('fromDate', "01/01/2000"); $dEndDate = new Zend_Date(); $valuesFromExport[] = new Oara_Curl_Parameter('until', $dEndDate->toString("dd/MM/yyyy")); $urls = array(); $urls[] = new Oara_Curl_Request('https://www.ladbrokes.com/aff_man', $valuesFromExport); $exportReport = $this->_client->post($urls); $dom = new Zend_Dom_Query($exportReport[0]); $tableList = $dom->query('#results_table'); $exportData = self::htmlToCsv(self::DOMinnerHTML($tableList->current())); $num = count($exportData); for ($i = 2; $i < $num - 2; $i++) { $paymentExportArray = str_getcsv($exportData[$i], ";"); $obj = array(); $date = new Zend_Date($paymentExportArray[1], "dd/MM/yy", 'en'); $obj['date'] = $date->toString("yyyy-MM-dd HH:mm:ss"); $obj['pid'] = $i - 1; $obj['value'] = $paymentExportArray[10]; $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(); $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; }
/** * (non-PHPdoc) * @see Oara/Network/Oara_Network_Base#getCreatives() */ public function getCreatives() { $creativesMap = array(); $merchantList = self::getMerchantList(); foreach ($merchantList as $merchant) { $urls = array(); $valuesFormExport = array(); $valuesFormExport[] = new Oara_Curl_Parameter('__EVENTTARGET', ''); $valuesFormExport[] = new Oara_Curl_Parameter('__EVENTARGUMENT', ''); $valuesFormExport[] = new Oara_Curl_Parameter('__LASTFOCUS', ''); $valuesFormExport[] = new Oara_Curl_Parameter('__VIEWSTATE', '/wEPDwUKMTQzMTQ3MzI4MQ9kFgJmD2QWBGYPZBYEAgMPFgIeBGhyZWYFFC9UZW1wbGF0ZXMvMV9zZWMuY3NzZAIFDxYCHwAFJC90ZW1wbGF0ZXMvQ3VzdG9tTWVyY2hhbnRDU1MvNTQyLmNzc2QCAQ9kFgQCAw9kFggCAw8PFgIeB1Zpc2libGVoZGQCBA9kFggCAg8QD2QWAh4Ib25jaGFuZ2UFFVNldFNpemVDb250cm9sVmFsdWUoKRAVFANBbGwcTWVkaXVtIFJlY3RhbmdsZSAoMzAwIHggMjUwKR5WZXJ0aWNhbCBSZWN0YW5nbGUgKDI0MCB4IDQwMCkbTGFyZ2UgUmVjdGFuZ2xlICgzMzYgeCAyODApFVJlY3RhbmdsZSAoMzAwIHggMTAwKRVQb3AtVW5kZXIgKDcyMCB4IDMwMCkcTWVkaXVtIFJlY3RhbmdsZSAoMzAwIHggMjUwKRZGdWxsIEJhbm5lciAoNDY4IHggNjApFkhhbGYgQmFubmVyICgyMzQgeCA2MCkTTWljcm8gQmFyICg4OCB4IDMxKRNCdXR0b24gMSAoMTIwIHggOTApE0J1dHRvbiAyICgxMjAgeCA2MCkbVmVydGljYWwgQmFubmVyICgxMjAgeCAyNDApGVNxdWFyZSBCdXR0b24gKDEyNSB4IDEyNSkWTGVhZGVyYm9hcmQgKDcyOCB4IDkwKRtXaWRlIFNreXNjcmFwZXIgKDE2MCB4IDYwMCkWU2t5c2NyYXBlciAoMTIwIHggNjAwKRhIYWxmIFBhZ2UgQWQgKDMwMCB4IDYwMCkVQmlsbGJvYXJkICg3NTAgeCAxMDApG0RvdWJsZWJpbGxib2FyZCAoNzUwIHggMjAwKRUUAAkzMDAgeCAyNTAJMjQwIHggNDAwCTMzNiB4IDI4MAkzMDAgeCAxMDAJNzIwIHggMzAwCTMwMCB4IDI1MAg0NjggeCA2MAgyMzQgeCA2MAc4OCB4IDMxCDEyMCB4IDkwCDEyMCB4IDYwCTEyMCB4IDI0MAkxMjUgeCAxMjUINzI4IHggOTAJMTYwIHggNjAwCTEyMCB4IDYwMAkzMDAgeCA2MDAJNzUwIHggMTAwCTc1MCB4IDIwMBQrAxRnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2RkAgYPEGQQFQcDQWxsBUltYWdlDEhUTUwgQ29udGVudA1GbGFzaCBCYW5uZXJzCkVkaXRvcmlhbHMFTWl4ZWQJVGV4dCBMaW5rFQcAATEBMgEzATUBNgE3FCsDB2dnZ2dnZ2dkZAIHD2QWAgIFDxBkEBUWA0FsbAdBZG1pcmFsD0FyZ29zIEluc3VyYW5jZQxBU0RBIEZpbmFuY2UcQmVubmV0dHMgTW90b3JiaWtlIEluc3VyYW5jZQlDaHVyY2hpbGwLRGlyZWN0IExpbmUYRGlyZWN0IFRyYXZlbCBJbnN1cmFuY2UgCEV1cm9zdGFyCUdvY29tcGFyZQpHcmVlbiBGbGFnFEhhbGlmYXggQ3JlZGl0IENhcmRzEkt3aWsgRml0IEluc3VyYW5jZRFNYXJrcyBhbmQgU3BlbmNlciBPaW5jLmNvbSBPbmxpbmUgVHJhdmVsIEluc3VyYW5jZRJPbmxpbmUgTWVkaWEgR3JvdXANUmVzY3VlIE15IENhchBTYWluc2J1cnkncyBCYW5rFFRyYXZlbCBJbnN1cmFuY2UgV2ViDFZpcmdpbiBNb25leQdXSFNtaXRoDVllcyBJbnN1cmFuY2UVFgEwBDQzMDEGMTExMzQ5BTg2MjUzBDI0MjEEMTIzNgQxNTM2BTEyMjUxBDQ4ODMEMzQ2NgQxNTM3BTE2MTgzBDE3NTQEMjI1MQU2NTU1NQQxMDI1BDQzODgFNDEzMzEEMTk1NgMzNTEENDU2OAQyMjc2FCsDFmdnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dkZAIID2QWBAIMDw8WAh4JTWF4TGVuZ3RoZmRkAhIPDxYCHwNmZGQCBQ9kFgQCBQ8QZGQWAGQCDQ8QZGQWAWZkAgYPD2QPEBYDZgIBAgIWAxYCHg5QYXJhbWV0ZXJWYWx1ZQUDNTQyFgIfBGQWAh8EZBYDAgUCAwIDZGQCBQ8PFgIfAWhkZGTBpeqPSNcBsSw8OmyhYN8N7YyNcg=='); $valuesFormExport[] = new Oara_Curl_Parameter('ctl00$Uc_Navigation1$ddlNavSelectMerchant', '0'); $valuesFormExport[] = new Oara_Curl_Parameter('ctl00$ContentPlaceHolder1$Uc_containersearch1$drpSize', ''); $valuesFormExport[] = new Oara_Curl_Parameter('ctl00$ContentPlaceHolder1$Uc_containersearch1$txtSize', ''); $valuesFormExport[] = new Oara_Curl_Parameter('ctl00$ContentPlaceHolder1$Uc_containersearch1$drpType', ''); $valuesFormExport[] = new Oara_Curl_Parameter('ctl00$ContentPlaceHolder1$Uc_containersearch1$drpMerchant', $merchant['cid']); // $valuesFormExport[] = new Oara_Curl_Parameter('ctl00$ContentPlaceHolder1$Uc_containersearch1$drpProduct', '-1'); $valuesFormExport[] = new Oara_Curl_Parameter('ctl00$ContentPlaceHolder1$Uc_containersearch1$cmdSearch', 'Search'); $valuesFormExport[] = new Oara_Curl_Parameter('ctl00$ContentPlaceHolder1$Uc_containersearch1$proghiddenfield', ''); $urls[] = new Oara_Curl_Request('https://admin.omgpm.com/v2/creative/affiliate/adcentre.aspx?', $valuesFormExport); $exportReport = $this->_client->post($urls); var_dump($exportReport[0]); //OMGCreativeURL34321=<script type="text/javascript" src="http://track.omguk.com/bs/?AID=542&MID=86253&PID=6748&CID=3060734&CRID=34321&WID=18372&Width=490&Height=250"></script> //hidden34321=html //hiddencid34321=3060734 //hiddenMid34321=86253 //hiddenPid34321=6748 } return $creativesMap; }
/** * (non-PHPdoc) * * @see library/Oara/Network/Oara_Network_Publisher_Interface#getTransactionList($aMerchantIds, $dStartDate, $dEndDate, $sTransactionStatus) */ public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null, $merchantMap = null) { $totalTransactions = array(); $valuesFormExport = array(); if ($this->_transactionList == null) { $urls = array(); $valuesExport = array(new Oara_Curl_Parameter('D', '{"C":"Pap_Affiliates_Reports_TransactionsGrid", "M":"getCSVFile", "S":"' . $this->_s . '", "FormResponse":"Y", "sort_col":"dateinserted", "sort_asc":false, "offset":0, "limit":30, "columns":[["id"],["id"],["commission"],["totalcost"],["fixedcost"],["t_orderid"],["productid"],["dateinserted"],["name"],["rtype"],["tier"],["commissionTypeName"],["rstatus"],["merchantnote"],["channel"]]}')); $urls[] = new Oara_Curl_Request('https://vpnaffiliates.com/affiliates/scripts/server.php?', $valuesExport); $exportReport = 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], ","); // print_r($transactionExportArray); $transaction = array(); $transaction['merchantId'] = 1; $transaction['uniqueId'] = $transactionExportArray[3]; $transactionDate = new Zend_Date($transactionExportArray[5], 'yyyy-MM-dd HH:mm:ss', 'en'); $transaction['date'] = $transactionDate->toString("yyyy-MM-dd HH:mm:ss"); unset($transactionDate); $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED; $transaction['amount'] = Oara_Utilities::parseDouble($transactionExportArray[1]); $transaction['commission'] = Oara_Utilities::parseDouble($transactionExportArray[0]); // print_r($transaction); if ($transaction['date'] >= $dStartDate->toString("yyyy-MM-dd HH:mm:ss") && $transaction['date'] <= $dEndDate->toString("yyyy-MM-dd HH:mm:ss")) { $totalTransactions[] = $transaction; } } return $totalTransactions; }
/** * (non-PHPdoc) * * @see Oara/Network/Oara_Network_Publisher_Base#getPaymentHistory() */ public function getPaymentHistory() { $paymentHistory = array(); $valuesFromExport = $this->_exportPaymentParameters; $urls = array(); $urls[] = new Oara_Curl_Request('https://admin.omgpm.com/v2/finance/affiliate/view_payments.aspx?', 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]); $hiddenList = $doc->getElementsByTagName('input'); if ($hiddenList->length > 0) { for ($i = 0; $i < $hiddenList->length; $i++) { $attrs = $hiddenList->item($i)->attributes; if ($attrs->getNamedItem("type")->nodeValue == 'hidden') { // we are adding the hidden parameters $valuesFromExport[] = new Oara_Curl_Parameter($attrs->getNamedItem("name")->nodeValue, $attrs->getNamedItem("value")->nodeValue); } } $yearSelect = $doc->getElementById('ctl00_ContentPlaceHolder1_ddlYear')->childNodes; $yearStart = (int) $yearSelect->item($yearSelect->length - 1)->attributes->getNamedItem("value")->nodeValue; $nowDays = new Zend_Date(); $yearEnd = (int) $nowDays->get(Zend_Date::YEAR); $urls = array(); for ($i = $yearStart; $i <= $yearEnd; $i++) { $requestValuesFromExport = Oara_Utilities::cloneArray($valuesFromExport); $requestValuesFromExport[] = new Oara_Curl_Parameter('ctl00$ContentPlaceHolder1$ddlYear', (string) $i); $urls[] = new Oara_Curl_Request('https://admin.omgpm.com/v2/finance/affiliate/view_payments.aspx?', $requestValuesFromExport); } $exportReport = $this->_client->post($urls); for ($i = 0; $i < count($exportReport); $i++) { if (!preg_match("/No Results for this criteria/i", $exportReport[$i])) { $doc = new DOMDocument(); libxml_use_internal_errors(true); $doc->validateOnParse = true; $doc->loadHTML($exportReport[$i]); $table = $doc->getElementById('ctl00_ContentPlaceHolder1_gvSummary'); $paymentList = $table->childNodes; for ($j = 1; $j < $paymentList->length; $j++) { $paymentData = $paymentList->item($j)->childNodes; $obj = array(); $obj['value'] = Oara_Utilities::parseDouble($paymentData->item(5)->nodeValue); if ($obj['value'] != null) { $date = new Zend_date($paymentData->item(8)->nodeValue, "dd/MM/yyyy HH:mm:ss"); $obj['date'] = $date->toString("yyyy-MM-dd HH:mm:ss"); $obj['pid'] = $paymentData->item(2)->nodeValue; $obj['method'] = 'BACS'; $paymentHistory[] = $obj; } } } } } return $paymentHistory; }
private function logIn() { $user = $this->_credentials['user']; $password = $this->_credentials['password']; $network = $this->_credentials['network']; $this->_networkServer = ""; switch ($network) { case "uk": $this->_networkServer = "https://affiliate-program.amazon.co.uk"; break; case "es": $this->_networkServer = "https://afiliados.amazon.es"; break; case "us": $this->_networkServer = "https://affiliate-program.amazon.com"; break; case "ca": $this->_networkServer = "https://associates.amazon.ca"; break; case "de": $this->_networkServer = "https://partnernet.amazon.de"; break; case "fr": $this->_networkServer = "https://partenaires.amazon.fr"; break; case "it": $this->_networkServer = "https://programma-affiliazione.amazon.it/"; break; case "jp": $this->_networkServer = "https://affiliate.amazon.co.jp/"; break; case "cn": $this->_networkServer = "https://associates.amazon.cn/"; break; } //Get html after Js $hiddenParams = self::getHiddenParamsAfterJs($this->_credentials); $valuesLogin = array(new Oara_Curl_Parameter('email', $user), new Oara_Curl_Parameter('password', $password), new Oara_Curl_Parameter('x', '33'), new Oara_Curl_Parameter('y', '10')); foreach ($hiddenParams as $hiddenParamName => $hiddenParamValue) { $valuesLogin[] = new Oara_Curl_Parameter($hiddenParamName, $hiddenParamValue); } $urls = array(); $urls[] = new Oara_Curl_Request($this->_networkServer . "/gp/flex/sign-in/select.html?", $valuesLogin); $contentList = $this->_client->post($urls); $valuesLogin = array(new Oara_Curl_Parameter('combinedReports', 'on'), new Oara_Curl_Parameter('refURL', '/gp/associates/network/reports/report.html?reportType=earningsReport')); $urls = array(); $urls[] = new Oara_Curl_Request($this->_networkServer . "/gp/associates/x-site/combinedReports.html?", $valuesLogin); $this->_client->get($urls); if (!self::checkConnection()) { throw new Exception("You are not connected\n\n"); } }
/** * (non-PHPdoc) * @see Oara/Network/Oara_Network_Base#getPaymentHistory() */ public function getPaymentHistory() { $paymentHistory = array(); $urls = array(); $valuesFromExport = array(); $valuesFromExport[] = new Oara_Curl_Parameter('fo', 'true'); $valuesFromExport[] = new Oara_Curl_Parameter('filter_payments_posted', 'true'); $urls[] = new Oara_Curl_Request('http://publisher.daisycon.com/en/financial/payments/?', $valuesFromExport); $exportReport = $this->_client->get($urls); $dom = new Zend_Dom_Query($exportReport[0]); $results = $dom->query('#filter_payments_selection_start_year_id'); $count = count($results); $yearArray = array(); if ($count == 1) { $selectNode = $results->current(); $yearLines = $selectNode->childNodes; for ($i = 0; $i < $yearLines->length; $i++) { $yearArray[] = $yearLines->item($i)->attributes->getNamedItem("value")->nodeValue; } foreach ($yearArray as $year) { $valuesFromExport = array(); $valuesFromExport[] = new Oara_Curl_Parameter('fo', 'true'); $valuesFromExport[] = new Oara_Curl_Parameter('filter_payments_posted', 'true'); $valuesFromExport[] = new Oara_Curl_Parameter('filter_payments[selection][start_year]', $year); $urls = array(); $urls[] = new Oara_Curl_Request('http://publisher.daisycon.com/en/financial/payments/?', $valuesFromExport); $exportReport = $this->_client->post($urls); $dom = new Zend_Dom_Query($exportReport[0]); $payments = $dom->query('.financialPaymentsTable'); foreach ($payments as $payment) { $paymentReport = self::htmlToCsv(self::DOMinnerHTML($payment)); $paymentExportArray = str_getcsv($paymentReport[2], ";"); if ($paymentExportArray[0] != "") { $obj = array(); $paymentDate = new Zend_Date($paymentExportArray[0], "MM dd yyyy", "en"); $obj['date'] = $paymentDate->toString("yyyy-MM-dd HH:mm:ss"); $obj['pid'] = $paymentDate->toString("yyyyMMdd"); $obj['method'] = 'BACS'; if (preg_match("/[-+]?[0-9]*,?[0-9]*\\.?[0-9]+/", $paymentExportArray[4], $matches)) { $obj['value'] = Oara_Utilities::parseDouble($matches[0]); } else { throw new Exception("Problem reading payments"); } $paymentHistory[] = $obj; } } } } else { throw new Exception('Problem getting the payments'); } return $paymentHistory; }
/** * (non-PHPdoc) * * @see library/Oara/Network/Oara_Network_Publisher_Interface#getTransactionList($aMerchantIds, $dStartDate, $dEndDate, $sTransactionStatus) */ public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null, $merchantMap = null) { $totalTransactions = array(); $page = 1; $continue = true; while ($continue) { $valuesFormExport = array(); $valuesFormExport[] = new Oara_Curl_Parameter('dateFrom', $dStartDate->toString("dd/MM/yyyy")); $valuesFormExport[] = new Oara_Curl_Parameter('dateTo', $dEndDate->toString("dd/MM/yyyy")); $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); $dom = new Zend_Dom_Query($exportReport[0]); $results = $dom->query('table'); $exportData = self::htmlToCsv(self::DOMinnerHTML($results->current())); if (preg_match("/No results found/", $exportData[1])) { $continue = false; 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 = new Zend_Date($transactionDetail[0], "dd MMM yyyy", "en_GB"); $transaction['date'] = $date->toString("yyyy-MM-dd 00:00:00"); $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED; if ($transactionDetail[3] != null) { preg_match("/[-+]?[0-9]*\\.?[0-9]+/", $transactionDetail[3], $match); $transaction['amount'] = (double) $match[0]; $transaction['commission'] = (double) $match[0]; } else { if ($transactionDetail[4] != null) { preg_match("/[-+]?[0-9]*\\.?[0-9]+/", $transactionDetail[4], $match); $transaction['amount'] = (double) $match[0]; $transaction['commission'] = (double) $match[0]; } } $totalTransactions[] = $transaction; } } return $totalTransactions; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Publisher_Interface#getTransactionList($aMerchantIds, $dStartDate, $dEndDate, $sTransactionStatus) */ public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null, $merchantMap = null) { $totalTransactions = array(); $valuesFromExport = array(); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00$cphPage$reportFrom', $dStartDate->toString("yyyy-MM-dd")); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00$cphPage$reportTo', $dEndDate->toString("yyyy-MM-dd")); $urls = array(); $urls[] = new Oara_Curl_Request('https://affiliates.affutd.com/affiliates/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; $i++) { $transactionExportArray = str_getcsv($exportData[$i], ","); $transaction = array(); $transaction['merchantId'] = 1; $transactionDate = new Zend_Date($transactionExportArray[0], 'dd-MM-yyyy', 'en'); $transaction['date'] = $transactionDate->toString("yyyy-MM-dd HH:mm:ss"); $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED; $transaction['amount'] = $transactionExportArray[12]; $transaction['commission'] = $transactionExportArray[13]; $totalTransactions[] = $transaction; } return $totalTransactions; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Publisher_Interface#getTransactionList($aMerchantIds, $dStartDate, $dEndDate, $sTransactionStatus) */ public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null, $merchantMap = null) { $totalTransactions = array(); $valuesFormExport = array(); $valuesFromExport[] = new Oara_Curl_Parameter('periods', 'custom'); $valuesFromExport[] = new Oara_Curl_Parameter('minDate', '{"year":"2009","month":"05","day":"01"}'); $valuesFromExport[] = new Oara_Curl_Parameter('show_periods', '1'); $valuesFromExport[] = new Oara_Curl_Parameter('fromPeriod', $dStartDate->toString('yyyy-MM-dd')); $valuesFromExport[] = new Oara_Curl_Parameter('toPeriod', $dEndDate->toString('yyyy-MM-dd')); $valuesFromExport[] = new Oara_Curl_Parameter('product', ''); $valuesFromExport[] = new Oara_Curl_Parameter('profile', ''); $valuesFromExport[] = new Oara_Curl_Parameter('campaign', '16800'); $valuesFromExport[] = new Oara_Curl_Parameter('jsonCampaigns', '{"16800":{"group":{"banner":"Banner","product":"Brand","campaign":"Campaign","platform":"Platform","productType":"Product type","profile":"Profile","date":"Stats date","month":"Stats month","var1":"var1","var2":"var2","var3":"var3","var4":"var4"},"order":{"pokerTournamentFees":"Poker tournament fees","pokerRakes":"Poker rakes","chargebacks":"Chargebacks amt","comps":"Comps amt","credits":"Credit amt","depositsAmount":"Deposits amt","depositsCount":"Deposits cnt","realClicks":"Real clicks","realDownloads":"Real downs","realImpressions":"Real imps","withdrawsAmount":"Withdraws","casinoNetGaming":"Casino Net Gaming","pokerNetGaming":"Poker Net Gaming","pokerSideGamesNG":"Poker Side Games Net Gaming","bingoNetGaming":"Bingo Net Gaming","bingoSideGamesNG":"Bingo Side Games Net Gaming","bingoTotalFDCount":"Bingo Total First Deposit Count","casinoTotalFDCount":"Casino Total First Deposit Count","pokerTotalFDCount":"Poker Total First Deposit Count","casinoTotalRealPlayers":"Casino Total Real Players","bingoTotalRealPlayers":"Bingo Total Real Players","pokerTotalRealPlayers":"Poker Total Real Players","tlrAmount":"Top Level Revenue"}}}'); $valuesFromExport[] = new Oara_Curl_Parameter('ts_type', 'advertiser'); $valuesFromExport[] = new Oara_Curl_Parameter('reportFirst', 'date'); $valuesFromExport[] = new Oara_Curl_Parameter('reportSecond', ''); $valuesFromExport[] = new Oara_Curl_Parameter('reportThird', ''); $valuesFromExport[] = new Oara_Curl_Parameter('columns[]', 'casinoNetGaming'); $valuesFromExport[] = new Oara_Curl_Parameter('columns[]', 'tlrAmount'); $valuesFromExport[] = new Oara_Curl_Parameter('csvRequested', 'EXPORT CSV'); $urls = array(); $urls[] = new Oara_Curl_Request('https://www.winneraffiliates.com/traffic-stats/advertiser', $valuesFromExport); $exportReport = array(); $exportReport = $this->_client->post($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; $transactionDate = new Zend_Date($transactionExportArray[0], 'yyyy-MM-dd HH:mm:ss', 'en'); $transaction['date'] = $transactionDate->toString("yyyy-MM-dd HH:mm:ss"); //unset($transactionDate); $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED; $amount = str_replace('$', '', $transactionExportArray[1]); $transaction['amount'] = (double) $amount; $commission = str_replace('$', '', $transactionExportArray[2]); $transaction['commission'] = (double) $commission; if ($transaction['amount'] != 0 && $transaction['commission'] != 0) { $totalTransactions[] = $transaction; } } return $totalTransactions; }
/** * (non-PHPdoc) * @see Oara/Network/Oara_Network_Publisher_Base#getPaymentHistory() */ public function getPaymentHistory() { $paymentHistory = array(); foreach (array_keys($this->_websiteList) as $websiteId) { $paymentExport = Oara_Utilities::cloneArray($this->_exportPaymentParameters); $urls = array(); $urls[] = new Oara_Curl_Request('http://www.clixgalore.co.uk/AffiliatePaymentDetail.aspx?', array()); $exportReport = $this->_client->post($urls); $dom = new Zend_Dom_Query($exportReport[0]); $results = $dom->query('input[type="hidden"]'); $count = count($results); foreach ($results as $result) { $hiddenName = $result->attributes->getNamedItem("name")->nodeValue; $hiddenValue = $result->attributes->getNamedItem("value")->nodeValue; $paymentExport[] = new Oara_Curl_Parameter($hiddenName, $hiddenValue); } $paymentExport[] = new Oara_Curl_Parameter('AffProgramDropDown1$aff_program_list', $websiteId); $urls = array(); $urls[] = new Oara_Curl_Request('http://www.clixgalore.co.uk/AffiliatePaymentDetail.aspx', $paymentExport); $exportReport = $this->_client->post($urls); $dom = new Zend_Dom_Query($exportReport[0]); $results = $dom->query('#dg_payments'); $count = count($results); if ($count == 1) { $exportData = self::htmlToCsv(self::DOMinnerHTML($results->current())); for ($j = 1; $j < count($exportData) - 1; $j++) { $paymentExportArray = str_getcsv($exportData[$j], ";"); $obj = array(); $paymentDate = new Zend_Date($paymentExportArray[0], "MMM d yyyy", "en"); $obj['date'] = $paymentDate->toString("yyyy-MM-dd HH:mm:ss"); $obj['pid'] = $paymentDate->toString("yyyyMMdd"); $obj['method'] = 'BACS'; if (preg_match("/[-+]?[0-9]*,?[0-9]*\\.?[0-9]+/", $paymentExportArray[2], $matches)) { $obj['value'] = Oara_Utilities::parseDouble($matches[0]); } else { throw new Exception("Problem reading payments"); } $paymentHistory[] = $obj; } } } return $paymentHistory; }
/** * Gets all the merchants and returns them in an array. * @return array */ private function getMerchantExport() { $merchantReportList = array(); $valuesFromExport = $this->_exportMerchantParameters; $urls = array(); $urls[] = new Oara_Curl_Request('https://members.cj.com/member/' . $this->_memberId . '/publisher/accounts/listmyadvertisers.do', array()); $exportReport = $this->_client->get($urls); if (!preg_match("/Sorry, No Results Found\\./", $exportReport[0], $matches)) { $urls = array(); $urls[] = new Oara_Curl_Request('https://members.cj.com/member/' . $this->_memberId . '/publisher/accounts/listmyadvertisers.do', $valuesFromExport); $exportReport = $this->_client->post($urls); $exportData = str_getcsv($exportReport[0], "\n"); $merchantReportList = array(); $num = count($exportData); for ($i = 1; $i < $num; $i++) { $merchantExportArray = str_getcsv($exportData[$i], ","); $merchantReportList[] = $merchantExportArray; } } return $merchantReportList; }
/** * It returns the transactions for a payment * @see Oara_Network::paymentTransactions() */ public function paymentTransactions($paymentId, $merchantList, $startDate) { $paymentTransactionList = array(); $params = array(); $urls = array(); $urls[] = new Oara_Curl_Request($this->_serverUrl . '/Invoices/Default.aspx?', $params); $exportReport = $this->_client->post($urls); $doc = new DOMDocument(); libxml_use_internal_errors(true); $doc->validateOnParse = true; $doc->loadHTML($exportReport[0]); $viewState = $doc->getElementById('__VIEWSTATE')->attributes->getNamedItem("value")->nodeValue; $params = array(new Oara_Curl_Parameter('__EVENTTARGET', 'ctl00$ContentPlaceHolder1$gvInvoices'), new Oara_Curl_Parameter('__EVENTARGUMENT', 'Breakdown$' . $paymentId), new Oara_Curl_Parameter('__VIEWSTATE', $viewState)); $urls = array(); $urls[] = new Oara_Curl_Request($this->_serverUrl . '/Invoices/Default.aspx?', $params); $exportReport = $this->_client->post($urls); $exportData = str_getcsv($exportReport[0], "\r\n"); $num = count($exportData); for ($i = 1; $i < $num; $i++) { $transactionExportArray = str_getcsv($exportData[$i], ","); $paymentTransactionList[] = $transactionExportArray[0]; } return $paymentTransactionList; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Base#getOverviewList($merchantId, $dStartDate, $dEndDate) */ public function getOverviewList($transactionList = null, $merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null) { $overviewArray = array(); $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $valuesFromExport = Oara_Utilities::cloneArray($this->_exportTransactionParameters); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00%24m_mainPlaceholder%24m_periodFromField_hidden', "%3CDateChooser%20Value%3D%22" . $dStartDate->toString("yyyy") . "x" . $dStartDate->toString("M") . "x" . $dStartDate->toString("d") . "%22%3E%3C/DateChooser%3E"); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00xmxmainPlaceholderxmxperiodFromField_input', $dStartDate->toString("dd/MM/yyyy")); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00_m_mainPlaceholder_m_periodFromField_DrpPnl_Calendar1', "%3Cx%20PostData%3D%22" . $dStartDate->toString("yyyy") . "x" . $dStartDate->toString("M") . "x" . $dStartDate->toString("yyyy") . "x" . $dStartDate->toString("M") . "x" . $dStartDate->toString("d") . "%22%3E%3C/x%3E"); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00%24m_mainPlaceholder%24m_periodToField_hidden', "%3CDateChooser%20Value%3D%22" . $dEndDate->toString("yyyy") . "x" . $dEndDate->toString("M") . "x" . $dEndDate->toString("d") . "%22%3E%3C/DateChooser%3E"); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00xmxmainPlaceholderxmxperiodToField_input', $dEndDate->toString("dd/MM/yyyy")); $valuesFromExport[] = new Oara_Curl_Parameter('ctl00_m_mainPlaceholder_m_periodToField_DrpPnl_Calendar1', "%3Cx%20PostData%3D%22" . $dEndDate->toString("yyyy") . "x" . $dEndDate->toString("M") . "x" . $dEndDate->toString("yyyy") . "x" . $dEndDate->toString("M") . "x" . $dEndDate->toString("d") . "%22%3E%3C/x%3E"); $urls = array(); $urls[] = new Oara_Curl_Request('https://www.bet365affiliates.com/Members/Members/Statistics/Default.aspx', array()); $exportReport = $this->_client->get($urls); $forbiddenList = array('ctl00$m_mainPlaceholder$m_periodFromField_hidden', 'ctl00_m_mainPlaceholder_m_periodFromField_DrpPnl_Calendar1', 'ctl00$m_mainPlaceholder$m_periodToField_hidden', 'ctl00_m_mainPlaceholder_m_periodToField_DrpPnl_Calendar1'); $dom = new Zend_Dom_Query($exportReport[0]); $hiddenList = $dom->query('input[type="hidden"]'); foreach ($hiddenList as $hidden) { if (!in_array($hidden->getAttribute("name"), $forbiddenList)) { $valuesFromExport[] = new Oara_Curl_Parameter($hidden->getAttribute("name"), $hidden->getAttribute("value")); } } $urls = array(); $urls[] = new Oara_Curl_Request('https://www.bet365affiliates.com/Members/Members/Statistics/Default.aspx', $valuesFromExport); $exportReport = $this->_client->post($urls); $dom = new Zend_Dom_Query($exportReport[0]); $tableList = $dom->query('table'); $exportData = self::htmlToCsv(self::DOMinnerHTML($tableList->current())); $num = count($exportData); for ($i = 2; $i < $num - 1; $i++) { $overviewExportArray = str_getcsv($exportData[$i], ";"); $overview = array(); $overview['merchantId'] = 1; $overviewDate = new Zend_Date($overviewExportArray[1], 'dd-MM-yyyy', 'en'); $overview['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $overview['click_number'] = (int) $overviewExportArray[2]; $overview['impression_number'] = 0; $overview['transaction_number'] = 0; $overview['transaction_confirmed_value'] = 0; $overview['transaction_confirmed_commission'] = 0; $overview['transaction_pending_value'] = 0; $overview['transaction_pending_commission'] = 0; $overview['transaction_declined_value'] = 0; $overview['transaction_declined_commission'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($overview['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $overview['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overview['transaction_confirmed_value'] += $transaction['amount']; $overview['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overview['transaction_pending_value'] += $transaction['amount']; $overview['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overview['transaction_declined_value'] += $transaction['amount']; $overview['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($overview)) { $overviewArray[] = $overview; } } return $overviewArray; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Interface#getOverviewList($aMerchantIds, $dStartDate, $dEndDate) */ public function getOverviewList($transactionList = null, $merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null) { $overviewArray = array(); $firstDayMonth = new Zend_Date(); $firstDayMonth->setDay(1); $firstDayMonth->setHour("00"); $firstDayMonth->setMinute("00"); $firstDayMonth->setSecond("00"); $modeArray = array("AdSense for Content", "AdSense for Search", "AdSense for Feeds", "AdSense for Domains"); $valuesExport = array(); $valuesExport[] = new Oara_Curl_Parameter('d', $dStartDate->toString("yyyy/M/d") . "-" . $dEndDate->toString("yyyy/M/d")); $valuesExportReport[] = new Oara_Curl_Parameter('ag', 'date'); $valuesExport[] = new Oara_Curl_Parameter('oc', 'earnings'); $valuesExport[] = new Oara_Curl_Parameter('oo', 'descending'); $valuesExport[] = new Oara_Curl_Parameter('hl', 'en_GB'); $urls = array(); $valuesExportReport = Oara_Utilities::cloneArray($valuesExport); $valuesExportReport[] = new Oara_Curl_Parameter('dd', '1YproductY1YAFCYAdSense for Content'); $urls[] = new Oara_Curl_Request('https://www.google.com/adsense/v3/gwt/exportCsv?', $valuesExportReport); $valuesExportReport = Oara_Utilities::cloneArray($valuesExport); $valuesExportReport[] = new Oara_Curl_Parameter('dd', '1YproductY1YAFSYAdSense for Search'); $urls[] = new Oara_Curl_Request('https://www.google.com/adsense/v3/gwt/exportCsv?', $valuesExportReport); $valuesExportReport = Oara_Utilities::cloneArray($valuesExport); $valuesExportReport[] = new Oara_Curl_Parameter('dd', '1YproductY1YAFFYAdSense for Feeds'); $urls[] = new Oara_Curl_Request('https://www.google.com/adsense/v3/gwt/exportCsv?', $valuesExportReport); $valuesExportReport = Oara_Utilities::cloneArray($valuesExport); $valuesExportReport[] = new Oara_Curl_Parameter('dd', '1YproductY1YAFDYAdSense for Domains'); $urls[] = new Oara_Curl_Request('https://www.google.com/adsense/v3/gwt/exportCsv?', $valuesExportReport); $content = $this->_client->post($urls); for ($i = 0; $i < count($content); $i++) { $exportData = str_getcsv(@iconv('UTF-16', 'UTF-8', $content[$i]), "\n"); for ($j = 1; $j < count($exportData); $j++) { $overviewExportArray = str_getcsv($exportData[$j], "\t"); $obj = array(); $obj['merchantId'] = 1; $overviewDate = new Zend_Date($overviewExportArray[0], "yyyy-MM-dd"); $overviewDate->setHour("00"); $overviewDate->setMinute("00"); $overviewDate->setSecond("00"); $obj['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $obj['link'] = $modeArray[$i]; $obj['transaction_number'] = 0; $obj['transaction_confirmed_commission'] = 0; $obj['transaction_confirmed_value'] = 0; $obj['transaction_pending_commission'] = 0; $obj['transaction_pending_value'] = 0; $obj['transaction_declined_commission'] = 0; $obj['transaction_declined_value'] = 0; $obj['impression_number'] = (int) Oara_Utilities::parseDouble($overviewExportArray[1]); $obj['click_number'] = Oara_Utilities::parseDouble($overviewExportArray[2]); if ($firstDayMonth->compare($overviewDate) <= 0) { $obj['transaction_pending_commission'] = Oara_Utilities::parseDouble($overviewExportArray[6]); $obj['transaction_pending_value'] = Oara_Utilities::parseDouble($overviewExportArray[6]); } else { $obj['transaction_confirmed_commission'] = Oara_Utilities::parseDouble($overviewExportArray[6]); $obj['transaction_confirmed_value'] = Oara_Utilities::parseDouble($overviewExportArray[6]); } if (Oara_Utilities::checkRegister($obj)) { $overviewArray[] = $obj; } } } unset($urls); return $overviewArray; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Base#getOverviewList($merchantId, $dStartDate, $dEndDate) */ public function getOverviewList($transactionList = null, $merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null) { $overviewArray = array(); $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $valuesFromExport = Oara_Utilities::cloneArray($this->_exportTransactionParameters); $valuesFromExport[] = new Oara_Curl_Parameter('fromPeriod', $dStartDate->toString("yyyy-MM-dd")); $valuesFromExport[] = new Oara_Curl_Parameter('toPeriod', $dEndDate->toString("yyyy-MM-dd")); $urls = array(); $urls[] = new Oara_Curl_Request('https://www.affutd.com/en/traffic-stats/advertiser', array()); $exportReport = $this->_client->get($urls); $dom = new Zend_Dom_Query($exportReport[0]); $campaignOption = $dom->query('option[label="DEFAULT"]'); $campaignOption = $campaignOption->current(); $valuesFromExport[] = new Oara_Curl_Parameter('campaign', $campaignOption->getAttribute('value')); $hiddenParam = $dom->query('#jsonCampaigns'); $hiddenParam = $hiddenParam->current(); $valuesFromExport[] = new Oara_Curl_Parameter($hiddenParam->getAttribute('id'), $hiddenParam->getAttribute('value')); $urls = array(); $urls[] = new Oara_Curl_Request('https://www.affutd.com/en/traffic-stats/advertiser', $valuesFromExport); $exportReport = $this->_client->post($urls); $exportData = str_getcsv($exportReport[0], "\n"); $num = count($exportData); for ($i = 1; $i < $num - 1; $i++) { $overviewExportArray = str_getcsv($exportData[$i], ","); if (isset($this->_merchantMap[$overviewExportArray[0]]) && in_array($this->_merchantMap[$overviewExportArray[0]], $merchantList)) { $overview = array(); $overview['merchantId'] = $this->_merchantMap[$overviewExportArray[0]]; $overviewDate = new Zend_Date($overviewExportArray[1], 'yyyy-MM-dd', 'en'); $overview['date'] = $overviewDate->toString("yyyy-MM-dd HH:mm:ss"); $overview['click_number'] = (int) $overviewExportArray[8]; $overview['impression_number'] = (int) $overviewExportArray[9]; $overview['transaction_number'] = 0; $overview['transaction_confirmed_value'] = 0; $overview['transaction_confirmed_commission'] = 0; $overview['transaction_pending_value'] = 0; $overview['transaction_pending_commission'] = 0; $overview['transaction_declined_value'] = 0; $overview['transaction_declined_commission'] = 0; $transactionDateArray = Oara_Utilities::getDayFromArray($overview['merchantId'], $transactionArray, $overviewDate); foreach ($transactionDateArray as $transaction) { $overview['transaction_number']++; if ($transaction['status'] == Oara_Utilities::STATUS_CONFIRMED) { $overview['transaction_confirmed_value'] += $transaction['amount']; $overview['transaction_confirmed_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_PENDING) { $overview['transaction_pending_value'] += $transaction['amount']; $overview['transaction_pending_commission'] += $transaction['commission']; } else { if ($transaction['status'] == Oara_Utilities::STATUS_DECLINED) { $overview['transaction_declined_value'] += $transaction['amount']; $overview['transaction_declined_commission'] += $transaction['commission']; } } } } if (Oara_Utilities::checkRegister($overview)) { $overviewArray[] = $overview; } } } return $overviewArray; }
/** * (non-PHPdoc) * @see library/Oara/Network/Oara_Network_Base#getOverviewList($merchantId, $dStartDate, $dEndDate) */ public function getOverviewList($transactionList = null, $merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null) { $totalOverview = array(); $mothOverviewUrls = array(); $valuesFormExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $valuesFormExport[] = new Oara_Curl_Parameter('fromDate', $dStartDate->toString("M/d/yyyy")); $valuesFormExport[] = new Oara_Curl_Parameter('toDate', $dEndDate->toString("M/d/yyyy")); $mothOverviewUrls[] = new Oara_Curl_Request('https://cli.linksynergy.com/cli/publisher/reports/advancedReports.php', $valuesFormExport); $exportMothReport = $this->_client->post($mothOverviewUrls); $exportReportNumber = count($exportMothReport); for ($i = 0; $i < $exportReportNumber; $i++) { $doc = new DOMDocument(); libxml_use_internal_errors(true); $doc->validateOnParse = true; $doc->loadHTML($exportMothReport[$i]); $frame = $doc->getElementById('frame'); if ($frame !== null) { $frameUrl = null; foreach ($frame->attributes as $attrName => $attrNode) { if ($attrName == 'src') { $frameUrl = $attrNode->nodeValue; } } $urls = array(); $urls[] = new Oara_Curl_Request($frameUrl, array()); $exportReport = $this->_client->get($urls); if (preg_match("/result=\"searching\"/", $exportReport[0]) || preg_match("/Logging in/", $exportReport[0])) { $urls = array(); $urls[] = new Oara_Curl_Request($frameUrl, array()); $exportReport = $this->_client->get($urls); } if (!preg_match("/<a class=\"NQWMenuItem\" name=\"SectionElements\" href=\"javascript:void\\(null\\);\" onclick=\"NQWClearActiveMenu\\(\\);Download\\('([^<]*)'\\); return false\">Download Data<\\/a>/", $exportReport[0], $matches)) { if (preg_match("/No Results/", $exportReport[0])) { return $totalOverview; } } } } $transactionArray = Oara_Utilities::transactionMapPerDay($transactionList); $mothOverviewUrls = array(); $dateArray = Oara_Utilities::daysOfDifference($dStartDate, $dEndDate); $dateArraySize = sizeof($dateArray); for ($i = 0; $i < $dateArraySize; $i++) { $valuesFormExport = Oara_Utilities::cloneArray($this->_exportOverviewParameters); $valuesFormExport[] = new Oara_Curl_Parameter('fromDate', $dateArray[$i]->toString("M/d/yyyy")); $valuesFormExport[] = new Oara_Curl_Parameter('toDate', $dateArray[$i]->toString("M/d/yyyy")); $mothOverviewUrls[] = new Oara_Curl_Request('https://cli.linksynergy.com/cli/publisher/reports/advancedReports.php', $valuesFormExport); } $exportMothReport = $this->_client->post($mothOverviewUrls); $exportReportNumber = count($exportMothReport); for ($i = 0; $i < $exportReportNumber; $i++) { $doc = new DOMDocument(); libxml_use_internal_errors(true); $doc->validateOnParse = true; $doc->loadHTML($exportMothReport[$i]); $frame = $doc->getElementById('frame'); $frameUrl = null; if ($frame !== null) { foreach ($frame->attributes as $attrName => $attrNode) { if ($attrName == 'src') { $frameUrl = $attrNode->nodeValue; } } $urls = array(); $urls[] = new Oara_Curl_Request($frameUrl, array()); $exportReport = $this->_client->get($urls); while (!preg_match("/No Results/", $exportReport[0], $matches)) { if (preg_match("/<a class=\"NQWMenuItem\" name=\"SectionElements\" href=\"javascript:void\\(null\\);\" onclick=\"NQWClearActiveMenu\\(\\);Download\\('([^<]*)'\\); return false\">Download Data<\\/a>/", $exportReport[0], $matches)) { $totalOverview = self::getOverview($matches, $totalOverview, $merchantList, $mothOverviewUrls[$i]->getParameter(9), $transactionArray); break; } else { if (preg_match("/result=\"searching\"/", $exportReport[0]) || preg_match("/Logging in/", $exportReport[0])) { $urls = array(); $urls[] = new Oara_Curl_Request($frameUrl, array()); $exportReport = $this->_client->get($urls); } else { //echo $exportReport[0]; throw new Exception("Error getting transactions"); } } } } } return $totalOverview; }
/** * Check the connection */ public function checkConnection() { $connection = false; $urls = array(); $urls[] = new Oara_Curl_Request('http://cli.linksynergy.com/cli/publisher/home.php', array()); $result = $this->_client->get($urls); // Check if the credentials are right if (preg_match('/https:\\/\\/cli\\.linksynergy\\.com\\/cli\\/common\\/logout\\.php/', $result[0], $matches)) { $urls = array(); $urls[] = new Oara_Curl_Request('https://cli.linksynergy.com/cli/publisher/my_account/marketingChannels.php', array()); $resultHtml = $this->_client->get($urls); $dom = new Zend_Dom_Query($resultHtml[0]); $results = $dom->query('table'); foreach ($results as $table) { $tableCsv = self::htmlToCsv(self::DOMinnerHTML($table)); } $resultsSites = array(); $num = count($tableCsv); for ($i = 1; $i < $num; $i++) { $payment = array(); $siteArray = str_getcsv($tableCsv[$i], ";"); if (isset($siteArray[2]) && is_numeric($siteArray[2])) { $result = array(); $result["id"] = $siteArray[2]; $result["name"] = $siteArray[1]; $result["url"] = "https://cli.linksynergy.com/cli/publisher/common/changeCurrentChannel.php?sid=" . $result["id"]; $resultsSites[] = $result; } } $siteList = array(); foreach ($resultsSites as $resultSite) { $site = new stdClass(); $site->website = $resultSite["name"]; $site->url = $resultSite["url"]; $parsedUrl = parse_url($site->url); $attributesArray = explode('&', $parsedUrl['query']); $attributeMap = array(); foreach ($attributesArray as $attribute) { $attributeValue = explode('=', $attribute); $attributeMap[$attributeValue[0]] = $attributeValue[1]; } $site->id = $attributeMap['sid']; // Login into the Site ID $urls = array(); $urls[] = new Oara_Curl_Request($site->url, array()); $result = $this->_client->get($urls); $urls = array(); $urls[] = new Oara_Curl_Request('http://cli.linksynergy.com/cli/publisher/links/webServices.php', array()); $result = $this->_client->get($urls); // Getting the API Token $dom = new Zend_Dom_Query($result[0]); $results = $dom->query('.commonBoxContentArea .commonBoxInnerArea .contentPaddedRow'); $count = count($results); foreach ($results as $result) { if (preg_match("/[a-fA-F0-9]{64}/", $result->nodeValue, $match)) { $token = $match[0]; $dom = new Zend_Dom_Query($result->ownerDocument->saveXML($result)); $image = $dom->query('#sidIcon'); if (count($image) == 1) { $site->secureToken = $token; } else { $site->token = $token; } } } // Requesting Token if not available if (!isset($site->token)) { $urls = array(); $urlParams = array(); $urlParams[] = new Oara_Curl_Parameter('analyticchannel', ''); $urlParams[] = new Oara_Curl_Parameter('analyticpage', ''); $urlParams[] = new Oara_Curl_Parameter('doUpdateToken', 'Y'); $urls[] = new Oara_Curl_Request('http://cli.linksynergy.com/cli/publisher/links/webServices.php?', $urlParams); $result = $this->_client->post($urls); // Getting the API Token $dom = new Zend_Dom_Query($result[0]); $results = $dom->query('.commonBoxContentArea .commonBoxInnerArea .contentPaddedRow'); $count = count($results); foreach ($results as $result) { if (preg_match("/[a-fA-F0-9]{64}/", $result->nodeValue, $match)) { $token = $match[0]; $dom = new Zend_Dom_Query($result->ownerDocument->saveXML($result)); $image = $dom->query('#sidIcon'); if (count($image) == 0) { $site->token = $token; } } } } if (!isset($site->secureToken)) { $urls = array(); $urlParams = array(); $urlParams[] = new Oara_Curl_Parameter('analyticchannel', ''); $urlParams[] = new Oara_Curl_Parameter('analyticpage', ''); $urlParams[] = new Oara_Curl_Parameter('doUpdateSecureToken', 'Y'); $urls[] = new Oara_Curl_Request('http://cli.linksynergy.com/cli/publisher/links/webServices.php?', $urlParams); $result = $this->_client->post($urls); // Getting the API Token $dom = new Zend_Dom_Query($result[0]); $results = $dom->query('.commonBoxContentArea .commonBoxInnerArea .contentPaddedRow'); $count = count($results); foreach ($results as $result) { if (preg_match("/[a-fA-F0-9]{64}/", $result->nodeValue, $match)) { $token = $match[0]; $dom = new Zend_Dom_Query($result->ownerDocument->saveXML($result)); $image = $dom->query('#sidIcon'); if (count($image) == 1) { $site->secureToken = $token; } } } } $siteList[] = $site; } $connection = true; $this->_siteList = $siteList; } return $connection; }
/** * (non-PHPdoc) * * @see library/Oara/Network/Oara_Network_Publisher_Interface#getTransactionList($aMerchantIds, $dStartDate, $dEndDate, $sTransactionStatus) */ public function getTransactionList($merchantList = null, Zend_Date $dStartDate = null, Zend_Date $dEndDate = null, $merchantMap = null) { $totalTransactions = array(); $cancelledMap = array(); $valuesFormExport = array(); $valuesFormExport[] = new Oara_Curl_Parameter('cancelled', 'cancelled'); $urls = array(); $urls[] = new Oara_Curl_Request('https://secure.rentalcars.com/affiliates/booked_excel?date_start=' . $dStartDate->toString("yyyy-MM-dd") . '&date_end=' . $dEndDate->toString("yyyy-MM-dd"), $valuesFormExport); $exportReport = $this->_client->post($urls); $xml = simplexml_load_string($exportReport[0]); $json = json_encode($xml); $array = json_decode($json, TRUE); $headerIndex = array(); for ($i = 0; $i < count($array["Worksheet"]["Table"]["Row"][2]["Cell"]); $i++) { $headerIndex[$i] = $array["Worksheet"]["Table"]["Row"][2]["Cell"][$i]["Data"]; } for ($z = 3; $z < count($array["Worksheet"]["Table"]["Row"]) - 2; $z++) { $transactionDetails = array(); for ($i = 0; $i < count($array["Worksheet"]["Table"]["Row"][$z]["Cell"]); $i++) { if (isset($array["Worksheet"]["Table"]["Row"][$z]["Cell"][$i]["Data"])) { $transactionDetails[$headerIndex[$i]] = $array["Worksheet"]["Table"]["Row"][$z]["Cell"][$i]["Data"]; } } $cancelledMap[$transactionDetails["Res. Number"]] = true; } $valuesFormExport = array(); $valuesFormExport[] = new Oara_Curl_Parameter('booking', 'booking'); $urls = array(); $urls[] = new Oara_Curl_Request('https://secure.rentalcars.com/affiliates/booked_excel?date_start=' . $dStartDate->toString("yyyy-MM-dd") . '&date_end=' . $dEndDate->toString("yyyy-MM-dd"), $valuesFormExport); $exportReport = $this->_client->post($urls); $xml = simplexml_load_string($exportReport[0]); $json = json_encode($xml); $array = json_decode($json, TRUE); $headerIndex = array(); for ($i = 0; $i < count($array["Worksheet"]["Table"]["Row"][2]["Cell"]); $i++) { if (isset($array["Worksheet"]["Table"]["Row"][2]["Cell"][$i]["Data"])) { $headerIndex[$i] = $array["Worksheet"]["Table"]["Row"][2]["Cell"][$i]["Data"]; } } for ($z = 3; $z < count($array["Worksheet"]["Table"]["Row"]) - 2; $z++) { $transactionDetails = array(); for ($i = 0; $i < count($array["Worksheet"]["Table"]["Row"][$z]["Cell"]); $i++) { if (isset($array["Worksheet"]["Table"]["Row"][$z]["Cell"][$i]["Data"])) { $transactionDetails[$headerIndex[$i]] = $array["Worksheet"]["Table"]["Row"][$z]["Cell"][$i]["Data"]; } } $transaction = array(); $transaction['merchantId'] = "1"; $transaction['unique_id'] = $transactionDetails["Res. Number"]; if (isset($transactionDetails["Payment Date"]) && $transactionDetails["Payment Date"] != null) { $date = new Zend_Date($transactionDetails["Payment Date"], "dd MMM yyyy - HH:ii", "en_GB"); } else { $date = new Zend_Date($transactionDetails["Book Date"], "dd MMM yyyy - HH:ii", "en_GB"); } if (!empty($transactionDetails["AD Campaign"])) { $transaction['custom_id'] = $transactionDetails["AD Campaign"]; } $transaction['date'] = $date->toString("yyyy-MM-dd HH:mm:00"); if (isset($transactionDetails["Payment Date"]) && $transactionDetails["Payment Date"] != null) { $transaction['status'] = Oara_Utilities::STATUS_CONFIRMED; } else { $transaction['status'] = Oara_Utilities::STATUS_PENDING; } if (isset($cancelledMap[$transaction['unique_id']])) { $transaction['status'] = Oara_Utilities::STATUS_DECLINED; } $rate = 0; if (isset($transactionDetails["Total Commission"]) && !is_array($transactionDetails["Total Commission"]) && $transactionDetails["Total Commission"] != 0) { $rate = $transactionDetails["Booking Value"] / $transactionDetails["Total Commission"]; } $euros = 0; if (isset($transactionDetails["Total Commission in Euros"]) && !is_array($transactionDetails["Total Commission in Euros"]) && $transactionDetails["Total Commission in Euros"] != 0) { $euros = $transactionDetails["Total Commission in Euros"]; } $transaction['amount'] = $euros * $rate; $transaction['currency'] = "EUR"; $transaction['commission'] = $euros; $totalTransactions[] = $transaction; } return $totalTransactions; }
/** * (non-PHPdoc) * @see Oara/Network/Oara_Network_Base#getPaymentHistory() */ public function getPaymentHistory($currentPage = 1) { $paymentHistory = array(); $pdfToTextPath = ''; if (PHP_OS == "WIN32" || PHP_OS == "WINNT") { return $paymentHistory; } else { // some other platform $pdfToTextPath = 'pdftotext '; } $params = array(); if ($currentPage != 1) { $urls = array(); $urls[] = new Oara_Curl_Request($this->_serverUrl . '/Invoices/Default.aspx?', $params); $exportReport = $this->_client->post($urls); $doc = new DOMDocument(); libxml_use_internal_errors(true); $doc->validateOnParse = true; $doc->loadHTML($exportReport[0]); $viewState = $doc->getElementById('__VIEWSTATE')->attributes->getNamedItem("value")->nodeValue; $params = array(new Oara_Curl_Parameter('__EVENTTARGET', 'ctl00$ContentPlaceHolder1$gvInvoices'), new Oara_Curl_Parameter('__EVENTARGUMENT', 'Page$' . $currentPage), new Oara_Curl_Parameter('__VIEWSTATE', $viewState)); } $urls = array(); $urls[] = new Oara_Curl_Request($this->_serverUrl . '/Invoices/Default.aspx?', $params); $exportReport = $this->_client->post($urls); $doc = new DOMDocument(); libxml_use_internal_errors(true); $doc->validateOnParse = true; $doc->loadHTML($exportReport[0]); $registerTable = $doc->getElementById('ctl00_ContentPlaceHolder1_gvInvoices'); if ($registerTable !== null) { $registerLines = $registerTable->childNodes; $descriptorspec = array(0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w')); $pagesNumber = 1; for ($i = 2; $i < $registerLines->length; $i++) { $registerLineClass = $registerLines->item($i)->attributes->getNamedItem("class")->nodeValue; if ($registerLineClass == 'pager') { $lenght = $registerLines->item($i)->childNodes->item(0)->childNodes->item(0)->childNodes->item(0)->childNodes->length; $pagesNumber = $registerLines->item($i)->childNodes->item(0)->childNodes->item(0)->childNodes->item(0)->childNodes->item($lenght - 2)->nodeValue; } else { $registerLine = $registerLines->item($i)->childNodes; $obj = array(); //get the pdf $parameters = array(); $parameters[] = new Oara_Curl_Parameter('id', $registerLine->item(0)->nodeValue); $urls = array(); $urls[] = new Oara_Curl_Request($this->_serverUrl . 'Invoices/ViewInvoice.aspx?', $parameters); $exportReport = $this->_client->get($urls); $exportReportUrl = $this->_client->get($urls, 'url'); $exportReportUrl = explode('/', $exportReportUrl[0]); $exportReportUrl = $exportReportUrl[count($exportReportUrl) - 1]; $dir = realpath(dirname(__FILE__)) . '/../data/pdf/'; //writing temp pdf $fh = fopen($dir . $exportReportUrl, 'w') or die("can't open file"); fwrite($fh, $exportReport[0]); fclose($fh); //parsing the pdf $pipes = null; $pdfReader = proc_open($pdfToTextPath . $dir . $exportReportUrl . ' -', $descriptorspec, $pipes, null, null); if (is_resource($pdfReader)) { $pdfContent = ''; $error = ''; $stdin = $pipes[0]; $stdout = $pipes[1]; $stderr = $pipes[2]; while (!feof($stdout)) { $pdfContent .= fgets($stdout); } while (!feof($stderr)) { $error .= fgets($stderr); } fclose($stdin); fclose($stdout); fclose($stderr); $exit_code = proc_close($pdfReader); } if (preg_match_all("/[0-9]*,?[0-9]*\\.[0-9]+/", $pdfContent, $matches)) { $obj['value'] = Oara_Utilities::parseDouble($matches[0][count($matches[0]) - 1]); } else { throw new Exception('Problem getting value in payments'); } unlink($dir . $exportReportUrl); $date = new Zend_Date($registerLine->item(3)->nodeValue, "dd/MMM/yyyy", 'en_US'); $obj['date'] = $date->toString("yyyy-MM-dd HH:mm:ss"); $obj['pid'] = $registerLine->item(0)->nodeValue; $obj['method'] = 'BACS'; $paymentHistory[] = $obj; } } if ($currentPage == 1) { for ($i = 2; $i <= $pagesNumber; $i++) { $paymentHistory = array_merge($paymentHistory, self::getPaymentHistory($i)); } } } return $paymentHistory; }
/** * (non-PHPdoc) * @see Oara/Network/Oara_Network_Publisher_Base#getPaymentHistory() */ public function getPaymentHistory() { $paymentHistory = array(); $filter = new Zend_Filter_LocalizedToNormalized(array('precision' => 2)); $startDate = new Zend_Date("01-01-2012", "dd-MM-yyyy"); $endDate = new Zend_Date(); $dateList = Oara_Utilities::monthsOfDifference($startDate, $endDate); foreach ($dateList as $date) { $monthStartDate = clone $date; $monthEndDate = null; $monthEndDate = clone $date; $monthEndDate->setDay(1); $monthEndDate->addMonth(1); $monthEndDate->subDay(1); $monthEndDate->setHour(23); $monthEndDate->setMinute(59); $monthEndDate->setSecond(59); $valuesFromExport = array(); $valuesFromExport[] = new Oara_Curl_Parameter('Begin_Date', $monthStartDate->toString("MM/dd/yyyy")); $valuesFromExport[] = new Oara_Curl_Parameter('End_Date', $monthEndDate->toString("MM/dd/yyyy")); $valuesFromExport[] = new Oara_Curl_Parameter('cd', "c"); $valuesFromExport[] = new Oara_Curl_Parameter('disb', "false"); $valuesFromExport[] = new Oara_Curl_Parameter('coll', "true"); $valuesFromExport[] = new Oara_Curl_Parameter('transactionID', ""); $valuesFromExport[] = new Oara_Curl_Parameter('Begin_DatePN', ""); $valuesFromExport[] = new Oara_Curl_Parameter('Begin_DateCN', ""); $valuesFromExport[] = new Oara_Curl_Parameter('End_DatePN', ""); $valuesFromExport[] = new Oara_Curl_Parameter('End_DateCN', ""); $valuesFromExport[] = new Oara_Curl_Parameter('disbAcctIDRef', ""); $valuesFromExport[] = new Oara_Curl_Parameter('checkNumberID', ""); $valuesFromExport[] = new Oara_Curl_Parameter('paymentNum', ""); $valuesFromExport[] = new Oara_Curl_Parameter('sel_type', "OTH"); $valuesFromExport[] = new Oara_Curl_Parameter('payStatusCat', "ALL_STATUSES"); $valuesFromExport[] = new Oara_Curl_Parameter('amount', ""); $valuesFromExport[] = new Oara_Curl_Parameter('aggregatedCreditAmount', ""); $valuesFromExport[] = new Oara_Curl_Parameter('disbSiteIDManual', ""); $valuesFromExport[] = new Oara_Curl_Parameter('collSiteIDManual', ""); $valuesFromExport[] = new Oara_Curl_Parameter('agencyid', ""); $valuesFromExport[] = new Oara_Curl_Parameter('collbankAccount', ""); $valuesFromExport[] = new Oara_Curl_Parameter('remitInvoice', ""); $valuesFromExport[] = new Oara_Curl_Parameter('remitAccount', ""); $valuesFromExport[] = new Oara_Curl_Parameter('remitCustAccount', ""); $valuesFromExport[] = new Oara_Curl_Parameter('remitCustName', ""); $valuesFromExport[] = new Oara_Curl_Parameter('remitVendorNumber', ""); $valuesFromExport[] = new Oara_Curl_Parameter('remitVendorName', ""); $urls = array(); $urls[] = new Oara_Curl_Request('https://secure.paymode.com/paymode/payment-DB-search.jsp?dataSource=1', $valuesFromExport); $exportReport = $this->_client->post($urls); if (!preg_match("/No payments were found/", $exportReport[0])) { $dom = new Zend_Dom_Query($exportReport[0]); $results = $dom->query('form[name="transform"] table'); if (count($results) > 0) { $tableCsv = self::htmlToCsv(self::DOMinnerHTML($results->current())); $payment = array(); $paymentArray = str_getcsv($tableCsv[4], ";"); $payment['pid'] = $paymentArray[1]; $dateResult = $dom->query('form[name="collForm"] table'); if (count($dateResult) > 0) { $dateCsv = self::htmlToCsv(self::DOMinnerHTML($dateResult->current())); $dateArray = str_getcsv($dateCsv[2], ";"); $paymentDate = new Zend_Date($dateArray[1], 'dd-MMM-yyyy', 'en'); $payment['date'] = $paymentDate->toString("yyyy-MM-dd HH:mm:ss"); $paymentArray = str_getcsv($tableCsv[3], ";"); $payment['value'] = Oara_Utilities::parseDouble(preg_replace("/[^0-9\\.,]/", "", $paymentArray[3])); $payment['method'] = "BACS"; $paymentHistory[] = $payment; } } else { $results = $dom->query('table[cellpadding="2"]'); foreach ($results as $table) { $tableCsv = self::htmlToCsv(self::DOMinnerHTML($table)); $num = count($tableCsv); for ($i = 1; $i < $num; $i++) { $payment = array(); $paymentArray = str_getcsv($tableCsv[$i], ";"); $payment['pid'] = $paymentArray[0]; $paymentDate = new Zend_Date($paymentArray[3], 'MM/dd/yyyy', 'en'); $payment['date'] = $paymentDate->toString("yyyy-MM-dd HH:mm:ss"); $payment['value'] = Oara_Utilities::parseDouble($paymentArray[9]); $payment['method'] = "BACS"; $paymentHistory[] = $payment; } } } } } return $paymentHistory; }