JSFiddle - React, Tailwind, and code Playground

by mysurfing

HTML

<?php
 
/**
* ДАННЫЕ ДЛЯ ПОДКЛЮЧЕНИЯ К ПЛАТЕЖНОМУ ШЛЮЗУ
*
* USERNAME        Логин магазина, полученный при подключении.
* PASSWORD        Пароль магазина, полученный при подключении.
* GATEWAY_URL    Адрес платежного шлюза.
* RETURN_URL    Адрес, на который надо перенаправить пользователя
*                в случае успешной оплаты.
*/
define('USERNAME', 'test');
define('PASSWORD', 'testPwd');
define('GATEWAY_URL', 'https://3dsec.sberbank.ru/payment/rest/');
define('RETURN_URL', 'http://localhost/rest.php');
 
/**
* ФУНКЦИЯ ДЛЯ ВЗАИМОДЕЙСТВИЯ С ПЛАТЕЖНЫМ ШЛЮЗОМ
*
* Для отправки POST запросов на платежный шлюз используется
* стандартная библиотека cURL.
*
* ПАРАМЕТРЫ
*        method        Метод из API.
*         data        Массив данных.
*
* ОТВЕТ
*        response    Ответ.
*/
function gateway($method, $data) {
    $curl = curl_init(); // Инициализируем запрос
    curl_setopt_array($curl, array(
        CURLOPT_URL => GATEWAY_URL.$method, // Полный адрес метода
        CURLOPT_RETURNTRANSFER => true, // Возвращать ответ
        CURLOPT_POST => true, // Метод POST
        CURLOPT_POSTFIELDS => http_build_query($data) // Данные в запросе
    ));
    $response = curl_exec($curl); // Выполненяем запрос
 
    $response = json_decode($response, true); // Декодируем из JSON в массив
    curl_close($curl); // Закрываем соединение
    return $response; // Возвращаем ответ
}
 
/**
* ВЫВОД ФОРМЫ НА ЭКРАН
*/
if ($_SERVER['REQUEST_METHOD'] == 'GET' && !isset($_GET['orderId'])) {
    echo '
        <form method="post" action="/rest.php">
            <label>Order number</label><br />
            <input type="text" name="orderNumber" /><br />
            <label>Amount</label><br />
            <input type="text" name="amount" /><br />
            <button type="submit">Submit</button>
        </form>
    ';
}
 
/**
* ОБРАБОТКА ДАННЫХ ИЗ ФОРМЫ
*/
else if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $data = array(
        'userName' => USERNAME,
        'password' => PASSWORD,
    ...