• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

Скрипт Interkassa для L2 2021-09-26

Нет прав для скачивания

Publikator

Путник
Пользователь
Сообщения
36
Розыгрыши
0
Репутация
109
Реакции
1 069
Баллы
3
Publikator добавил(а) новый ресурс:

Скрипт Interkassa для L2 - Скрипт платежной системы Интеркасса для L2

Форма оплаты и обработчик платежной системы Интеркассы для Вашего L2 проекта

*скрин с интернета, ибо у меня был только тестовый режим (видимо нужно вводить паспортные данные/инн для включения всех способов оплаты)

Посмотреть вложение 39647

Узнать больше об этом ресурсе...
 
Последнее редактирование модератором:

подскажите пожалуйста что в данные поля нужно прописать что бы записи велись в базе данных ?
куда вписать webhook Снимок.webp ?
 
все сделал как Вы говорили но вот в базе не пишет ничего
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Что именно не пишет?
сделал проплату с карты, деньги списались а в базе не прописался платеж и не пришли донки

если вводить не правильный ник персонажа то оно на сайте и пишет что нет такого игрока
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
все сделал как Вы говорили но вот в базе не пишет ничего
сделал проплату с карты, деньги списались а в базе не прописался платеж и не пришли донки
если вводить не правильный ник персонажа то оно на сайте и пишет что нет такого игрока
Думаешь автор нострадамус, ванга, кейси, мессинг или подрабатывал на шоу битва экстрасенсов?
Ты должен скрипт переделывать под себя, под свою БД, под свою веб часть, если ты 0, не понимаешь элементарного в PHP/SQL то даже не берись!
 
@ganstar02051994, лог ответа вэбхука покажите. Логи транзакций в лк фрикассы

попутал мальца ? фрикассы у интеркассы походу не пишутся логи ответов. Тогда вариант включаем показ ошибок, комментируем проверки в webhook и вызываем его напрямую. Покажет ошибку почему не записалось в таблицу

PHP:
ini_set( 'display_errors', '1' );

/*if ( $ik_co_id != CHECKOUT_ID )
{
    header( $_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request', true, 400 );
    die( 'Bad Checkout Id' );
}*/

/*if ( $ik_inv_st != 'success' )
{
    header( $_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request', true, 400 );
    die( 'Payment Required' );
}*/

/*if ( $sign != $ik_sign )
{
    header( $_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request', true, 400 );
    die( 'Bad sign!' );
}*/

$char_name = isset( $_POST['ik_x_char'] )
    ? $_POST['ik_x_char']
    : 'test'; // указываем ник

$server_id = isset( $_POST['ik_x_server_id'] )
    ? $_POST['ik_x_server_id']
    : 0; // указываем дефолтный сервер
 
Последнее редактирование:
@ganstar02051994, лог ответа вэбхука покажите. Логи транзакций в лк фрикассы

попутал мальца ? фрикассы у интеркассы походу не пишутся логи ответов. Тогда вариант включаем показ ошибок, комментируем проверки в webhook и вызываем его напрямую. Покажет ошибку почему не записалось в таблицу

PHP:
ini_set( 'display_errors', '1' );

/*if ( $ik_co_id != CHECKOUT_ID )
{
    header( $_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request', true, 400 );
    die( 'Bad Checkout Id' );
}*/

/*if ( $ik_inv_st != 'success' )
{
    header( $_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request', true, 400 );
    die( 'Payment Required' );
}*/

/*if ( $sign != $ik_sign )
{
    header( $_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request', true, 400 );
    die( 'Bad sign!' );
}*/

$char_name = isset( $_POST['ik_x_char'] )
    ? $_POST['ik_x_char']
    : 'test'; // указываем ник

$server_id = isset( $_POST['ik_x_server_id'] )
    ? $_POST['ik_x_server_id']
    : 0; // указываем дефолтный сервер
Я не зануда, просто мб в дальнейшем будет проще:
PHP:
$char_name = isset( $_POST['ik_x_char'] )
    ? $_POST['ik_x_char']
    : 'test'; // указываем ник

