Простой способ принимать платежи через ЮKassa в Flutter-приложении на WordPress

Простой способ принимать платежи через ЮKassa в Flutter-приложении на WordPress

Столкнулся с задачей: нужно было добавить оплату в мобильное приложение на Flutter. У нас уже был сайт на WordPress с WooCommerce и плагином ЮKassa.

Логично было использовать то же решение. Но оказалось, что стандартный плагин ЮKassa для WooCommerce работает только через браузер или WebView. То есть пользователя из приложения перекидывает на веб-страницу оплаты. Мне же хотелось, чтобы ввод карты происходил прямо в приложении — это быстрее и привычнее для людей.

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

И тут возникает проблема: секретный ключ нельзя хранить в приложении. Любой, кто достанет APK-файл, сможет его увидеть.

Значит, нужна промежуточная прослойка, которая будет:

  • принимать токен от приложения,
  • подставлять секретный ключ,
  • вызывать API ЮKassa.

Поскольку сайт у меня и так уже на WordPress, я написал небольшой PHP-скрипт, который работает как мост между Flutter-приложением и ЮKassa.

Он добавляет в WordPress один REST-эндпоинт. Приложение отправляет туда токен, ID заказа и ID магазина, а скрипт уже сам создаёт платёж через API ЮKassa, используя секретный ключ из настроек плагина WooCommerce.

В итоге:

  • ключ остаётся на сервере,
  • приложение работает нативно,
  • платежи проходят,
  • заказы в WooCommerce обновляются автоматически.

Скрипт я выложил на Gitverse вместе с инструкцией по установке. Всё работает на стандартном WordPress и WooCommerce, ничего дополнительно ставить не нужно.

Посмотреть и забрать можно здесь:https://gitverse.ru/danlarin/yookassa-wordpress-bridge

Если у вас похожая задача — надеюсь, пригодится.

Начать дискуссию