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;
}