Oara\Network\Publisher\HasOffers::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();
        $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList);
        $limit = 100;
        $page = 1;
        $loop = true;
        while ($loop) {
            $apiURL = "http://api.hasoffers.com/v3/Affiliate_Report.json?limit={$limit}&page={$page}&Method=getConversions&api_key={$this->_apiPassword}&NetworkId={$this->_domain}&fields[]=Stat.offer_id&fields[]=Stat.datetime&fields[]=Offer.name&fields[]=Stat.conversion_status&fields[]=Stat.payout&fields[]=Stat.conversion_sale_amount&fields[]=Stat.ip&fields[]=Stat.ad_id&fields[]=Stat.affiliate_info1&sort[Stat.datetime]=desc&filters[Stat.date][conditional]=BETWEEN&filters[Stat.date][values][]={$dStartDate->format("Y-m-d")}&filters[Stat.date][values][]={$dEndDate->format("Y-m-d")}&data_start={$dStartDate->format("Y-m-d")}&data_end={$dEndDate->format("Y-m-d")}";
            $response = self::call($apiURL);
            foreach ($response["response"]["data"]["data"] as $transactionApi) {
                $transaction = array();
                $merchantId = (int) $transactionApi["Stat"]["offer_id"];
                if ($merchantList == null || isset($merchantIdList[$merchantId])) {
                    $transaction['merchantId'] = $merchantId;
                    $transaction['date'] = $transactionApi["Stat"]["datetime"];
                    if ($transactionApi["Stat"]["ad_id"] != null) {
                        $transaction['unique_id'] = $transactionApi["Stat"]["ad_id"];
                    }
                    if ($transactionApi["Stat"]["affiliate_info1"] != null) {
                        $transaction['custom_id'] = $transactionApi["Stat"]["affiliate_info1"];
                    }
                    if ($transactionApi["Stat"]["conversion_status"] == "approved") {
                        $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
                    } else {
                        if ($transactionApi["Stat"]["conversion_status"] == "pending") {
                            $transaction['status'] = \Oara\Utilities::STATUS_PENDING;
                        } else {
                            if ($transactionApi["Stat"]["conversion_status"] == "rejected") {
                                $transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
                            }
                        }
                    }
                    $transaction['amount'] = $transactionApi["Stat"]["payout"];
                    if (isset($transactionApi["Stat"]["conversion_sale_amount"])) {
                        $transaction['amount'] = $transactionApi["Stat"]["conversion_sale_amount"];
                    }
                    $transaction['commission'] = $transactionApi["Stat"]["payout"];
                    $totalTransactions[] = $transaction;
                }
            }
            if ((int) $response["response"]["data"]["pageCount"] <= $page) {
                $loop = false;
            }
            $page++;
        }
        return $totalTransactions;
    }