Иконка ресурса

Дополнение Подключение FoxyPay 0.2

Нет прав для скачивания
Совместимость
  1. Лицензия
  2. Пиратская [Null]
Подключение касы FoxyPay
Автор: twileck & Prefix
GitHub:
Установка и настройка

Для работы кассы требуются рассширения для PHP (ОБЫЧНО ОНИ УСТАНОВЛЕНЫ ПО УМОЛЧАНИЮ)​

  • cURL​

  • SimpleXML​

    Установить их можно через SHELL-клиент (если у вас VDS или VPS), если у вас хостинг, то посмотрите как включить рассширение для PHP через ISP или CPanel​

    Если у вас VDS или VPS то используйте такие команды​

    Код:
    //Установка только с правами SUDO или ROOT,
    //Смотрим версию php
    php -v
    //У нас версия php7.4, если у вас другая меняем на свою
    apt install php7.4-xml
    //Если apache
    systemctl restart apache2
    //NGINX
    systemctl reload nginx
  1. Загрузите и распакуйте архив:
    • Для лицензионной GameCMS: папка GameCMS
  2. Загрузите содержимое архива на свой сайт в корневой каталог.
Модуль поддерживает без калькулятора курса 3 валют: USD, UAH, EUR. ЕСЛИ У ВАС УКАЗАНА ВАЛЮТА САЙТА USD, UAH, EUR, ТО ВАЛЮТА САЙТА ДОЛЖНА БЫТЬ ТАКАЯ, КАК И ВАЛЮТА КАССЫ.

  • Пример: Валюта сайта: USD, то и валюта кассы должна принимать только USD. ЕСЛИ ЖЕ У ВАС УКАЗАНЫ RUB ИЛИ ДРУГИЕ ВАЛЮТЫ, КОТОРЫЕ ПОДДЕРЖИВАЮТ КАЛЬКУЛЯЦИЮ, ТО ВЫ МОЖЕТЕ УКАЗАТЬ ЛЮБУЮ ВАЛЮТУ КАССЫ.
  • Пример: Валюта сайта: RUB, значит можно использовать валюты кассы, такие, как: USD, EUR, UAH
  • Настройка валюты кассы (для выборки валюты кассы, вам нужно в самой FoxyPay кассе выбрать идентичную валюту):
    QOaYXXa.png
  1. Откройте файл по пути ajax/actions_m.php.
  2. Найдите break;.
  3. После break; вставьте следующий код:

PHP:
case 'foxypay':
    if (empty($cashierSettings->foxypay_token)) {
        error_log('Error: Способ оплаты не настроен');
        throw new Exception('Способ оплаты не настроен');
    }

    if($cashierSettings->site_currency == "RUB"){
        if($cashierSettings->foxypay_currency == "UAH"){
            $amount = ($amount / (new CurrencyConverter)->getCurrencyRUB("UAH", 2)) * 1000;
        }if($cashierSettings->foxypay_currency == "USD"){
            $amount = $amount / (new CurrencyConverter)->getCurrencyRUB("USD", 0);
            $amount = number_format($amount, 2, '.', '');
            $amount = $amount * 100;
        }if($cashierSettings->foxypay_currency == "EUR"){
            $amount = $amount / (new CurrencyConverter)->getCurrencyRUB("EUR", 3);
            $amount = number_format($amount, 3, '.', '');
            $amount = $amount * 100;
        }
    }else{
        $amount = $amount * 100;
    }

    $curl = new Curl();
    $curl->setHeader('token', $cashierSettings->foxypay_token);

    $curl->post('https://foxypay.net/api/payment', [
        'amount' => $amount,
        'description' => $orderDesc,
        'webhook_url' => $full_site_host . 'purse?foxypay=pay',
        'success_url' => $full_site_host . 'purse?result=success',
        'fail_url' => $full_site_host . 'purse?result=fail',
        'info' => user()->id,
    ]);

    $response = json_decode($curl->response, true);

    if (empty($response['redirect_url'])) {
        error_log('Error: Нет ссылки');
        throw new Exception("Нет ссылки");
    }

    Payments::showLink($response['redirect_url']);
