我想通过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>
任何帮助指南将被感激
你需要三样东西。
1. 创建你的基本头为您的身份验证
基本头是一个Base64编码的用户和密码字符串。为了得到这个信息,你应该对你的证书进行编码,如下图所示。
user_id:password
在您的情况下 user_id
是 merchantId
您可以使用在线服务,如 这个 对你的凭证字符串进行编码
或
你可以在你的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¶meter2=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
...
...
});
}
};