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!