public function getTransactionList($merchantList = null, \DateTime $dStartDate = null, \DateTime $dEndDate = null)
{
$transactions = array();
$merchantIdList = \Oara\Utilities::getMerchantIdMapFromMerchantList($merchantList);
foreach ($this->_publisherList as $publisherId => $publisherName) {
$page = 0;
$import = true;
while ($import) {
$offset = $page * 300;
$url = "https://{$this->_pass}@api.performancehorizon.com/reporting/report_publisher/publisher/{$publisherId}/conversion.json?";
$url .= "status=approved|mixed|pending|rejected";
$url .= "&start_date=" . \urlencode($dStartDate->format("Y-m-d H:i"));
$url .= "&end_date=" . \urlencode($dEndDate->format("Y-m-d H:i"));
$url .= "&offset=" . $offset;
$result = \file_get_contents($url);
$conversionList = \json_decode($result, true);
foreach ($conversionList["conversions"] as $conversion) {
$conversion = $conversion["conversion_data"];
$conversion["campaign_id"] = \str_replace("l", "", $conversion["campaign_id"]);
if (isset($merchantIdList[$conversion["campaign_id"]])) {
if (\count($this->_sitesAllowed) == 0 || \in_array($conversion["campaign_id"], $this->_sitesAllowed)) {
$transaction = array();
$transaction['unique_id'] = $conversion["conversion_id"];
$transaction['merchantId'] = $conversion["campaign_id"];
$transaction['date'] = $conversion["conversion_time"];
if ($conversion["publisher_reference"] != null) {
$transaction['custom_id'] = $conversion["publisher_reference"];
}
if ($conversion["conversion_value"]["conversion_status"] == 'approved') {
$transaction['status'] = \Oara\Utilities::STATUS_CONFIRMED;
} else {
if ($conversion["conversion_value"]["conversion_status"] == 'pending' || $conversion["conversion_value"]["conversion_status"] == 'mixed') {
$transaction['status'] = \Oara\Utilities::STATUS_PENDING;
} else {
if ($conversion["conversion_value"]["conversion_status"] == 'rejected') {
$transaction['status'] = \Oara\Utilities::STATUS_DECLINED;
}
}
}
$transaction['amount'] = $conversion["conversion_value"]["value"];
$transaction['currency'] = $conversion["currency"];
$transaction['commission'] = $conversion["conversion_value"]["publisher_commission"];
$transactions[] = $transaction;
}
}
}
if ((int) $conversionList["count"] < $offset) {
$import = false;
}
$page++;
}
}
return $transactions;
}