Хостинговая интеграция Javascript API Worldpay в лайтбокс /iframe не работает

Я пытаюсь интегрировать страницу заказа Worldpay в лайтбокс / iframe на сайте клиента.

Шаг 1. Согласно https://developer.worldpay.com/jsonapi/docs/hosted-payment-pages я делаю HTTP-запрос через PHP/CURL и получаю действительный ответ со значениями orderCode, RedirectURL и т. Д. "Значением URL в ответе атрибута redirectUrl является URL страницы размещенного платежа. Именно здесь вам нужно перенаправить покупателя". URL-адрес имеет формат https://online.worldpay.com/simulators/hpp?orderCode=xxx&merchantId=xxx&country=GB&language=en Открытие этого URL-адреса в браузере дает ожидаемую страницу оплаты Worldpay.

Шаг 2. Согласно https://developer.worldpay.com/jsonapi/docs/hosted-advanced-usage который гласит: "После того, как вы получили URL перенаправления, следуя примеру на странице размещенных платежей, используйте его, чтобы заполнить поле URL в конфигурации iframe JavaScript обрисован в общих чертах ниже. " Я настроил страницу интеграции точно в соответствии с https://payments.worldpay.com/resources/hpp/integrations/embedded/doc/ используя значение redirectURL в объекте javascript, и не могу отобразить лайтбокс / iframe. Я попробовал оба метода: lightbox и iframe в клиентском домене, а также настроил тестовую страницу в другом домене, используя пример кода, точно так же, как это предусмотрено Worldpay, но это тоже не сработало.

Возможная проблема: глядя на библиотеку javascript WP, кажется, что URL переписывается на: https://online.worldpay.com/simulators/hpp-iframe/?orderCode=xxx&merchantId=xxx&country=GB&language=en, независимо от того, включен ли лайтбокс или тип iframe выбран:

    // Use iframe app instead
    url = url.replace("/hpp/", "/hpp-iframe/");

Это не является действительным URL, если его открыть, он сразу же перенаправляет на домашнюю страницу worldpay. Принудительное сохранение исходного URL-адреса приводит к открытию лайтбокса / iframe, однако он не изменяется в соответствии с удаленным содержимым.

Еще одно осложнение: примеры URL, приведенные в документах WP: " https://payments.worldpay.com/ngpp/integration/wpg/corporate?OrderKey=YOUR_ORDER_KEY&Ticket=YOUR_TICKET_ID'и" https: //payments-test.worldpay ". com / app / hpp /gration / wpg / corporate? OrderKey = xxx & Ticket = xxx', которые отличаются от фактически возвращенного - также нигде нет объяснения'TICKET_ID'.

Кому-нибудь удалось получить работающую, изменяющую размер интеграцию лайтбокса / iframe Worldpay с помощью этого метода? Я боролся с этим в течение нескольких дней (документация Worldpay безумно плоха)

1 ответ

Прочитано это через 4 года после запроса OP, но может быть полезно последующим читателям.... Мы прошли через это недавно (2022 г.), и ответ заключается в том, что URL-адрес страницы размещенных платежей WP, который возвращается из заказа WP API-запрос нельзя использовать «как есть» (т.е. напрямую), его необходимо сначала запустить через функцию библиотеки WP Javascript SDK, чтобы превратить его в URL-адрес, который затем может использоваться вашим лайтбоксом/iframe.

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