@@ 18-192 (lines=175) @@ | ||
15 | * Class Digidip |
|
16 | * @package Padosoft\AffiliateNetwork\Networks |
|
17 | */ |
|
18 | class Digidip extends AbstractNetwork implements NetworkInterface |
|
19 | { |
|
20 | /** |
|
21 | * @var object |
|
22 | */ |
|
23 | private $_network = null; |
|
24 | private $_username = ''; |
|
25 | private $_password = ''; |
|
26 | private $_apiClient = null; |
|
27 | protected $_tracking_parameter = ''; |
|
28 | private $_idSite = ''; |
|
29 | ||
30 | /** |
|
31 | * @method __construct |
|
32 | */ |
|
33 | public function __construct(string $username, string $password, string $idSite = '') |
|
34 | { |
|
35 | $this->_network = new \Oara\Network\Publisher\Digidip; |
|
36 | $this->_username = $username; |
|
37 | $this->_password = $password; |
|
38 | $this->_idSite = $idSite; |
|
39 | ||
40 | $this->login( $this->_username, $this->_password, $this->_idSite ); |
|
41 | } |
|
42 | ||
43 | public function login(string $username, string $password, string $idSite = ''): bool{ |
|
44 | $this->_logged = false; |
|
45 | if (isNullOrEmpty( $username ) || isNullOrEmpty( $password )) { |
|
46 | ||
47 | return false; |
|
48 | } |
|
49 | $this->_username = $username; |
|
50 | $this->_password = $password; |
|
51 | $this->_idSite = $idSite; |
|
52 | $credentials = array(); |
|
53 | $credentials["user"] = $this->_username; |
|
54 | $credentials["password"] = $this->_password; |
|
55 | $credentials["idSite"] = $this->_idSite; |
|
56 | $this->_network->login($credentials); |
|
57 | if ($this->_network->checkConnection()) { |
|
58 | $this->_logged = true; |
|
59 | } |
|
60 | ||
61 | return $this->_logged; |
|
62 | } |
|
63 | ||
64 | /** |
|
65 | * @return bool |
|
66 | */ |
|
67 | public function checkLogin() : bool |
|
68 | { |
|
69 | return $this->_logged; |
|
70 | } |
|
71 | ||
72 | /** |
|
73 | * @return array of Merchants |
|
74 | * @throws \Exception |
|
75 | */ |
|
76 | public function getMerchants() : array |
|
77 | { |
|
78 | throw new \Exception("Not implemented yet"); |
|
79 | } |
|
80 | ||
81 | /** |
|
82 | * @param null $merchantID |
|
83 | * @param int $page |
|
84 | * @param int $items_per_page |
|
85 | * @return DealsResultset array of Deal |
|
86 | * @throws \Exception |
|
87 | */ |
|
88 | public function getDeals($merchantID=NULL,int $page=0,int $items_per_page=100 ): DealsResultset |
|
89 | { |
|
90 | throw new \Exception("Not implemented yet"); |
|
91 | ||
92 | } |
|
93 | ||
94 | /** |
|
95 | * @param \DateTime $dateFrom |
|
96 | * @param \DateTime $dateTo |
|
97 | * @param array $arrMerchantID |
|
98 | * @return array of Transaction |
|
99 | * @throws \Exception |
|
100 | */ |
|
101 | public function getSales(\DateTime $dateFrom, \DateTime $dateTo, array $arrMerchantID = array()) : array |
|
102 | { |
|
103 | $arrResult = array(); |
|
104 | try{ |
|
105 | $transactionList = $this->_network->getTransactionList($arrMerchantID, $dateFrom, $dateTo); |
|
106 | foreach($transactionList as $transaction) { |
|
107 | $Transaction = Transaction::createInstance(); |
|
108 | if (isset($transaction['currency']) && !empty($transaction['currency'])) { |
|
109 | $Transaction->currency = $transaction['currency']; |
|
110 | } else { |
|
111 | $Transaction->currency = "EUR"; |
|
112 | } |
|
113 | $Transaction->status = $transaction['status']; |
|
114 | $Transaction->amount = $transaction['amount']; |
|
115 | array_key_exists_safe( $transaction,'custom_id' ) ? $Transaction->custom_ID = $transaction['custom_id'] : $Transaction->custom_ID = ''; |
|
116 | $Transaction->title = ''; |
|
117 | $Transaction->unique_ID = $transaction['unique_id']; |
|
118 | $Transaction->commission = $transaction['commission']; |
|
119 | $date = new \DateTime($transaction['date']); |
|
120 | $Transaction->date = $date; |
|
121 | // Future use - Only few providers returns these dates values - <PN> - 2017-06-29 |
|
122 | if (isset($transaction['click_date']) && !empty($transaction['click_date'])) { |
|
123 | $Transaction->click_date = new \DateTime($transaction['click_date']); |
|
124 | } |
|
125 | if (isset($transaction['update_date']) && !empty($transaction['update_date'])) { |
|
126 | $Transaction->update_date = new \DateTime($transaction['update_date']); |
|
127 | } |
|
128 | $Transaction->merchant_ID = $transaction['merchantId']; |
|
129 | $Transaction->campaign_name = $transaction['merchantName']; |
|
130 | $Transaction->IP = $transaction['IP']; |
|
131 | $Transaction->approved = false; |
|
132 | if ($Transaction->status == \Oara\Utilities::STATUS_CONFIRMED){ |
|
133 | $Transaction->approved = true; |
|
134 | } |
|
135 | $arrResult[] = $Transaction; |
|
136 | } |
|
137 | ||
138 | } |
|
139 | catch (\Exception $e){ |
|
140 | echo "[Digidip][Error] " . $e->getMessage() . PHP_EOL; |
|
141 | var_dump($e->getTraceAsString()); |
|
142 | throw new \Exception($e); |
|
143 | } |
|
144 | ||
145 | return $arrResult; |
|
146 | ||
147 | } |
|
148 | ||
149 | /** |
|
150 | * @param \DateTime $dateFrom |
|
151 | * @param \DateTime $dateTo |
|
152 | * @param int $merchantID |
|
153 | * @return array of Stat |
|
154 | */ |
|
155 | public function getStats(\DateTime $dateFrom, \DateTime $dateTo, int $merchantID = 0) : array |
|
156 | { |
|
157 | // TODO |
|
158 | return array(); |
|
159 | /* |
|
160 | $this->_apiClient->setConnectId($this->_username); |
|
161 | $this->_apiClient->setSecretKey($this->_password); |
|
162 | $dateFromIsoEngFormat = $dateFrom->format('Y-m-d'); |
|
163 | $dateToIsoEngFormat = $dateTo->format('Y-m-d'); |
|
164 | $response = $this->_apiClient->getReportBasic($dateFromIsoEngFormat, $dateToIsoEngFormat); |
|
165 | $arrResponse = json_decode($response, true); |
|
166 | $reportItems = $arrResponse['reportItems']; |
|
167 | $Stat = Stat::createInstance(); |
|
168 | $Stat->reportItems = $reportItems; |
|
169 | ||
170 | return array($Stat); |
|
171 | */ |
|
172 | } |
|
173 | ||
174 | ||
175 | /** |
|
176 | * @param array $params |
|
177 | * @return ProductsResultset |
|
178 | * @throws \Exception |
|
179 | */ |
|
180 | public function getProducts(array $params = []): ProductsResultset |
|
181 | { |
|
182 | // TODO: Implement getProducts() method. |
|
183 | throw new \Exception("Not implemented yet"); |
|
184 | } |
|
185 | ||
186 | public function getTrackingParameter(){ |
|
187 | return $this->_tracking_parameter; |
|
188 | } |
|
189 | ||
190 | ||
191 | ||
192 | } |
@@ 18-178 (lines=161) @@ | ||
15 | * Class VerticalAds |
|
16 | * @package Padosoft\AffiliateNetwork\Networks |
|
17 | */ |
|
18 | class VerticalAds extends AbstractNetwork implements NetworkInterface |
|
19 | { |
|
20 | /** |
|
21 | * @var object |
|
22 | */ |
|
23 | private $_network = null; |
|
24 | private $_username = ''; |
|
25 | private $_password = ''; |
|
26 | protected $_tracking_parameter = 'subid'; |
|
27 | private $_idSite = ''; |
|
28 | ||
29 | /** |
|
30 | * @method __construct |
|
31 | */ |
|
32 | public function __construct(string $username, string $password, string $idSite = '') |
|
33 | { |
|
34 | $this->_network = new \Oara\Network\Publisher\VerticalAds; |
|
35 | $this->_username = $username; |
|
36 | $this->_password = $password; |
|
37 | $this->_idSite = $idSite; |
|
38 | ||
39 | $this->login($this->_username, $this->_password, $this->_idSite); |
|
40 | } |
|
41 | ||
42 | public function login(string $username, string $password, string $idSite = ''): bool |
|
43 | { |
|
44 | $this->_logged = false; |
|
45 | if (isNullOrEmpty($username) || isNullOrEmpty($password)) { |
|
46 | ||
47 | return false; |
|
48 | } |
|
49 | $this->_username = $username; |
|
50 | $this->_password = $password; |
|
51 | $this->_idSite = $idSite; |
|
52 | $credentials = array(); |
|
53 | $credentials["user"] = $this->_username; |
|
54 | $credentials["password"] = $this->_password; |
|
55 | $credentials["idSite"] = $this->_idSite; |
|
56 | $this->_network->login($credentials); |
|
57 | if ($this->_network->checkConnection()) { |
|
58 | $this->_logged = true; |
|
59 | } |
|
60 | ||
61 | return $this->_logged; |
|
62 | } |
|
63 | ||
64 | /** |
|
65 | * @return bool |
|
66 | */ |
|
67 | public function checkLogin(): bool |
|
68 | { |
|
69 | return $this->_logged; |
|
70 | } |
|
71 | ||
72 | /** |
|
73 | * @return array of Merchants |
|
74 | * @throws \Exception |
|
75 | */ |
|
76 | public function getMerchants(): array |
|
77 | { |
|
78 | throw new \Exception("Not implemented yet"); |
|
79 | } |
|
80 | ||
81 | /** |
|
82 | * @param null $merchantID |
|
83 | * @param int $page |
|
84 | * @param int $items_per_page |
|
85 | * @return DealsResultset array of Deal |
|
86 | * @throws \Exception |
|
87 | */ |
|
88 | public function getDeals($merchantID = NULL, int $page = 0, int $items_per_page = 100): DealsResultset |
|
89 | { |
|
90 | throw new \Exception("Not implemented yet"); |
|
91 | ||
92 | } |
|
93 | ||
94 | /** |
|
95 | * @param \DateTime $dateFrom |
|
96 | * @param \DateTime $dateTo |
|
97 | * @param array $arrMerchantID |
|
98 | * @return array of Transaction |
|
99 | * @throws \Exception |
|
100 | */ |
|
101 | public function getSales(\DateTime $dateFrom, \DateTime $dateTo, array $arrMerchantID = array()): array |
|
102 | { |
|
103 | $arrResult = array(); |
|
104 | try { |
|
105 | $transactionList = $this->_network->getTransactionList($arrMerchantID, $dateFrom, $dateTo); |
|
106 | foreach ($transactionList as $transaction) { |
|
107 | $Transaction = Transaction::createInstance(); |
|
108 | if (isset($transaction['currency']) && !empty($transaction['currency'])) { |
|
109 | $Transaction->currency = $transaction['currency']; |
|
110 | } else { |
|
111 | $Transaction->currency = "EUR"; |
|
112 | } |
|
113 | $Transaction->status = $transaction['status']; |
|
114 | $Transaction->action = $transaction['action']; |
|
115 | $Transaction->amount = $transaction['amount']; |
|
116 | array_key_exists_safe($transaction, 'custom_id') ? $Transaction->custom_ID = $transaction['custom_id'] : $Transaction->custom_ID = ''; |
|
117 | $Transaction->title = $transaction['title']; |
|
118 | $Transaction->unique_ID = $transaction['unique_id']; |
|
119 | $Transaction->commission = $transaction['commission']; |
|
120 | $date = new \DateTime($transaction['date']); |
|
121 | $Transaction->date = $date; |
|
122 | // Future use - Only few providers returns these dates values - <PN> - 2017-06-29 |
|
123 | if (isset($transaction['click_date']) && !empty($transaction['click_date'])) { |
|
124 | $Transaction->click_date = new \DateTime($transaction['click_date']); |
|
125 | } |
|
126 | if (isset($transaction['update_date']) && !empty($transaction['update_date'])) { |
|
127 | $Transaction->update_date = new \DateTime($transaction['update_date']); |
|
128 | } |
|
129 | $Transaction->merchant_ID = $transaction['merchantId']; |
|
130 | $Transaction->campaign_name = $transaction['merchantName']; |
|
131 | $Transaction->approved = false; |
|
132 | if ($Transaction->status == \Oara\Utilities::STATUS_CONFIRMED) { |
|
133 | $Transaction->approved = true; |
|
134 | } |
|
135 | $arrResult[] = $Transaction; |
|
136 | } |
|
137 | ||
138 | } catch (\Exception $e) { |
|
139 | echo "[VerticalAds][getSales][Exception] " . $e->getMessage() . PHP_EOL; |
|
140 | var_dump($e->getTraceAsString()); |
|
141 | throw new \Exception($e); |
|
142 | } |
|
143 | ||
144 | return $arrResult; |
|
145 | ||
146 | } |
|
147 | ||
148 | /** |
|
149 | * @param \DateTime $dateFrom |
|
150 | * @param \DateTime $dateTo |
|
151 | * @param int $merchantID |
|
152 | * @return array of Stat |
|
153 | */ |
|
154 | public function getStats(\DateTime $dateFrom, \DateTime $dateTo, int $merchantID = 0): array |
|
155 | { |
|
156 | // TODO |
|
157 | return array(); |
|
158 | } |
|
159 | ||
160 | ||
161 | /** |
|
162 | * @param array $params |
|
163 | * @return ProductsResultset |
|
164 | * @throws \Exception |
|
165 | */ |
|
166 | public function getProducts(array $params = []): ProductsResultset |
|
167 | { |
|
168 | // TODO: Implement getProducts() method. |
|
169 | throw new \Exception("Not implemented yet"); |
|
170 | } |
|
171 | ||
172 | public function getTrackingParameter() |
|
173 | { |
|
174 | return $this->_tracking_parameter; |
|
175 | } |
|
176 | ||
177 | ||
178 | } |
|
179 |