Код интеграции с ресурсом PCI Wallet. Я в JavaScript ориентируюсь очень поверхностно и спустя два дня хватания по верхам JS, получился такой 'код'(по рукам только не бейте), так что суть сего вопроса в слабых местах и потенциальных ошибках при работе данного кода. Уважаемые специалисты по JS, дайте совет, где поставить try-catch и т.д., да и за любую критику буду благодарен!) Заранее спасибо!
var request;
var urlAuthenticate = 'https://easypay.simnang.com/api/authenticate';
var urlAuthorization = 'https://easypay.simnang.com/api/users/obo-token';
var requestTypePost = 'POST';
var pass = 'pass';
var username = 'username';
function processingTokinization() {
authenticate();
}
//---------easypay lib----------
var easypayCore = function (event) {
easypay.core.create(e, success, error);
};
//-------authentication----------
function authenticate() {
request = new XMLHttpRequest();
request.open(requestTypePost, urlAuthenticate, true);
request.setRequestHeader('Content-Type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.onreadystatechange = processRequestChangeAuthenticate;
var body = {
'password': pass,
'username': username
};
request.send(JSON.stringify(body));
}
//----------handler response from urlAuthenticate------------
var processRequestChangeAuthenticate = function () {
if (request.readyState != 4) return;
if (request.status === 201 || request.status === 200) {
authorization(JSON.parse(request.responseText))
} else {
alert(request.status + ': ' + request.statusText);
}
};
//-----------authorization----------------
function authorization(tokenSecret) {
request = new XMLHttpRequest();
request.open(requestTypePost, urlAuthorization, true);
request.setRequestHeader('Content-type', 'application/json');
request.setRequestHeader('Accept', 'application/json');
request.setRequestHeader('secret', tokenSecret.secret);
request.setRequestHeader('authorization', tokenSecret.token);
request.onreadystatechange = processRequestChangeAuthorization;
request.send();
}
//-------------handler response from urlAuthorization--------------
var processRequestChangeAuthorization = function () {
if (request.readyState != 4) return;
if (request.status === 200 || request.status === 201) {
easypay.core.set_credentials({'token':
JSON.parse(request.responseText).token});
callEventWithForm();
} else {
alert(request.status + ': ' + request.statusText);
}
};
//-------------callbacks----------
var success = function (response) {
console.log('In success');
console.log(response.token);
// request = new XMLHttpRequest();
// request.open(requestTypePost, '/back-office/api/json/client/token',
true);
// request.setRequestHeader('Content-type', 'application/json');
// request.send(response)
};
var error = function (status, statusText, response) {
console.log('In error');
console.log('Status: ' + status);
console.log('Status Text: ' + statusText);
console.log(response);
};
//--------fill form-------------
function getForm() {
var form = document.createElement('form');
var country = document.createElement('input');
var cardholderName = document.createElement('input');
cardholderName.name = 'cardholder_name';
cardholderName.value = 'ALEX SMITH';
var expirationDate = document.createElement('input');
expirationDate.name = 'expiration_date';
expirationDate.value = '20/2020';
var cardNumber = document.createElement('input');
cardNumber.name = 'card_number';
cardNumber.value = '4040404040404040';
form.appendChild(cardholderName);
form.appendChild(expirationDate);
form.appendChild(cardNumber);
return form;
}
function callEventWithForm() {
var form = getForm();
var event = new CustomEvent('submit', {
detail: {
'credit-card-data': form
}
});
form.addEventListener('submit', easypayCore);
form.dispatchEvent(event);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно загрузить в веб-приложение файл из Google Drive для обработки этого файла при помощи функций HTML5, не покидая страницы веб-приложенияНапример,...
Делаю караоке сайт для любителей народных песенПрошу подсказать как создать караоке плеер как на данном сайте
Всем привет, часа 3 сижу не могу связать реакт приложение с сервером на node (express) В документации пишут прописать proxy в packagejson