Oara\Network\Publisher\WebGains::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();
        $merchantListIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList);
        foreach ($this->_campaignMap as $campaignKey => $campaignValue) {
            try {
                $transactionList = $this->_soapClient->getFullEarningsWithCurrency($dStartDate->format("Y-m-d\\TH:i:s"), $dEndDate->format("Y-m-d\\TH:i:s"), $campaignKey, $this->_user, $this->_password);
            } catch (\Exception $e) {
                if (\preg_match("/60 requests/", $e->getMessage())) {
                    \sleep(60);
                    $transactionList = $this->_soapClient->getFullEarningsWithCurrency($dStartDate->format("Y-m-d\\TH:i:s"), $dEndDate->format("Y-m-d\\TH:i:s"), $campaignKey, $this->_user, $this->_password);
                }
            }
            foreach ($transactionList as $transactionObject) {
                if (isset($merchantListIdList[$transactionObject->programID])) {
                    $transaction = array();
                    $transaction['merchantId'] = $transactionObject->programID;
                    $transactionDate = \DateTime::createFromFormat("Y-m-d\\TH:i:s", $transactionObject->date);
                    $transaction["date"] = $transactionDate->format("Y-m-d H:i:s");
                    $transaction['unique_id'] = $transactionObject->transactionID;
                    if ($transactionObject->clickRef != null) {
                        $transaction['custom_id'] = $transactionObject->clickRef;
                    }
                    $transaction['status'] = null;
                    $transaction['amount'] = $transactionObject->saleValue;
                    $transaction['commission'] = $transactionObject->commission;
                    if ($transactionObject->paymentStatus == 'cleared' || $transactionObject->paymentStatus == 'paid') {
                        $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
                    } else {
                        if ($transactionObject->paymentStatus == 'notcleared') {
                            $transaction['status'] = \Oara\Utilities::STATUS_PENDING;
                        } else {
                            if ($transactionObject->paymentStatus == 'cancelled') {
                                $transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
                            } else {
                                throw new \Exception('Error in the transaction status ' . $transactionObject->paymentStatus);
                            }
                        }
                    }
                    $transaction['currency'] = $transactionObject->currency;
                    $totalTransactions[] = $transaction;
                }
            }
        }
        return $totalTransactions;
    }