Я создал сценарий для связанного вызова API к двум различным конечным точкам в php.
Вызов 1 к конечной точке а) отправляет 3 статических параметра тела (ключ API, идентификатор пользователя, пароль и т. д.) в API и 1 динамическое значение (IP-адрес пользователя). В ответ API POST отправляет строку orderREF и URL-адрес QR-кода, который должен отображаться на экране. В дополнение к этому QR-код должен обновляться каждые 5 секунд.
Как только пользователь успешно сканирует QR-код, вызов 2 на конечную точку b) возвращает имя клиента, номер социального страхования и некоторые другие ценности, которые не так важны. Для пользователя процесс аутентификации завершен, и я хочу перенести полученные данные в свою базу данных клиентов.
Как вы увидите в моем скрипте, я создал рабочий прототип этого в автономном режиме. скрипт, но мне нужна помощь, чтобы перенести его в рабочий Wordpress (плагин или шорткод), чтобы я мог использовать эту функцию в определенных частях нашей страницы. Я хотел бы отправить пользователя пройти этот процесс перед регистрацией на нашем веб-сайте, чтобы полностью подтвердить личность пользователя.
Код, который я успешно создал для выполнения 2 цепочки вызовов API и обновление QR-кода с помощью JavaScript. Для простоты я жестко запрограммировал учетные данные для тестирования, они будут храниться в файле .env
Код: Выделить всё
[img]">
Код: Выделить всё
document.addEventListener('DOMContentLoaded', function() {
var qrImage = document.getElementById('qrImage');
var orderRef = document.getElementById('orderRef').value;
var updateArea = document.getElementById('updateArea');
function checkStatus(orderRef) {
fetch(bankidAjax.ajaxurl, {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: 'action=byggauktion_check_status&orderRef=' + encodeURIComponent(orderRef)
})
.then(response => response.json())
.then(data => {
// Dynamically update content
if (data.status === 'complete') {
updateArea.innerHTML = '
Verification completed successfully for user ' + data.user.name + '
';
} else {
updateArea.innerHTML = '
Status: ' + data.status + '
';
}
if (data.newQrImage) {
qrImage.src = data.newQrImage + '?refresh=' + new Date().getTime();
}
})
.catch(error => {
console.error('Error:', error);
updateArea.innerHTML = '
Error checking status. Please try again.
';
});
}
setInterval(() => checkStatus(orderRef), 5000);
});
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/783 ... from-a-sta