Worldpay лайтбокс Интеграция

Я пытаюсь сделать лайтбокс Worldpay интеграции, как описано здесь

<script type="text/javascript">
    var customOptions = {
        iframeIntegrationId: 'libraryObject',
        iframeHelperURL: 'https://example.com/helper.html',
        iframeBaseURL: 'https://example.com',
        url: 'https://payments.worldpay.com/ngpp/integration/wpg/corporate?OrderKey=YOUR_ORDER_KEY&Ticket=YOUR_TICKET_ID',
        type: 'iframe',
        target: 'custom-html',
        accessibility: true,
        debug: false,
        language: 'en',
        country: 'gb',
        preferredPaymentMethod: 'VISA-SSL',
        successURL: 'https://example.com/success',
        cancelURL: 'https://example.com/cancel',
        failureURL: 'https://example.com/failure',
        pendingURL: 'https://example.com/pending',
        errorURL: 'https://example.com/error'
    };
    //initialise the library and pass options
    var libraryObject = new WPCL.Library();
    libraryObject.setup(customOptions);
</script>   

При использовании этого сценария URL-адрес показывает ошибку 404. Любая помощь будет очень признательна.

1 ответ

Я только что столкнулся с этой проблемой, основываясь на том же коде, предоставленном Worldpay. Проблема возникает просто потому, что экземпляр libraryObject создается перед загрузкой DOM - JavaScript Worldpay пытается внедрить свой iFrame в целевой "custom-html", который не существует. Все, что вам нужно сделать, это переместить экземпляр объекта в готовую функцию, чтобы убедиться, что DOM загружен до того, как вы попытаетесь получить к нему доступ, например:

    $(document).ready(function () {
        // initialise the library and pass options
        var libraryObject = new WPCL.Library();
        libraryObject.setup(customOptions);
    });

Это может помочь, если вы измените параметр отладки на true - обратите внимание, что отладка записывается в выходные данные консоли браузера, а не в Visual Studio!

Другие вопросы по тегам