Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
initial import
  • Loading branch information
avsh committed Oct 27, 2017
0 parents commit 00f467d
Show file tree
Hide file tree
Showing 15 changed files with 757 additions and 0 deletions.
22 changes: 22 additions & 0 deletions LICENSE
@@ -0,0 +1,22 @@
The MIT License (MIT)

Copyright (c) 2016 eComCharge Ltd SIA https://ecomcharge.com

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

3 changes: 3 additions & 0 deletions Makefile
@@ -0,0 +1,3 @@
all :
if [[ -e opencart-3-begateway-payment-module.ocmod.zip ]]; then rm opencart-3-begateway-payment-module.ocmod.zip; fi
zip -r opencart-3-begateway-payment-module.ocmod.zip upload install.xml
99 changes: 99 additions & 0 deletions README.md
@@ -0,0 +1,99 @@
## OpenCart 3 payment module

[Русская версия](#Модуль-оплаты-opencart-3)

### Installation

* Backup your webstore and database
* Upload the module file [opencart-3-begateway-payment-module.ocmod.zip](https://github.com/begateway/opencart-3-payment-module/raw/master/opencart-3-begateway-payment-module.ocmod.zip) via _Extensions_ -> _Extension Installer_
* Activate the module in payment extensions (_Extensions_ -> _Payments_)
* Configure the module settings:
* Shop Id
* Shop secret key
* Payment page domain
* Order statuses for successfuly processed payment and for failed one
* Enabled the module
* And optionally setup sort order id if you want to move the payment
option higher level in payment method list

### Notes

Tested and developed with OpenCart v.3.0.2.0

### Troubleshooting

If you hosting service doesn't provide a FTP access, most probably you
will have to install [the extension](http://www.opencart.com/index.php?route=extension/extension/info&extension_id=18892) before to install the payment module.

Alternatively you can just upload the _upload_ directory content to your opencart
installation directory.

### Demo credentials

You are free to use the settings to configure the module to process
payments with a demo gateway.

* Shop Id __361__
* Shop secret key __b8647b68898b084b836474ed8d61ffe117c9a01168d867f24953b776ddcb134d__
* Payment page domain __checkout.begateway.com__

Use the test data to make a test payment:

* card number __4200000000000000__
* card name __John Doe__
* card expiry month __01__ to get a success payment
* card expiry month __10__ to get a failed payment
* CVC __123__

### Contributing

Issue pull requests or send feature requests or open [a new issue]( https://github.com/begateway/opencart-3-payment-module/issues/new)

## Модуль оплаты OpenCart 3

[English version](#opencart-3-payment-module)

### Установка

* Создайте резервную копию вашего магазина и базы данных
* Загрузите файл модуля [opencart-3-begateway-payment-module.ocmod.zip](https://github.com/begateway/opencart-3-payment-module/raw/master/opencart-3-begateway-payment-module.ocmod.zip) с помощью _Модули_ -> _Установка расширений_
* Активируйте модуль BeGateway в модулях оплаты (_Модули_ -> _Оплата_)
* Задайте в настройках модуля BeGateway:
* Id магазина
* Ключ магазина
* Домен страницы оплаты
* Статусы заказа в случае успешной и не успешной оплаты
* Включите модуль
* Опционально задайте идентификатор модуля для сортировки его в списке способов оплаты. Меньшее значение подымает модуль в верх списка

### Примечания

Разработано и протестировано с OpenCart v.3.0.2.0

### Проблемы при установке

Если ваша хостинговая компания не предоставляет FTP доступ, то вам будет необходимо установить
[этот модуль](http://www.opencart.com/index.php?route=extension/extension/info&extension_id=18892) прежде чем устанавливать данный модуль оплаты.

Другой вариант - это закачать на сервер содержимое папки _upload_ в корень директoрии, где устанвлена OpenCart

### Тестовые данные

Вы можете использовать следующие данные, чтобы настроить способ оплаты в
тестовом режиме:

* Идентификационный номер магазина __361__
* Секретный ключ магазина __b8647b68898b084b836474ed8d61ffe117c9a01168d867f24953b776ddcb134d__
* Домен платежной страницы __checkout.begateway.com__

Используйте следующий тестовый набор для тестового платежа:

* номер карты __4200000000000000__
* имя на карте __John Doe__
* месяц срока действия карты __01__, чтобы получить успешный платеж
* месяц срока действия карты __10__, чтобы получить неуспешный платеж
* CVC __123__

## Нашли ошибку или у вас есть предложение по улучшению модуля?

Создайте [запрос](https://github.com/begateway/opencart-3-payment-module/issues/new)
6 changes: 6 additions & 0 deletions install.xml
@@ -0,0 +1,6 @@
<modification>
<name>beGateway payment module</name>
<version>3.0.0</version>
<author>beGateway</author>
<code>begateway</code>
</modification>
Binary file added opencart-3-begateway-payment-module.ocmod.zip
Binary file not shown.
185 changes: 185 additions & 0 deletions upload/admin/controller/extension/payment/begateway.php
@@ -0,0 +1,185 @@
<?php
class ControllerExtensionPaymentBeGateway extends Controller {
private $error = array();

public function index() {
$this->load->language('extension/payment/begateway');

$this->document->setTitle($this->language->get('heading_title'));

$this->load->model('setting/setting');

if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {
$this->model_setting_setting->editSetting('payment_begateway', $this->request->post);

$this->session->data['success'] = $this->language->get('text_success');

$this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=payment', true));
}

$data['heading_title'] = $this->language->get('heading_title');
$data['text_edit'] = $this->language->get('text_edit');

$data['text_live_mode'] = $this->language->get('text_live_mode');
$data['text_test_mode'] = $this->language->get('text_test_mode');
$data['text_enabled'] = $this->language->get('text_enabled');
$data['text_disabled'] = $this->language->get('text_disabled');
$data['text_all_zones'] = $this->language->get('text_all_zones');

$data['entry_email'] = $this->language->get('entry_email');
$data['entry_order_status'] = $this->language->get('entry_order_status');
$data['entry_order_status_completed_text'] = $this->language->get('entry_order_status_completed_text');
$data['entry_order_status_pending'] = $this->language->get('entry_order_status_pending');
$data['entry_order_status_canceled'] = $this->language->get('entry_order_status_canceled');
$data['entry_order_status_failed'] = $this->language->get('entry_order_status_failed');
$data['entry_order_status_failed_text'] = $this->language->get('entry_order_status_failed_text');
$data['entry_order_status_processing'] = $this->language->get('entry_order_status_processing');
$data['entry_geo_zone'] = $this->language->get('entry_geo_zone');
$data['entry_status'] = $this->language->get('entry_status');
$data['entry_sort_order'] = $this->language->get('entry_sort_order');
$data['entry_companyid'] = $this->language->get('entry_companyid');
$data['entry_companyid_help'] = $this->language->get('entry_companyid_help');
$data['entry_encyptionkey'] = $this->language->get('entry_encyptionkey');
$data['entry_encyptionkey_help'] = $this->language->get('entry_encyptionkey_help');
$data['entry_domain_payment_page'] = $this->language->get('entry_domain_payment_page');
$data['entry_domain_payment_page_help'] = $this->language->get('entry_domain_payment_page_help');
$data['entry_transaction_type_text'] = $this->language->get('entry_transaction_type_text');
$data['entry_transaction_type_authorization'] = $this->language->get('entry_transaction_type_authorization');
$data['entry_transaction_type_payment'] = $this->language->get('entry_transaction_type_payment');
$data['button_save'] = $this->language->get('button_save');
$data['button_cancel'] = $this->language->get('button_cancel');
$data['tab_general'] = $this->language->get('tab_general');

if (isset($this->error['warning'])) {
$data['error_warning'] = $this->error['warning'];
} else {
$data['error_warning'] = '';
}

if (isset($this->error['companyid'])) {
$data['error_companyid'] = $this->error['companyid'];
} else {
$data['error_companyid'] = '';
}

if (isset($this->error['encyptionkey'])) {
$data['error_encyptionkey'] = $this->error['encyptionkey'];
} else {
$data['error_encyptionkey'] = '';
}

if (isset($this->error['domain_payment_page'])) {
$data['error_domain_payment_page'] = $this->error['domain_payment_page'];
} else {
$data['error_domain_payment_page'] = '';
}

$data['breadcrumbs'] = array();

$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/dashboard', 'user_token=' . $this->session->data['user_token'], true),
'separator' => false
);

$data['breadcrumbs'][] = array(
'text' => $this->language->get('text_extension'),
'href' => $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=payment', true)
);

$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('extension/payment/begateway', 'user_token=' . $this->session->data['user_token'], true),
'separator' => ' :: '
);

$data['action'] = $this->url->link('extension/payment/begateway', 'user_token=' . $this->session->data['user_token'], true);

$data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=payment', true);


if (isset($this->request->post['payment_begateway_companyid'])) {
$data['payment_begateway_companyid'] = $this->request->post['payment_begateway_companyid'];
} else {
$data['payment_begateway_companyid'] = $this->config->get('payment_begateway_companyid');
}

if (isset($this->request->post['payment_begateway_encyptionkey'])) {
$data['payment_begateway_encyptionkey'] = $this->request->post['payment_begateway_encyptionkey'];
} else {
$data['payment_begateway_encyptionkey'] = $this->config->get('payment_begateway_encyptionkey');
}

if (isset($this->request->post['payment_begateway_domain_payment_page'])) {
$data['payment_begateway_domain_payment_page'] = $this->request->post['payment_begateway_domain_payment_page'];
} else {
$data['payment_begateway_domain_payment_page'] = $this->config->get('payment_begateway_domain_payment_page');
}

if (isset($this->request->post['payment_begateway_completed_status_id'])) {
$data['payment_begateway_completed_status_id'] = $this->request->post['payment_begateway_completed_status_id'];
} else {
$data['payment_begateway_completed_status_id'] = $this->config->get('payment_begateway_completed_status_id');
}

if (isset($this->request->post['payment_begateway_failed_status_id'])) {
$data['payment_begateway_failed_status_id'] = $this->request->post['payment_begateway_failed_status_id'];
} else {
$data['payment_begateway_failed_status_id'] = $this->config->get('payment_begateway_failed_status_id');
}

$this->load->model('localisation/order_status');

$data['order_statuses'] = $this->model_localisation_order_status->getOrderStatuses();

if (isset($this->request->post['payment_begateway_status'])) {
$data['payment_begateway_status'] = $this->request->post['payment_begateway_status'];
} else {
$data['payment_begateway_status'] = $this->config->get('payment_begateway_status');
}

if (isset($this->request->post['payment_begateway_geo_zone_id'])) {
$data['payment_begateway_geo_zone_id'] = $this->request->post['payment_begateway_geo_zone_id'];
} else {
$data['payment_begateway_geo_zone_id'] = $this->config->get('payment_begateway_geo_zone_id');
}

$this->load->model('localisation/geo_zone');

$data['geo_zones'] = $this->model_localisation_geo_zone->getGeoZones();

if (isset($this->request->post['payment_begateway_sort_order'])) {
$data['payment_begateway_sort_order'] = $this->request->post['payment_begateway_sort_order'];
} else {
$data['payment_begateway_sort_order'] = $this->config->get('payment_begateway_sort_order');
}

$data['user_token'] = $this->session->data['user_token'];

$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');

$this->response->setOutput($this->load->view('extension/payment/begateway', $data));
}

private function validate() {
if (!$this->user->hasPermission('modify', 'extension/payment/begateway')) {
$this->error['warning'] = $this->language->get('error_permission');
}

if (!$this->request->post['payment_begateway_companyid']) {
$this->error['companyid'] = $this->language->get('error_companyid');
}

if (!$this->request->post['payment_begateway_encyptionkey']) {
$this->error['encyptionkey'] = $this->language->get('error_encyptionkey');
}

if (!$this->request->post['payment_begateway_domain_payment_page']) {
$this->error['domain_payment_page'] = $this->language->get('error_domain_payment_page');
}

return !$this->error;
}
}
40 changes: 40 additions & 0 deletions upload/admin/language/en-gb/extension/payment/begateway.php
@@ -0,0 +1,40 @@
<?php
// Heading
$_['heading_title'] = 'BeGateway';
$_['text_edit'] = 'Edit configuration';

// Text
$_['text_extension'] = 'Extensions';
$_['text_success'] = 'Success: You have modified payment module!';
$_['text_begateway'] = '<img src="view/image/payment/begateway.png" alt="" title="" style="border: 1px solid #EEEEEE;" />';

// Entry
$_['entry_order_status'] = 'Order Status Completed';
$_['entry_order_status_completed_text'] = 'Completed Status';
$_['entry_order_status_failed_text'] = 'Failed Status';
$_['entry_order_status_pending'] = 'Order Status Pending';
$_['entry_order_status_expiredate'] = 'Order Status Expiredate';
$_['entry_order_status_canceled'] = 'Order Status Canceled';
$_['entry_order_status_failed'] = 'Order Status Failed';
$_['entry_order_status_processing'] = 'Order Status Processing';

$_['entry_geo_zone'] = 'Geo Zone';
$_['entry_status'] = 'Status';
$_['entry_sort_order'] = 'Sort Order';

$_['entry_companyid'] = 'Shop Id';
$_['entry_companyid_help'] = 'You can find your shop Id on your backoffice at the shop settings page';
$_['entry_encyptionkey'] = 'Shop secret key';
$_['entry_encyptionkey_help'] = 'You can find your shop secret key in your backoffice at the shop settings page';
$_['entry_domain_payment_page'] = 'Payment page domain';
$_['entry_domain_payment_page_help'] = 'Payment page domain received from your payment processor e.g. checkout.processor.com';
$_['entry_transaction_type_text'] = 'Transaction type';
$_['entry_transaction_type_authorization'] = 'authorization';
$_['entry_transaction_type_payment'] = 'payment';

// Error
$_['error_permission'] = 'Warning: You do not have permission to modify the payment module!';
$_['error_companyid'] = 'Shop Id required!';
$_['error_encyptionkey'] = 'Shop secret key required!';
$_['error_domain_payment_page'] = 'Payment page domain required!';
?>

0 comments on commit 00f467d

Please sign in to comment.