创建结帐会话 NBG

Create checkout session NBG

我想通过 javascript 发出基本 HTTP 身份验证调用请求,但我不知道该怎么做。我有一个 javascript 代码,其中有一个会话范围。因此,我需要先进行此调用,从该调用中获取 session_id 作为响应,然后继续我的 javascript 代码。这是此基本 http 身份验证的文档: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>

任何 help/guidelines 将不胜感激

你需要三样东西:

1.为您的身份验证创建 Basic Header

Basic Header 是您的用户的 Base64 编码字符串,并且 密码。为此,您应该如下所示对您的凭据进行编码。

user_id:password

在你的情况下 user_idmerchantId

您可以使用 this 等在线服务对您的凭据字符串进行编码

您可以像这样在 javascript 代码中对其进行编码

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

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

我会推荐第一个选项。

2。使用基本 Header

提出您的 post 请求

您可以按照此答案了解如何 make an HTTP POST authentication basic request using 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
          ...
          ...
       });
    }
};