Платежный модуль FinPay для hostinpl 5.6
Залить папку application
==================================
-> application/config.php -> Добавляем:
'finpay' => '',
'finpay_shopid' => '',
'finpay_token' => '',
finpay [статус платежки]
finpay_shopid [ID Магазина]
finpay_token [секретный ключ №1]
-> Открыть файл, /var/www/application/controllers/account/pay.php
-> Добавить вывод статуса платежки, в функции index:
$this->data['finpay'] = $this->config->finpay;
-> Добавить функцию:
public function finpay() {
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->finpay == 1) {
$errorPOST = $this->validatePOST();
if(!$errorPOST) {
$ammount = (int)($this->request->post['ammount'] * 100);
$shop_id = $this->config->finpay_shopid;
$token = $this->config->finpay_token;
$userid = $this->user->getId();
$invoiceData = array(
'user_id' => $userid,
'invoice_ammount' => $ammount,
'invoice_status' => 0,
'system' => "FinPay"
);
$invid = $this->invoicesModel->createInvoice($invoiceData);
$currency = 'RUB'; // валюта Вашего магазина
$country = 'RU'; // страна
/*
1 Небольшая информация по апи
Методы: card_cis | card_nocis
card_cis — страну всегда передавать RU
card_nocis — страну всегда передавать WORLD
Доступные страны для методов:
card_cis - ru, ua, uz, kz, az, kg
card_nocis - WORLD
*/
$method_id = 'card_cis';
$signature = md5("$shop_id:$invid:$ammount:$method_id:$token");
$url = "https://api.finpay.llc/payments";
$data = array(
"shop_id" => $shop_id,
"invoice_id" => $invid,
"description" => "Оплата счета ".$invid,
"amount" => $ammount,
"method" => $method_id,
"country" => $country,
"currency" => $currency,
"signature" => $signature
);
$headers = array(
"Content-Type: application/json"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if(curl_errno($ch)){
echo 'Произошла ошибка: ' . curl_error($ch);
}
$decodedResponse = json_decode($response, true);
$this->data['status'] = "success";
$this->data['url'] = $decodedResponse['url'];
} else {
$this->data['status'] = "error";
$this->data['error'] = $errorPOST;
}
} else {
$this->data['status'] = "error";
$this->data['error'] = "Данная платежная система отключена!";
}
}
return json_encode($this->data);
}
-> application/views/account/pay.php
Добавить html код:
<?php if($finpay == 1): ?>
<div class="col-lg-4">
<div class="card card-custom gutter-b">
<div class="card-body">
<center><img src="/application/public/img/pay/finpay.png" style="max-width:100%;height:65px;" alt=""></center>
</div>
<div class="card-footer">
<button data-toggle="modal" data-target="#finpayhostin" class="btn btn-primary btn-lg btn-block">Пополнить</button>
</div>
</div>
</div>
<div class="modal fade" id="finpayhostin" 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="finpay" 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>
<?php endif; ?>
-> После добавляем скрипт:
<?if($finpay == 1):?>
<script>
$('#finpay').ajaxForm({
url: '/account/pay/finpay',
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;?>
ТОП Записей
Также смотрите
Google Structured Data v4.4.4 PRO - разметка для Google на JoomlaСчетчик добавленных новостей в определенную категориюGoogle Structured Data v4.8.0 PRO - разметка для Google на JoomlaGoogle Structured Data v4.8.1 PRO - разметка для Google на JoomlaGoogle Structured Data v4.8.2 PRO - разметка для Google на JoomlaGoogle Structured Data v4.8.3 PRO - разметка для Google на Joomla