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

Форма оплаты Enot + обработчик (webhook, callback) для L2


1627839872541.png ну так то понятно)
 
исходя из кода генерации цифровой подписи
PHP:
$sign = md5( $merchant_id . ':' . $sum . ':' . $secret_key1 . ':' . $payment_id );
рекомендую перепроверить айди магазина и секретный ключ1

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

    KATE

    Баллов: 10
    И выдайте Репутацию этому господину.
исходя из кода генерации цифровой подписи
PHP:
$sign = md5( $merchant_id . ':' . $sum . ':' . $secret_key1 . ':' . $payment_id );
рекомендую перепроверить айди магазина и секретный ключ1

может при указании значения тех переменных был добавлен лишний символ (например пробел) / встречалось такое
все перепроверил, значения верны. понятное дело ошибка говорит об обратном, но где я напортачил пока не понимаю =(
 
все перепроверил, значения верны. понятное дело ошибка говорит об обратном, но где я напортачил пока не понимаю =(
тогда быть может вы как-то "испортили" форму, точнее обязательные поля в ней. Попробуйте код из 37 поста, если все заработает сравните код со своей формой
 
Запрещено публиковать исходный код без BB-кода — CODE
HTML:
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    </head>
    <body>
        <script>
                document.addEventListener( "DOMContentLoaded", function( event )
                {
                    $( "#enotForm" ).submit( function( event )
                    {
                        var char = $( "#char" ).val();
                        var count = $( "#count" ).val();

                        $.ajax(
                        {
                            type: "POST",
                            url: "http://АДРЕСС/enot/sign.php"
                            data: ( { "char" : char, "count" : count } ),
                            async: false,
                            dataType: "json",
                            success: function( response )
                            {
                                $( "#MERCHANT_ID" ).val( response["merchant_id"] );
                                $( "#PAY_SUM" ).val( response["sum"] );
                                $( "#PAY_ID" ).val( response["payment_id"] );
                                $( "#SIGN" ).val( response["sign"] );
                              
                                $( 'input[name^="cf[char]"]' ).val( char );
                            }
                        });
                    });
                });
            </script>
            <form id="enotForm" method="get" action="АДРЕСС ПРОПИСАЛ">
                <input type="hidden" name="m" id="MERCHANT_ID" value="ИД МАГАЗИНА ВВЕЛ">
                <input type="hidden" name="oa" id="PAY_SUM" value="1">
                <input type="hidden" name="o" id="PAY_ID" value="4356">
                <input type="hidden" name="s" id="SIGN" value="КЛЮЧ ПРОПИСАЛ">
                <input type="hidden" name="cf[char]" value="items_delayed">
                <div class="form-group">
                    <label for="char">Введите имя персонажа:</label>
                    <input type="text" class="form-control" id="char" name="char" value="" placeholder="Введите имя персонажа" required />
                </div>
                <div class="form-group">
                    <label for="count">Укажите кол-во монет:</label>
                    <input type="number" class="form-control" id="count" name="count" value="0" required />
                </div>
                <input type="submit" value="Пожертвовать" />
            </form>
    </body>
</html>

тогда быть может вы как-то "испортили" форму, точнее обязательные поля в ней. Попробуйте код из 37 поста, если все заработает сравните код со своей формой
выше моя форма, все делаю как вы пишите)
 
mamcy, не нужно заполнять эти поля в ручную
HTML:
<input type="hidden" name="m" id="MERCHANT_ID" value="ИД МАГАЗИНА ВВЕЛ">
                <input type="hidden" name="oa" id="PAY_SUM" value="1">
                <input type="hidden" name="o" id="PAY_ID" value="4356">
                <input type="hidden" name="s" id="SIGN" value="КЛЮЧ ПРОПИСАЛ">
                <input type="hidden" name="cf[char]" value="items_delayed">
это сделает js код при нажатии на кнопку "Пожертвовать", если все правильно разместили и настроили

только что проверил код который выложил в 37 посте, все работает.
 
mamcy, не нужно заполнять эти поля в ручную
HTML:
<input type="hidden" name="m" id="MERCHANT_ID" value="ИД МАГАЗИНА ВВЕЛ">
                <input type="hidden" name="oa" id="PAY_SUM" value="1">
                <input type="hidden" name="o" id="PAY_ID" value="4356">
                <input type="hidden" name="s" id="SIGN" value="КЛЮЧ ПРОПИСАЛ">
                <input type="hidden" name="cf[char]" value="items_delayed">
это сделает js код при нажатии на кнопку "Пожертвовать", если все правильно разместили и настроили

только что проверил код который выложил в 37 посте, все работает.
Я вас понял эти поля верну на исходную а так все правильно в форме да?
Вот если в ручную не ввожу ид магазина то ошибка становится №45 ошибка нумерации магазина
А если вручную ввести ид магазина ошибка становится №62
 
Птицу надо было продавать этот обработчик за деньги, а то налетели шмаксимбои отовсюду.
 
Все наладили работает, ну свои мозги другим не вставить. Кто-то понимает что делать кто-то не совсем.
 
Приветствую, нужно переписать за деньги данный обработчик для PTS Advext64 для непосредственного добавления предметов в таблицу user_delivery БД MSSQL после оплаты.
 
Nezabudka, файл db.class.php
PHP:
// меняем строчку
$dsn = "mysql:host=$dbhost;port=$dbport;dbname=$dbname;charset=utf8";
// на эту
$dsn = "sqlsrv:Server=$dbhost,$dbport;Database=$dbname";

примерная настройка файла config.php
PHP:
$config = [
    'dbhost' => '8.8.8.8',
    'dbuser' => 'sa',
    'dbpass' => '12345',
    'dbname' => 'lin2db', // или lin2world (не в курсах где у адвекса таблица user_delivery)
    'dbport' => 1433
];

ну и поправить SQL запросы в файле webhook.php под поля user_delivery
 
òbi Залей на gitHub можно было бы всем вместе доработать.
 
Publikator обновил(а) ресурс Форма оплаты Enot + обработчик (webhook, callback) для L2 новой записью:

Проверка персонажа + несколько серверов

  • Добавлена проверка персонажа перед отправкой формы
  • Добавлена возможность настройки для нескольких серверов
Посмотреть вложение 38555
Скрытое содержимое могут видеть только пользователи групп(ы): VIP, Участник

Узнать больше об этом обновлении...
 
Последнее редактирование модератором:
òbi, получается системе будет сообщение вместо платежпринят - персонаж не найдет.
А что дальше делать с этой инфой?)
Проверять бы до сабмита формы на платежку и проведение платежа) Но это уже совсем другая история)
 
òbi, получается системе будет сообщение вместо платежпринят - персонаж не найдет.
А что дальше делать с этой инфой?)
Проверять бы до сабмита формы на платежку и проведение платежа) Но это уже совсем другая история)
как раз таки и добавлена проверка на существования персонажа до сабмита формы.
 
как раз таки и добавлена проверка на существования персонажа до сабмита формы.
Из того что я вижу, в синг файле только
PHP:
$char  = isset( $_POST['char'] )  ? $_POST['char']  : '';
и проверка в вебхуке.
Вебхук же не до сабмита


Смотрел не все файлы, возможно старые.
 
Назад
Сверху Снизу