创建结账环节NBG

问题描述 投票:0回答:1

我想通过javascript做一个Basic HTTP认证调用请求,但我不知道怎么做。我有一个javascript代码,里面有一个session参数,因此,我需要先做这个调用,从这个调用中得到session_id作为响应,然后继续我的javascript代码。因此,我需要先进行这个调用,从这个调用中获取session_id作为响应,然后继续我的javascript代码。这就是这个基本http auth的文档。https:/ibanke-commerce.nbg.grapidocumentationapiDocumentationrest-jsonversionlatestoperationSession%3a%20Create%20Checkout%20Session.html?locale=en_US。

这是关于银行和电商之间的支付选择。

我的代码结构目前是这样的。

<script
//need call auth somewhere here I guess

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

任何帮助指南将被感激

javascript payment-gateway basic-authentication cs-cart
1个回答
1
投票

你需要三样东西。

1. 创建你的基本头为您的身份验证

基本头是一个Base64编码的用户和密码字符串。为了得到这个信息,你应该对你的证书进行编码,如下图所示。

user_id:password

在您的情况下 user_idmerchantId

您可以使用在线服务,如 这个 对你的凭证字符串进行编码

你可以在你的javascript代码中像这样对它进行编码

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

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

我推荐第一种方案。

2. 用基本头来请求你的帖子

你可以按照这个回答如何 使用Javascript进行HTTP POST认证的基本请求。

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
          ...
          ...
       });
    }
};
© www.soinside.com 2019 - 2024. All rights reserved.