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

getTransactionList() public method

public getTransactionList ( null $merchantList = null, DateTime $dStartDate = null, DateTime $dEndDate = null ) : array
$merchantList null
$dStartDate DateTime
$dEndDate DateTime
return array
    public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null)
    {
        $totalTransactions = array();
        foreach ($this->_accounts as $account) {
            //New Interface
            $uri = "https://" . $account['accountSid'] . ":" . $account['authToken'] . "@api.impactradius.com/2010-09-01/Mediapartners/" . $account['accountSid'] . "/Actions?ActionDateStart=" . $dStartDate->format('Y-m-d\\TH:i:s') . "-00:00&ActionDateEnd=" . $dEndDate->format('Y-m-d\\TH:i:s') . "-00:00";
            $res = \simplexml_load_file($uri);
            if ($res) {
                $currentPage = (int) $res->Actions->attributes()->page;
                $pageNumber = (int) $res->Actions->attributes()->numpages;
                while ($currentPage <= $pageNumber) {
                    foreach ($res->Actions->Action as $action) {
                        $transaction = array();
                        $transaction['merchantId'] = (int) $action->CampaignId;
                        $transactionDate = \DateTime::createFromFormat("Y-m-d\\TH:i:s", \substr((string) $action->EventDate, 0, 19));
                        $transaction['date'] = $transactionDate->format("Y-m-d H:i:s");
                        $transaction['unique_id'] = (string) $action->Id;
                        if ((string) $action->SharedId != '') {
                            $transaction['custom_id'] = (string) $action->SharedId;
                        }
                        if ((string) $action->SubId1 != '') {
                            $transaction['custom_id'] = (string) $action->SubId1;
                        }
                        $status = (string) $action->Status;
                        $statusArray[$status] = "";
                        if ($status == 'APPROVED' || $status == 'DEFAULT') {
                            $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
                        } else {
                            if ($status == 'REJECTED') {
                                $transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
                            } else {
                                $transaction['status'] = \Oara\Utilities::STATUS_PENDING;
                            }
                        }
                        $transaction['amount'] = (double) $action->Amount;
                        $transaction['commission'] = (double) $action->Payout;
                        $totalTransactions[] = $transaction;
                    }
                    $currentPage++;
                    $nextPageUri = (string) $res->Actions->attributes()->nextpageuri;
                    if ($nextPageUri != null) {
                        $res = \simplexml_load_file("https://" . $account['accountSid'] . ":" . $account['authToken'] . "@api.impactradius.com" . $nextPageUri);
                    }
                }
            }
        }
        return $totalTransactions;
    }