$server_id = isset( $_POST['ik_x_server_id'] )
    ? $_POST['ik_x_server_id']
    : 0; // указываем дефолтный сервер

// Если PHP 7+
// То же самое что

$char_name = $_POST['ik_x_char'] ?? 'test'; // указываем ник
$server_id = $_POST['ik_x_server_id'] ?? 0; // указываем дефолтный сервер
 
Кто то может помочь разобраться почему у меня не работает этот скрипт?
 
Оплата проходит успешно, но монеты не зачисляются. интеркасса показывает ошибку 400 в webhook
С какого сервера не приходит оплата, значение сервера 0?
XML:
<option value="0" selected="">Супер сервер</option>

Если отправить запрос с кастомным полем ik_x_server_id и его значением 0, то сервер интеркассы после оплаты пришлет данные на ваш бебхук уже без ik_x_server_id. В итоге вебхук не может найти настройки коннекта к бд с таким айди (-1), что-бы подключится к бд для выдачи предметов, потому и выдает ошибку 400
PHP:
$server_id = isset( $_POST['ik_x_server_id'] ) ? $_POST['ik_x_server_id'] : -1;

if ( !isset( $config[ $server_id ] ) )
{
    header( $_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request', true, 400 );
    die( 'Invalid server id!' );
}
В форме оплаты меняем значение сервера
XML:
                    <label for="server_id">Выберите сервер:</label>
                    <select id="server_id" class="form-control" name="ik_x_server_id">
                        <option value="1" selected>Наш сервер</option>
                    </select>
и настраиваем подключения к бд
PHP:
// Конфиг подключения к игровой бд
$config = [
    [ // serverId 0
        'dbhost' => 'localhost',
        'dbuser' => 'root',
        'dbpass' => 'root',
        'dbname' => 'l2jdb',
        'dbport' => 3306
    ],
    [ // serverId 1
        'dbhost' => 'localhost',
        'dbuser' => 'root',
        'dbpass' => 'root',
        'dbname' => 'l2jdb',
        'dbport' => 3306
    ],
    [ // serverId 2
        'dbhost' => 'localhost',
        'dbuser' => 'root',
        'dbpass' => 'root',
        'dbname' => 'l2jdb',
        'dbport' => 3306
    ]
];
 
Последнее редактирование:
С какого сервера не приходит оплата, значение сервера 0?
XML:
<option value="0" selected="">Супер сервер</option>

Если отправить запрос с кастомным полем ik_x_server_id и его значением 0, то сервер интеркассы после оплаты пришлет данные на ваш бебхук уже без ik_x_server_id. В итоге вебхук не может найти настройки коннекта к бд с таким айди (-1), что-бы подключится к бд для выдачи предметов, потому и выдает ошибку 400
PHP:
$server_id = isset( $_POST['ik_x_server_id'] ) ? $_POST['ik_x_server_id'] : -1;

if ( !isset( $config[ $server_id ] ) )
{
    header( $_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request', true, 400 );
    die( 'Invalid server id!' );
}
В форме оплаты меняем значение сервера
XML:
                    <label for="server_id">Выберите сервер:</label>
                    <select id="server_id" class="form-control" name="ik_x_server_id">
                        <option value="1" selected>Наш сервер</option>
                    </select>
и настраиваем подключения к бд
PHP:
// Конфиг подключения к игровой бд
$config = [
    [ // serverId 0
        'dbhost' => 'localhost',
        'dbuser' => 'root',
        'dbpass' => 'root',
        'dbname' => 'l2jdb',
        'dbport' => 3306
    ],
    [ // serverId 1
        'dbhost' => 'localhost',
        'dbuser' => 'root',
        'dbpass' => 'root',
        'dbname' => 'l2jdb',
        'dbport' => 3306
    ],
    [ // serverId 2
        'dbhost' => 'localhost',
        'dbuser' => 'root',
        'dbpass' => 'root',
        'dbname' => 'l2jdb',
        'dbport' => 3306
    ]
];
Огромное спасибо!)
 
Назад
Сверху Снизу