VKWebAppOpenPayForm

VKWebAppOpenPayForm показывает экран VK Pay для совершения платежа.

Примечание. Если пользователь ещё не завёл аккаунт VK Pay, при первом вызове ему будет предложено ввести данные для регистрации.

Пример

JavaScriptbridge.send('VKWebAppOpenPayForm', { app_id: 6909581, action: 'pay-to-user', params: { user_id: 743784474 }}) .then((data) => { if (data.status) { // Экран VK Pay показан } }) .catch((error) => { // Ошибка console.log(error); });

Платформы

Android, iOS, Mobile Web, Web

Параметры

ПолеТипОписание
app_id обязательноеintegerИдентификатор мини-приложения.
action обязательноеstringТип перевода внутри VK Pay. Возможные значения:    • pay-to-service — перевод денежных средств сервису. Доступно только организациям, подключённым через форму для юридических лиц. Прочтите также документацию, описывающую расширенный набор параметров.    • pay-to-user — перевод фиксированных денежных средств пользователю.    • pay-to-group — перевод фиксированных денежных средств сообществу. Денежные средства будут переведены на баланс получателя, указанного в управлении сообществом.    • transfer-to-group — перевод произвольных денежных средств сообществу.    • transfer-to-user — перевод произвольных денежных средств пользователю.
params обязательноеobjectПараметры платёжной формы VK Pay. Формат и параметры зависят от типа перевода.

Результат

Проверить результат можно:

  • Используя объект Promise, который возвращается вызовом bridge.send(...).

  • С помощью событий VKWebAppOpenPayFormResult и VKWebAppOpenPayFormFailed.

Подробнее о проверке результатов при вызовах VK Bridge.

Возможные ошибки:

  • This action cannot be performed in the background, если мини-приложение или игра запущены в фоновом режиме.

Объект Promise

Если обращение к платформе прошло успешно, управление будет передано в then-обработчик объекта Promise. В качестве ответа платформа возвращает объект со следующими полями:

ПолеТипОписание
statusbooleanИнформация о том, успешно ли выполнен платёж. Возможные значения:    • true — платёж выполнен успешно.    • false — произошла ошибка.
transaction_idstringИдентификатор транзакции в платёжной системе. Поле возвращается, если поле status имеет значение true.
amountstringСумма платежа.
extrastringДополнительные данные о продавце.

Если при обращении к платформе произошла ошибка, управление передаётся в метод catch. В качестве ответа платформа возвращает объект с информацией об ошибке, общий для всех событий VK Bridge.

События

VKWebAppOpenPayFormResult

Сигнализирует, что экран VK Pay показан. В обработчик события на стороне пользователя передаются следующие данные:

JavaScript{ detail: { type: "VKWebAppOpenPayFormResult", data: { status: true, transaction_id: "1234ABCD-EEEE-5678-90FG-ABCDEF123456", amount: "120.5", extra: "{\"currency\":\"RUB\",\"merchant_data\":\"some_merchant_data\",\"merchant_sign\":\"some_sign\",\"order_id\":\"some_order_id\",\"ts\":1641999488}\"" } } }

Передаваемый объект подобен объекту, возвращаемому при успешном выполнении промиса.

VKWebAppOpenPayFormFailed

Информирует об ошибке, которая произошла при взаимодействии с платформой.

В обработчик события на стороне пользователя передаётся объект с информацией об ошибке, общий для всех методов VK Bridge.

Пример обработки событий

Смотрите раздел Обработка событий-результатов.

Песочница

VKWebAppOpenPayForm