break;
  1. Правка файла modules/purse/index.php:
    6.1 - Вставьте перед $fail = '';
PHP:
include_once (__DIR__.'/modules_foxypay.php');
  1. Импортируйте в базу base.sql (это добавит нужные колонки).
  2. Редактируeм inc/merchants.php:
    • Найдите массив, например: или любой другой
    • PHP:
      'ps'              => [
             'title' => 'Paysera',
             'name'  => 'Paysera',
             'image' => 'paysera.jpg'
      ],
    • После вставляем код

PHP:
'foxypay'              => [
        'title' => 'Моментальное зачисление средств на баланс.',
        'name'  => 'FoxyPay',
        'image' => 'foxypay.png'
],
  1. Админ-центр
  • Открываем ajax\actions_panel.php
  • Вставляем код в самый низ
PHP:
if(isset($_POST['editFoxyPaySystem'])) {
    $foxypay_token = check(trim($_POST['foxypay_token']), null);

    if(empty($foxypay_token)) {
        exit('<p class="text-danger">Вы заполнили не все поля!</p>');
    }

    $STH = $pdo->prepare("UPDATE config__bank SET foxypay_token=:foxypay_token LIMIT 1");
    write_log("Отредактирован FoxyPay");

    $STH->execute([':foxypay_token' => $foxypay_token]);
    exit('<p class="text-success">Настройки изменены!</p>');
}
  • Дальше находим строку с начиная с if (isset($_POST['change_value'])) и меняем код на этот:
PHP:
if (isset($_POST['change_value'])) {
    $table = check($_POST['table'], null);
    $attr = check($_POST['attr'], null);
    $value = check($_POST['value'], null);
    $id = check($_POST['id'], "int");

    if (empty($attr)) {
        exit();
    }
    if (check_for_php($_POST['value'])) {
        exit();
    }
    if (ifSafeMode()) {
        if (($_POST['value'] != check($_POST['value'], "int")) && (!in_array($_POST['value'], ['RUB', 'USD', 'EUR', 'UAH']))) {
            exit();
        }
        if (
            !in_array(
                check($_POST['table'], null),
                ['config', 'users', 'config__bank', 'config__secondary', 'config__email', 'config__prices']
            )
        ) {
            exit();
        }
    }

    if (empty($value) && $value != 0) {
        $value = '';
    }

    if (empty($id)) {
        $STH = pdo()->prepare("UPDATE $table SET `$attr`=:value");
        $STH->execute([':value' => $value]);
    } else {
        $STH = pdo()->prepare("UPDATE $table SET `$attr`=:value WHERE `id`='$id' LIMIT 1");
        $STH->execute([':value' => $value]);
    }
    exit();
}

11. Редактируем js
  • Открываем ajax/ajax-admin.jsи в самый низ вставляем
PHP:
function editFoxyPaySystem() {
    let data = {};
    data['editFoxyPaySystem'] = '1';
    data['foxypay_token'] = $('#foxypay_token').val();
    $.ajax({
        type: "POST",
        url: "../ajax/actions_panel.php",
        data: create_material(data),
        success: function (html) {
            $("#edit_foxypay_result").html(html);
        }
    });
}
  • Открывем templates/admin/tpl/payments.tpl
  • Листаем в самый низ видим 2
PHP:
    </div>
</div>
  • Перед ними ставим следующий код
