Я делал интеграцию с экварингом Сбербанка. При создании ордера их API возвращает ссылку на страницу оплаты.
Когда пользователь ввел сумму и нажал кнопку «Оплатить», мне нужно пользователя перевести по ссылке сбера на страницу оплаты.
Сначала я использовал в скрипте window.open и пользователь вынужден был реагировать на этот не совсем понятный и даже пугающий запрос.

Хром открывает вкладку без предупреждения блокировки всплывающих окон, если команда для открытия вкладки, всплывающего окна происходит из доверенного события.
В моем случае пользователь выполняет щелчок, поэтому у меня есть доверенное событие. Однако я теряю этот доверенный контекст, выполнив запрос Ajax.
Можно обойти это — выполнив синхронный запрос Ajax, который заблокирует ваш браузер во время его запуска, но сохранит контекст события.
Либо открыть новую вкладку с прелоадером до выполнения Ajax запроса, а потом в success сделать редирект.
$("body").on("click", "#AddFundSubmit", function (e) {
e.preventDefault();
if ($(this).text() != 'Пополнить') {
return false;
}
if (!MinimalAddFund()) return false;
//Соберем массив параметров для оплаты
var payParams = {
'[0].Key': 'name',
'[0].Value': $('input[name="name"]').val(),
'[1].Key': 'cost',
'[1].Value': $('input[name="cost"]').val(),
'[2].Key': 'phone_number',
'[2].Value': $('input[name="phone_number"]').val(),
};
//Перед отправкой запроса откроем новый таб и выставим прелоадер
newWindow = window.open('about:blank', 'tempWindow');
$(newWindow.document).find('body').append('<div class="loading">Загрузка страницы оплаты...</div>');
$.ajax({
url: "/Payment/Pay/",
method: "POST",
data: payParams,
beforeSend: function () {
$('#AddFundSubmit').text("Подождите...");
},
success: function (response) {
$('#AddFundSubmit').text("Пополнить");
$(newWindow.document).find('.loading').remove(); //скрываем прелоадер
newWindow.location.replace(response); //делаем редирект на страницу оплаты
},
error: function () {
newWindow.close(); // В случае ошибки при получении урла закроем этот таб
$('#AddFundSubmit').text("Пополнить");
}
});
return false;
});