Oara\Network\Publisher\CommissionJunction::getTransactionsXml PHP Метод

getTransactionsXml() приватный Метод

private getTransactionsXml ( $restUrl, $merchantList ) : array
$restUrl
$merchantList
Результат array
    private function getTransactionsXml($restUrl, $merchantList)
    {
        $totalTransactions = array();
        $merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList);
        $response = self::apiCall($restUrl);
        $xml = \simplexml_load_string($response, null, LIBXML_NOERROR | LIBXML_NOWARNING);
        if (isset($xml->commissions->commission)) {
            foreach ($xml->commissions->commission as $singleTransaction) {
                if (\count($this->_sitesAllowed) == 0 || \in_array((int) self::findAttribute($singleTransaction, 'website-id'), $this->_sitesAllowed)) {
                    if (isset($merchantIdList[(int) self::findAttribute($singleTransaction, 'cid')])) {
                        $type = self::findAttribute($singleTransaction, 'action-type');
                        if (!$this->_includeBonus && $type == "bonus") {
                            continue;
                        }
                        $transaction = array();
                        $transaction['unique_id'] = self::findAttribute($singleTransaction, 'original-action-id');
                        $transaction['action'] = self::findAttribute($singleTransaction, 'action-type');
                        $transaction['merchantId'] = self::findAttribute($singleTransaction, 'cid');
                        $transactionDate = \DateTime::createFromFormat("Y-m-d\\TH:i:s", \substr(self::findAttribute($singleTransaction, 'event-date'), 0, 19));
                        $transaction['date'] = $transactionDate->format("Y-m-d H:i:s");
                        if (self::findAttribute($singleTransaction, 'sid') != null) {
                            $transaction['custom_id'] = self::findAttribute($singleTransaction, 'sid');
                        }
                        $transaction['amount'] = \Oara\Utilities::parseDouble(self::findAttribute($singleTransaction, 'sale-amount'));
                        $transaction['commission'] = \Oara\Utilities::parseDouble(self::findAttribute($singleTransaction, 'commission-amount'));
                        if (self::findAttribute($singleTransaction, 'action-status') == 'locked' || self::findAttribute($singleTransaction, 'action-status') == 'closed') {
                            $transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
                        } else {
                            if (self::findAttribute($singleTransaction, 'action-status') == 'extended' || self::findAttribute($singleTransaction, 'action-status') == 'new') {
                                $transaction['status'] = \Oara\Utilities::STATUS_PENDING;
                            } else {
                                if (self::findAttribute($singleTransaction, 'action-status') == 'corrected') {
                                    $transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
                                }
                            }
                        }
                        if ($transaction['commission'] == 0) {
                            $transaction['status'] = \Oara\Utilities::STATUS_PENDING;
                        }
                        if ($transaction['amount'] < 0 || $transaction['commission'] < 0) {
                            $transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
                            $transaction['amount'] = \abs($transaction['amount']);
                            $transaction['commission'] = \abs($transaction['commission']);
                        }
                        $totalTransactions[] = $transaction;
                    }
                }
            }
        }
        return $totalTransactions;
    }