PHP:
<div class="block">
    <div class="block_head">
        FoxyPay
    </div>
    <div class="form-group mb-10">
        <div class="btn-group" data-toggle="buttons" id="foxypayTrigger">
            <label class="btn btn-default {if($merchants->foxypay == 1)} active {/if}"
                    onclick="change_value('config__bank','foxypay','1','1');">
                <input type="radio">
                Включить
            </label>
            <label class="btn btn-default {if($merchants->foxypay == 2)} active {/if}"
                    onclick="change_value('config__bank','foxypay','2','1');">
                <input type="radio">
                Выключить
            </label>
        </div>
    </div>
    <div class="form-group mb-10">
        <b> Валюта кассы на FoxyPay</b>
        <div class="form-group">
            <div class="btn-group" data-toggle="buttons">
                <label class="btn btn-default {if($merchants->foxypay_currency == 'UAH')} active {/if}"
                       onclick="change_value('config__bank','foxypay_currency','UAH','1');">
                    <input type="radio">
                    UAH
                </label>
   
                <label class="btn btn-default {if($merchants->foxypay_currency == 'USD')} active {/if}"
                       onclick="change_value('config__bank','foxypay_currency','USD','1');">
                    <input type="radio">
                    USD
                </label>
   
                <label class="btn btn-default {if($merchants->foxypay_currency == 'EUR')} active {/if}"
                       onclick="change_value('config__bank','foxypay_currency','EUR','1');">
                    <input type="radio">
                    EUR
                </label>
            </div>
        </div>
    </div>  
    <div class="form-group mb-10">
        <b> Валюта сайта </b>
        <div class="form-group">
            <div class="btn-group" data-toggle="buttons">
                <label class="btn btn-default {if($merchants->site_currency == 'RUB')} active {/if}"
                       onclick="change_value('config__bank','site_currency','RUB','1');">
                    <input type="radio">
                    RUB
                </label>              
                <label class="btn btn-default {if($merchants->site_currency == 'UAH')} active {/if}"
                       onclick="change_value('config__bank','site_currency','UAH','1');">
                    <input type="radio">
                    UAH
                </label>
   
                <label class="btn btn-default {if($merchants->site_currency == 'USD')} active {/if}"
                       onclick="change_value('config__bank','site_currency','USD','1');">
                    <input type="radio">
                    USD
                </label>
   
                <label class="btn btn-default {if($merchants->site_currency == 'EUR')} active {/if}"
                       onclick="change_value('config__bank','site_currency','EUR','1');">
                    <input type="radio">
                    EUR
                </label>
            </div>
        </div>
    </div>    
    <div class="input-group">
        <span class="input-group-btn">
            <button class="btn btn-default pd-23-12" type="button"
                    onclick="editFoxyPaySystem();">
                Изменить
            </button>
        </span>
        <input type="text"
                class="form-control"
                id="foxypay_token"
                maxlength="255"
                autocomplete="off"
                value="{{$merchants->foxypay_token}}"
                placeholder="Токен">
    </div>
    <div id="edit_foxypay_result"></div>
    <div class="bs-callout bs-callout-info mt-10">
        <h5>
            <a target="_blank" href="https://github.com/twileck/gameCMSmodule/tree/master/gamecms">
                <span class="glyphicon glyphicon-link"></span> Нажмите для перехода к инструкции
            </a>
        </h5>
        <table>
            <tr>
                <td style="text-align: right">URL оповещения:</td>
                <td>&nbsp&nbsp<b>{full_site_host}purse?foxypay=pay</b>
                </td>
            </tr>
            <tr>
                <td style="text-align: right">URL успешной оплаты:</td>
                <td>&nbsp&nbsp<b>{full_site_host}purse?result=success</b>
                </td>
            </tr>
            <tr>
                <td style="text-align: right">URL ошибки:</td>
                <td>&nbsp&nbsp<b>{full_site_host}purse?result=fail</b>
                </td>
            </tr>
        </table>
    </div>
</div>
Автор
WowCMS
Скачивания
3
Просмотры
198
Первый выпуск
Обновление
Оценка
0,00 звёзд 0 оценок

Другие ресурсы пользователя WowCMS

Поделиться ресурсом

Сверху Снизу