Юкасса (yookassa) – самостоятельная интеграция на WordPress сайт

16 мая 2023

Задача – получить платеж. Например, пожертвование на благоустройство храма.
В минимальном варианте исходящая платежная форма – просто поле “Сумма” и кнопка “Оплатить”.
Интернет магазина нет, соответственно WooCommerce не нужен.

Для начала нужно зарегистрироваться в ЮKassa – https://yookassa.ru/joinups
Если уже зарегистрированы, входим в личный кабинет – https://yookassa.ru/my/payments (понадобится Сбер Id)

В ЛК выбираем тестовый магазин – понадобится shopId – 316ХХХ

И в меню Интеграция->Ключи API->Секретный ключ test_crVRccOteeDUP8TyuХХХХХХХХХХVQwzUn0QbovI_m_c

В документации Юкасса описание самостоятельной интеграции выглядит так:

Шаг 1. Когда пользователь перейдет к оплате, отобразите ему вашу платежную форму. Дождитесь, когда пользователь выберет в вашем интерфейсе способ оплаты, при необходимости введет свои платежные данные (например, логин в интернет-банке) и подтвердит готовность продолжить оплатить (например, нажмет кнопку Заплатить).

В обычном случае платежная форма – это немножко html

<form  method='post' action='yookassa.php'>
  <label for="vh-pf-sum">Сумма, руб</label>
  <input type="text" id="vh-pf-sum" name="vh-pf-sum" value=100>
  <input type="submit" id="vh-pf-submit" value="Оплатить">
</form>

В WordPress так просто не получится

Для того чтобы отправить данные из формы со страницы WordPress нужно в свою очередь сделать несколько шагов

Переписываем форму таким образом

  <form method='post' action='<?php echo esc_url( admin_url('admin-post.php') ); ?>'>
      <input type="hidden" name="action" value="yookassa">
      <label for="vh-pf-sum">Сумма, руб</label>
      <input type="text" id="vh-pf-sum" name="vh-pf-sum" value=100>
      <input type="submit" id="vh-pf-submit" value="Оплатить">
  </form>

И еще много чего нужно делать. Пришлось написать отдельную статью – WordPress – получаем данные из формы

Шаг 2. Создайте платеж , передайте в запросе объект payment_method_data с выбранным способом оплаты и платежными данными и при необходимости объект confirmation с информацией о сценарии подтверждения. В запросе можно передать дополнительные параметры, кроме payment_token, payment_method_id.

Данные из платежной формы попадают в обработчик handler_yookassa()

function handler_yookassa() {
  // Получаем данные из формы в виде массива $_POST
  $agrs = $_POST;
  if($agrs) {
    // Что-то делаем с данными
    // Например, запишем в лог файл
    foreach( $agrs as $key => $item ) {
       error_log( '"' . $key . '" => ' . $item );
      }
  }
}

Шаг 3. Реализуйте нужный сценарий подтверждения, например перенаправьте пользователя на confirmation_url, который придет в объекте платежа .

Шаг 4. Дождитесь успешного завершения платежа: подождите, когда придет уведомление от ЮKassa, или периодически отправляйте запросы, чтобы получить информацию о платеже

Шаг 5. Сообщите пользователю результат оплаты.

Шаг 6. Если вы проводите платеж в две стадии, подтвердите списание оплаты или отмените платеж. И сообщите пользователю финальный результат платежа.

Готово!

Описание самостоятельной интеграции в документации Юкасса –
https://yookassa.ru/developers/payment-acceptance/integration-scenarios/manual-integration/basics

Если нет времени и желания разбираться самостоятельно – обращайтесь

Наверх