Oara\Network\Publisher\Groupon::getTransactionList PHP Метод

getTransactionList() публичный Метод

public getTransactionList ( null $merchantList = null, DateTime $dStartDate = null, DateTime $dEndDate = null ) : array
$merchantList null
$dStartDate DateTime
$dEndDate DateTime
Результат array
    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;
    }