Конвертация PHP в JS

141
02 августа 2021, 23:00

Можно ли ,и как, данный PHP-скрипт полностью конвертировать в JS?

<?php
    $widget_id = 264589; // Идентификатор виджета, требуется для обращения к Widget API
    $secret_key = "B0a9gEMHMhNuAfA1iTTgLhGlubLBDD35"; // Секретный ключ виджета
    $public_key = "D55KyGh-NYud5V6bENifXPseR7Giyzd3"; // Публичный ключ виджета
    if($_POST["sbm"]) {
        if($_POST["ucaller-response"]) { // После успешной верификации номера телефона в виджете, мы автоматически добавляем поле в вашу форму с именем `ucaller-response`
            // Описание взаимодействия с Widget API описано в пункте 5.1
            // Здесь мы проверяем, действительно ли пользователь прошел верификацию номера телефона
            $response = file_get_contents("https://api.ucaller.ru/v1.0/verifyResponse?service_id=".$widget_id."&key=".$secret_key."&response=".$_POST["ucaller-response"]);
            $response = json_decode($response, true);
            if($response["status"]) {
                // Все верно! Этот пользователь проходил верификацию номера
                $phone_number = $response["phone"]; // Может получить номер телефона пользователя
                $phone_id = $response["phone"]; // Может получить идентификатор номера телефона
                // Регистрируем пользователя!
                echo "Вы успешно зарегистрированы!";
            }
            else echo "Нет, вы передали неверные значения, попробуйте повторить попытку верификации номера в виджете";
        }
        else echo "Вам необходимо пройти проверку номера телефона";
    }
?>
Answer 1

POST параметры не получится переделать на js поэтому данную функцию кидаете между тегами script на странице, и подставляете значения в переменные (код ниже). Плюс Вы должны понимать что все секретные ключи и т.д. будут видны пользователям. Не знаю зачем Вам это надо но вот код:

//<script ...> 
function getData() { 
  var widget_id = 264589; // Идентификатор виджета, требуется для обращения к Widget API 
  var secret_key = "B0a9gEMHMhNuAfA1iTTgLhGlubLBDD35"; // Секретный ключ виджета 
  var public_key = "D55KyGh-NYud5V6bENifXPseR7Giyzd3"; // Публичный ключ виджета 
  var sbm = <?php echo $_POST["sbm"] ?>; 
  var ucallerResponse = <?php echo $_POST["ucaller-response"] ?>; 
  var path = `https://api.ucaller.ru/v1.0/verifyResponse?service_id=${widget_id}&key=${secret_key}&response=${ucallerResponse}`; 
  if (!sbm) { 
    console.log('sbm not valid'); 
    return; 
  } 
 
  if (!ucallerResponse) { 
    console.log('Вам необходимо пройти проверку номера телефона'); 
    return; 
  } 
  fetch(path, {method: 'get'}) 
    .then(function(response) { 
      return response.json(); 
    }) 
    .then(function(data) { 
      if (data.status) { 
        var phone_number = data.phone; 
        var phone_id = data.phone; 
 
        console.log('Вы успешно зарегистрированы'); 
      } 
      else { 
        console.log('Нет, вы передали неверные значения, попробуйте повторить попытку верификации номера в виджете'); 
      } 
 
      return; 
    }); 
 
} 
 
getData(); 
//</script>

READ ALSO
yii2, relations, как получить count()

yii2, relations, как получить count()

я пытаюсь получить количество видео из таблицы videos(),

185
Как активировать в Wordpress у плагина polylang Custom post types and Taxonomies

Как активировать в Wordpress у плагина polylang Custom post types and Taxonomies

Не могу активировать Custom post types and Taxonomies в polylang

180
переменные окружения для docker-compose+symfony4+mysql

переменные окружения для docker-compose+symfony4+mysql

Не могу понять, как убрать дублирование данных о подключении к базе вenv файле symfony4 проекта

126
Alarm Service не работает на версиях андроид выше 7.1.2

Alarm Service не работает на версиях андроид выше 7.1.2

я пытаюсь сделать так чтобы после закрытия приложения свайпом из списка приложений, появлялись уведомления в заданное времяЯ подправил...

219