Платежная система Payeer теперь доступна для интеграции с HOSTINPL 5.6. Все необходимые файлы и инструкции для настройки находятся внутри архива. Просто распакуйте архив и следуйте пошаговой инструкции.
Залить папку application (в архиве скачанном)
Добавить в конфиг переменные:
'payeer' => '0',
'payeer_id' => '',
'payeer_key' => '',
payeer - статус платежки
payeer_id - id кассы
payeer_key - ключ кассы
==================================
Открыть файл, /var/www/application/controllers/account/pay.php
Добавить вывод статуса платежки, в функции index:
$this->data['payeer'] = $this->config->payeer;
Добавить функцию:
public function payeer() {
if(!$this->user->isLogged()) {
$this->data['status'] = "error";
$this->data['error'] = "Вы не авторизированы!";
return json_encode($this->data);
}
if($this->user->getAccessLevel() < 1) {
$this->data['status'] = "error";
$this->data['error'] = "У вас нет доступа к данному разделу!";
return json_encode($this->data);
}
$this->load->model('invoices');
if($this->request->server['REQUEST_METHOD'] == 'POST') {
if($this->config->payeer == 1) {
$errorPOST = $this->validatePOST();
if(!$errorPOST) {
$ammount = number_format($this->request->post['ammount'], 2, '.', '');
$login = $this->config->payeer_id;
$password = $this->config->payeer_key;
$userid = $this->user->getId();
$invoiceData = array(
'user_id' => $userid,
'invoice_ammount' => $ammount,
'invoice_status' => 0,
'system' => "Payeer"
);
$invid = $this->invoicesModel->createInvoice($invoiceData);
$m_desc = base64_encode('Payment ' . $invid);
$sign = strtoupper(hash('sha256', implode(':', array($login, $invid, $ammount, 'RUB', $m_desc, $password))));
$url = "https://payeer.com/merchant/";
$url .= "?m_shop=$login";
$url .= "&m_amount=$ammount";
$url .= "&m_orderid=$invid";
$url .= "&m_desc=$m_desc";
$url .= "&m_curr=RUB";
$url .= "&lang=ru";
$url .= "&m_sign=$sign";
$this->data['status'] = "success";
$this->data['url'] = $url;
} else {
$this->data['status'] = "error";
$this->data['error'] = $errorPOST;
}
} else {
$this->data['status'] = "error";
$this->data['error'] = "Данная платежная система отключена!";
}
}
return json_encode($this->data);
}
Открыть файл, /var/www/application/views/account/pay.php
Добавить html код:
<?if($payeer == 1):?>
<div class="col-lg-4">
<div class="card card-custom gutter-b">
<div class="card-body">
<center><img src="/application/public/img/pay/payeer.png" style="max-width:100%;height:65px;" alt=""></center>
</div>
<div class="card-footer">
<button data-toggle="modal" data-target="#payeer" class="btn btn-primary btn-lg btn-block">Пополнить</button>
</div>
</div>
</div>
<div class="modal fade" id="payeer" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Пополнение баланса</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<i aria-hidden="true" class="ki ki-close"></i>
</button>
</div>
<form id="payeer" method="POST" class="form_0" style="padding:0px; margin:0px;">
<div class="modal-body">
<div class="form-group">
<label>Введите сумму</label>
<input class="form-control" id="ammount" name="ammount" placeholder="100">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-light-primary font-weight-bold" data-dismiss="modal">Отмена</button>
<button type="submit" class="btn btn-primary font-weight-bold">Пополнить</button>
</div>
</form>
</div>
</div>
</div>
<?endif;?>
Добавить jаvascript код:
<?if($payeer == 1):?>
<script>
$('#payeer').ajaxForm({
url: '/account/pay/payeer',
dataType: 'text',
success: function(data) {
console.log(data);
data = $.parseJSON(data);
switch(data.status) {
case 'error':
toastr.error(data.error);
$('button[type=submit]').prop('disabled', false);
break;
case 'success':
redirect(data.url);
break;
}
},
beforeSubmit: function(arr, $form, options) {
$('button[type=submit]').prop('disabled', true);
}
});
</script>
<?endif;?>
URL Оповещения обрабатывается POST запросом, имеет такой URL: http://domain.ru/result/payeer