|
1 | 1 | <?php |
2 | 2 |
|
3 | | -class ControllerExtensionPaymentCryptapi extends Controller |
4 | | -{ |
| 3 | +namespace Opencart\Admin\Controller\Extension\CryptAPI\Payment; |
| 4 | + |
| 5 | +use Opencart\System\Engine\Config; |
5 | 6 |
|
6 | | - private $error = array(); |
| 7 | +class CryptAPI extends \Opencart\System\Engine\Controller |
| 8 | +{ |
| 9 | + private $error = []; |
7 | 10 |
|
8 | 11 | public function index() |
9 | 12 | { |
10 | | - require_once(DIR_SYSTEM . 'library/cryptapi.php'); |
| 13 | + require(DIR_EXTENSION . 'cryptapi/system/library/cryptapi.php'); |
11 | 14 |
|
12 | | - $this->load->language('extension/payment/cryptapi'); |
| 15 | + $this->load->language('extension/cryptapi/payment/cryptapi'); |
13 | 16 |
|
14 | 17 | $this->document->setTitle($this->language->get('heading_title')); |
15 | 18 |
|
16 | | - $this->load->model('setting/setting'); |
| 19 | + $this->load->model('extension/cryptapi/payment/cryptapi'); |
17 | 20 |
|
18 | 21 | if (($this->request->server['REQUEST_METHOD'] == 'POST')) { |
19 | 22 | $this->model_setting_setting->editSetting('payment_cryptapi', $this->request->post); |
@@ -76,14 +79,14 @@ public function index() |
76 | 79 | 'href' => $this->url->link('extension/payment/cryptapi', 'user_token=' . $this->session->data['user_token'], true) |
77 | 80 | ); |
78 | 81 |
|
79 | | - $data['action'] = $this->url->link('extension/payment/cryptapi', 'user_token=' . $this->session->data['user_token'], true); |
80 | | - $data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'], true); |
| 82 | + $data['action'] = $this->url->link('extension/cryptapi/payment/cryptapi', 'user_token=' . $this->session->data['user_token']); |
| 83 | + $data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=payment'); |
81 | 84 |
|
82 | 85 | /** |
83 | 86 | * Defining Cryptocurrencies |
84 | 87 | */ |
85 | 88 |
|
86 | | - $supported_coins = CryptAPIHelper::get_supported_coins(); |
| 89 | + $supported_coins = \Opencart\Extension\CryptAPI\System\Library\CryptAPIHelper::get_supported_coins(); |
87 | 90 |
|
88 | 91 | $data['payment_cryptapi_cryptocurrencies_array'] = $supported_coins; |
89 | 92 |
|
@@ -204,41 +207,72 @@ public function index() |
204 | 207 | $data['column_left'] = $this->load->controller('common/column_left'); |
205 | 208 | $data['footer'] = $this->load->controller('common/footer'); |
206 | 209 |
|
207 | | - $this->response->setOutput($this->load->view('extension/payment/cryptapi', $data)); |
208 | | - } |
209 | | - |
210 | | - public function install() |
211 | | - { |
212 | | - $this->load->model('extension/payment/cryptapi'); |
213 | | - $this->model_extension_payment_cryptapi->install(); |
214 | | - } |
215 | | - |
216 | | - public function uninstall() |
217 | | - { |
218 | | - $this->load->model('extension/payment/cryptapi'); |
219 | | - $this->model_extension_payment_cryptapi->uninstall(); |
| 210 | + $this->response->setOutput($this->load->view('extension/cryptapi/payment/cryptapi', $data)); |
220 | 211 | } |
221 | 212 |
|
222 | 213 | public function order_info(&$route, &$data, &$output) |
223 | 214 | { |
224 | 215 | $order_id = $this->request->get['order_id']; |
225 | | - $this->load->model('extension/payment/cryptapi'); |
226 | | - $order = $this->model_extension_payment_cryptapi->getOrder($order_id); |
| 216 | + $this->load->model('extension/cryptapi/payment/cryptapi'); |
| 217 | + $order = $this->model_extension_cryptapi_payment_cryptapi->getOrder($order_id); |
227 | 218 | if ($order) { |
228 | 219 | $metaData = $order['response']; |
| 220 | + |
229 | 221 | if (!empty($metaData)) { |
230 | 222 | $metaData = json_decode($metaData, true); |
231 | | - $fields = []; |
| 223 | + $fields = ''; |
232 | 224 | foreach ($metaData as $key => $val) { |
233 | | - $field = ['name' => $key, 'value' => $val]; |
234 | | - $fields[] = $field; |
| 225 | + if ($key === 'cryptapi_qrcode_value' || $key === 'cryptapi_qrcode') { |
| 226 | + $fields .= '<tr><td>' . $key . '</td><td style="line-break: anywhere"><img width="100" class="img-fluid" src="data:image/png;base64,' . $val . '"/></td></tr>'; |
| 227 | + } else if ($key === 'cryptapi_history') { |
| 228 | + $history = json_decode($val); |
| 229 | + $historyObj = '<table class="table table-bordered">'; |
| 230 | + foreach ($history as $h_key => $h_val) { |
| 231 | + $historyObj .= '<tr><td colspan="2"><strong>UUID:</strong> ' . $h_key . '</td>'; |
| 232 | + foreach ($h_val as $hrow_key => $hrow_value) { |
| 233 | + $historyObj .= '<tr><td>' . $hrow_key . '</td><td>' . $hrow_value . '</td>'; |
| 234 | + } |
| 235 | + $historyObj .= '</tr>'; |
| 236 | + } |
| 237 | + $historyObj .= '</table>'; |
| 238 | + $fields .= '<tr><td>' . $key . '</td><td>' . $historyObj . '</td></tr>'; |
| 239 | + |
| 240 | + } else if ($key === 'cryptapi_last_price_update' || $key === 'cryptapi_order_timestamp') { |
| 241 | + $fields .= '<tr><td>' . $key . '</td><td style="line-break: anywhere">' . date('d-m-Y H:i:s', (int)$val) . '</td></tr>'; |
| 242 | + |
| 243 | + } else { |
| 244 | + $fields .= '<tr><td>' . $key . '</td><td style="line-break: anywhere">' . $val . '</td></tr>'; |
| 245 | + } |
235 | 246 | } |
236 | | - if (isset($data['payment_custom_fields']) && is_array($data['payment_custom_fields'])) { |
237 | | - $data['payment_custom_fields'] = array_merge($data['payment_custom_fields'], $fields); |
238 | | - } else { |
239 | | - $data['payment_custom_fields'] = $fields; |
| 247 | + |
| 248 | + if ($data['tabs'][0]['code'] === 'cryptapi') { |
| 249 | + $data['tabs'][0]['content'] = '<table style="font-size: 13px;" class="table table-bordered">' . $fields . '<table>'; |
240 | 250 | } |
241 | 251 | } |
242 | 252 | } |
243 | 253 | } |
| 254 | + |
| 255 | + public function install(): void |
| 256 | + { |
| 257 | + if ($this->user->hasPermission('modify', 'extension/cryptapi')) { |
| 258 | + $this->load->model('extension/cryptapi/payment/cryptapi'); |
| 259 | + |
| 260 | + // Create events |
| 261 | + $this->load->model('setting/event'); |
| 262 | + |
| 263 | + if (!$this->model_setting_event->getEventByCode('cryptapi_order_info')) { |
| 264 | + $this->model_setting_event->addEvent(['code' => 'cryptapi_order_info', 'description' => '', 'trigger' => 'admin/view/sale/order_info/before', 'action' => 'extension/cryptapi/payment/cryptapi|order_info', 'status' => 1, 'sort_order' => '1']); |
| 265 | + } |
| 266 | + |
| 267 | + if (!$this->model_setting_event->getEventByCode('cryptapi_order_button')) { |
| 268 | + $this->model_setting_event->addEvent(['code' => 'cryptapi_order_button', 'description' => '', 'trigger' => 'catalog/view/account/order_info/before', 'action' => 'extension/cryptapi/payment/cryptapi|order_pay_button', 'status' => 1, 'sort_order' => '1']); |
| 269 | + } |
| 270 | + |
| 271 | + if (!$this->model_setting_event->getEventByCode('cryptapi_after_purchase')) { |
| 272 | + $this->model_setting_event->addEvent(['code' => 'cryptapi_after_purchase', 'description' => '', 'trigger' => 'catalog/view/common/success/after', 'action' => 'extension/cryptapi/payment/cryptapi|after_purchase', 'status' => 1, 'sort_order' => '1']); |
| 273 | + } |
| 274 | + |
| 275 | + $this->model_extension_cryptapi_payment_cryptapi->install(); |
| 276 | + } |
| 277 | + } |
244 | 278 | } |
0 commit comments