Oara\Network\Publisher\Amazon::getTransactionList PHP Method

getTransactionList() public method

(non-PHPdoc)
public getTransactionList ( $merchantList = null, DateTime $dStartDate = null, DateTime $dEndDate = null )
$dStartDate DateTime
$dEndDate DateTime
    public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null)
    {
        $totalTransactions = array();
        $amountDays = $dStartDate->diff($dEndDate)->days;
        $auxDate = clone $dStartDate;
        for ($j = 0; $j <= $amountDays; $j++) {
            $date = $auxDate->format("Ymd");
            $url = "https://assoc-datafeeds-eu.amazon.com/datafeed/getReport?filename={$this->_credentials["user"]}-earnings-report-{$date}.tsv.gz";
            $curl = \curl_init();
            \curl_setopt($curl, CURLOPT_URL, $url);
            \curl_setopt($curl, CURLOPT_USERPWD, $this->_credentials["user"] . ':' . $this->_credentials["password"]);
            \curl_setopt($curl, CURLOPT_HEADER, false);
            \curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
            \curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
            \curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            \curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
            \curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
            \curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
            $output = \curl_exec($curl);
            if ($output) {
                $filename = \realpath(\dirname(COOKIES_BASE_DIR)) . "/pdf/{$this->_credentials["user"]}-earnings-report-{$date}.tsv.gz";
                \file_put_contents($filename, $output);
                $zd = \gzopen($filename, "r");
                $contents = \gzread($zd, 10000);
                \gzclose($zd);
                $exportData = \explode("\n", $contents);
                $num = \count($exportData);
                for ($i = 2; $i < $num; $i++) {
                    $transactionExportArray = \explode("\t", $exportData[$i]);
                    if (count($transactionExportArray) > 1) {
                        $transaction = array();
                        $transaction['merchantId'] = 1;
                        $transaction['date'] = $auxDate->format("Y-m-d H:i:s");
                        if ($transactionExportArray[9] != null) {
                            $transaction['custom_id'] = $transactionExportArray[9];
                        }
                        $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
                        $transaction['amount'] = \Oara\Utilities::parseDouble($transactionExportArray[7]);
                        $transaction['commission'] = \Oara\Utilities::parseDouble($transactionExportArray[8]);
                        $totalTransactions[] = $transaction;
                    }
                }
                \unlink($filename);
            }
            $auxDate->add(new \DateInterval('P1D'));
        }
        return $totalTransactions;
    }