@vlog

Почему не работает кнопка VKPay в боте?

Суть самой проблемы в том, что не удается отправить деньги группе через кнопку типа vkpay. Если просто через вложения отправлю, то всё получится.
Через кнопку на компьютере открывается окно оплаты, запрашивается пин-код и далее выводится сообщение "Невозможно совершить операцию. Попробуйте позже." При нажатии на кнопку с моб устройств происходит бесконечная загрузка.

В запросе массив с кнопками выглядит так:
array('keyboard' => json_encode(array(
            'one_time' => true,
            'buttons' => [array (
                [
                    'action' => array(
                        'type' => 'vkpay',
                        'hash' => "action=pay-to-group&amount{$summ}&description=Тема&group_id=2097****9&aid=2097****9",
                    ),
                ]
            ),
                array(
                    [
                        'action' => array(
                            'type' => 'callback',
                            'label' => ' Позвать оператора',
                            'payload' => "{\"button\": \"confirm\"}",
                        ),
                        'color' => 'secondary',

                    ]
                ),
                array(
                    [
                        'action' => array(
                            'type' => 'callback',
                            'label' => ' Списать '.$bonus.' бонусов',
                            'payload' => "{\"button\": \"bonus\", \"ord\": \"".$id."\"}",
                        ),
                        'color' => 'positive',

                    ]
                ),
            ],
        ), JSON_UNESCAPED_UNICODE))


Что удалось выяснить:
  1. Если я вставлю hash непосредственно в браузер в форме https://vk.com/vkpay#{hash}, то он выведет меня на форму оплаты, которая будет работать
  2. В форме оплаты, которая открывается по нажатию кнопки, комментарий выглядит так: ?4??4??4??6?. Возможно в кодировке как раз причина того, почему не работает форма. Но как исправить это, не знаю... При других запросах не было таких проблем.
  3. Так выглядит запрос при открытом через кнопку окне оплаты:
    https://vk.com/im?sel=-2097****9&w=app6217559_-0%2523action%253Dpay-to-group%2526amount%253D12%2526description%253D%25253F4%25253F%25253F4%25253F%25253F4%25253F%25253F6%25253F%2526group_id%253D2097****9%2526aid%253D2097****9



Отправляю через PHP SDK ВКонтакте.

Ссылки на документацию API:
Клавиатура
Параметры hash

Прошу помощи. Не могу понять, на каком этапе что-то идёт не так... Вероятно проблема не на стороне VKPay, но и в самом массиве с кнопками всё в порядке, раз открывается при непосредственной вставке через браузер.
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
@vlog Автор вопроса
Кнопка не работала из-за ошибки на стороне VK. Написал в поддержку, через некоторое время поправили.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы