Перехватить действие формы, вызвать функцию перед перенаправлением - PullRequest
0 голосов
/ 27 мая 2020

Я интегрировал платежную службу со своим веб-сайтом и могу выполнять и обрабатывать транзакцию, однако я не могу обработать вызов функции, которая проверяет статус платежа.

Руководство по интеграции допускает только действие формы, указывающее на действительный URL-адрес, на который будет перенаправлен пользователь. Я кодирую javascript и предпочитаю не перенаправляться, а обновляю страницу соответствующим образом.

Приведенный ниже код - это предоставленный код:

var paymentForm = document.createElement('form');
paymentForm.setAttribute("id", "pForm");
paymentForm.setAttribute("action", "https://SHOPPERREDIRECT/");
paymentForm.setAttribute("class", "paymentWidgets");
paymentForm.setAttribute("data-brands", "VISA MASTER");

Я бы хотел добавить слушателя или что-то подобное, которое будет запускаться либо до перенаправления и перехвата нового URL-адреса с идентификатором, либо я хотел бы полностью предотвратить перенаправление и сделать что-то вроде этого:

paymentForm.setAttribute("id", "pForm");
paymentForm.setAttribute("action", "https://SHOPPERREDIRECT/");
paymentForm.setAttribute("class", "paymentWidgets");
paymentForm.setAttribute("data-brands", "VISA MASTER");
paymentForm.onunload = function() {
e.preventDefault();
alert("Hey")
}

Если я измените действие, я получаю сообщение об ошибке: URL недействителен и платеж отменен.

Форма вызывается этой функцией:

    var url = "xxx/paymentWidgets.js?checkoutId="+id
    let script = document.createElement("script");
    script.setAttribute('src', url);
    script.setAttribute('type', 'text/javascript');
    script.onload = function() {
        var wpwlOptions = {
          style:"plain"
        }
    }
    document.body.appendChild(script);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...