Skip to content

VKWebAppShowOrderBox Unknown error в мобильной версии #613

@freevmaya

Description

@freevmaya

Появилась проблема, которую я не могу решить.
При вызове формы оплаты: VKWebAppShowOrderBox вызывает catch промиса, в мобильной версии (m.vk.com), после попытки провести тестовый платеж. Возвращаемый объект:

{
    "error_type": "client_error",
    "error_data": {
        "error_code": 1,
        "error_reason": "Unknown error"
    }
}

Пользователю демонстрируется диалог - "Произошла ошибка". При этом обмен с платежным шлюзом проходит и платеж передается успешно.

Bridge загружается по ссылке - https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js

Полный код тестовой страницы:

<!DOCTYPE html>
<!-- Файл: test-pay.html -->
<html>
    <head>
        <title>Test VK Bridge</title>
        <script src="https://unpkg.com/@vkontakte/vk-bridge/dist/browser.min.js"></script>
        <style type="text/css">
            body {
                color: wheat;
                background: #252525;
            }
        </style>
    </head>
    <body>
        <h1>VK Bridge Pay Test</h1>
        <div id="status" class="info">Testing VK Bridge...</div>
        <button onclick="Payment()">Pay</button>
        
        <script type="text/javascript">

            function Payment() {
                vkBridge.send('VKWebAppShowOrderBox', {
                        type: 'item',
                        item: 'one'
                    })
                    .then((data) => {
                        console.log(data);
                    })
                    .catch((error) => {
                        console.error('Payment error:', error);
                    });
            }

            // Тест 1: Проверка загрузки VK Bridge
            if (typeof vkBridge === 'undefined') {
                status.innerHTML = '<span class="error">VK Bridge NOT loaded</span>';            
            } else {

                const status = document.getElementById('status');        
                status.innerHTML = '<span class="success">VK Bridge loaded</span>';

                // Тест 2: Инициализация
                vkBridge.send('VKWebAppInit', {})
                    .then((result)=>{
                        console.log(result);
                        status.innerHTML += '<br><span class="success">VKWebAppInit success</span>'; 
                    })
                    .catch((error)=>{
                        console.error(error);
                        status.innerHTML += `<br><span class="error">Error: ${error.message}</span>`;
                    });
            }

        </script>
    </body>
</html>

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions