Создать кассу NBG - PullRequest
1 голос
/ 29 мая 2020

Я хотел бы сделать запрос аутентификации Basi c HTTP через javascript, но я не знаю, как это сделать. У меня есть код javascript, и внутри него есть параметр сеанса. Таким образом, мне нужно сначала сделать этот вызов, получить session_id из этого вызова в качестве ответа и продолжить свой код javascript. Это c этого базового c http auth: https://ibanke-commerce.nbg.gr/api/documentation/apiDocumentation/rest-json/version/latest/operation/Session%3a%20Create%20Checkout%20Session.html?locale=en_US

Это касается варианта оплаты между банком и электронной коммерцией.

Как это будет быть записанным в javascript? Моя структура кода сейчас выглядит так:

<script
//need call auth somewhere here I guess

Payment.Config({
... ... ..
Url: "...",
Name: "...",
session: "here I need the response of the call"
...
...
});
</script>

Любая помощь / рекомендации приветствуются

1 Ответ

1 голос
/ 29 мая 2020

Вам понадобятся три вещи:

1. Создайте свой заголовок Basi c для аутентификации

Заголовок Basi c - это строка в кодировке Base64, состоящая из вашего пользователя и пароля. Чтобы получить это, вы должны закодировать свои учетные данные, как показано ниже.

user_id:password

В вашем случае user_id - это merchantId

Вы можете использовать онлайн-сервисы, такие как this для кодирования строк ваших учетных данных

Или

Вы можете закодировать его в своем javascript коде следующим образом

var clientId = "user_id";
var clientSecret = "password";

// var authorizationBasic = $.base64.btoa(clientId + ':' + clientSecret); // jQuery
var authorizationBasic = window.btoa(clientId + ':' + clientSecret); // Javascript

Я бы порекомендовал первый вариант.

2. Сделайте свой почтовый запрос с помощью Basi c Header

Вы можете следовать этому ответу, чтобы узнать, как сделать запрос HTTP POST аутентификации basi c, используя Javascript

3. Используйте ответ на запрос аутентификации в своем коде

Таким образом, ваш окончательный код будет примерно таким

var url = 'your_url_server';
var authorizationBasic = 'the_created_basic_header';

var request = new XMLHttpRequest();
request.open('POST', url, true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
request.setRequestHeader('Authorization', 'Basic ' + authorizationBasic);
request.setRequestHeader('Accept', 'application/json'); // Modify according to the response format
request.send("parameter1=parameter1_value&parameter2=parameter2_value"); // Any parameter you might need

request.onreadystatechange = function () {
    if (request.readyState === 4) {
       alert(request.responseText);
       Payment.Config({
          ... ... ..
          Url: "...",
          Name: "...",
          session: request.responseText // Here is the response of the call
          ...
          ...
       });
    }
};
...