code – the merchant code,publicKey – the public access key that must be used in the x-public-key header,secretKey – the private access key that must be used to generate x-token for each request.To start using the Authorization service, you need to integrate valid headers that will be used for authentication and authorization.
x-public-keyx-token;Brand header.x-buyer-ipx-token;null or an empty string; must be a valid IPv4/IPv6 address;x-client-ip header and other standard headers related to the buyer’s IP address.x-datex-token;Y-m-dTH:i:s (for example, 2024-01-27T23:59:59).x-tokenx-token generationUsing the hmac(sha256) hashing algorithm, build a hash from the string secretKey + x-public-key + x-buyer-ip + x-date, using secretKey as the key.
var moment = require('moment');
var CryptoJS = require('crypto-js');
pm.environment.set('x-date', moment().format(("Y-m-dTH:mm:s")));
var xDateHeader = pm.environment.get('x-date'),
xPublicKeyHeader = publicKey
?? pm.environment.get('x-public-key')
?? pm.globals.get('x-public-key'),
xSecretKeyHeader = secretKey
?? pm.environment.get('x-secret-key')
?? pm.globals.get('x-secret-key'),
xBuyerIpHeader = pm.globals.get('x-buyer-ip');
var tokenString = xSecretKeyHeader + xPublicKeyHeader + xBuyerIpHeader + xDateHeader;
var token = CryptoJS.HmacSHA256(tokenString, xSecretKeyHeader).toString(CryptoJS.enc.Hex);
console.log("secret = " + token);
console.log("date = " + xDateHeader);
console.log("PublicKey = " + xPublicKeyHeader);
console.log("secretKey = " + xSecretKeyHeader);
console.log("ip = " + xBuyerIpHeader);
pm.request.addHeader("x-date: " + xDateHeader);
pm.request.addHeader("x-public-key: " + xPublicKeyHeader);
pm.request.addHeader("x-buyer-ip: " + xBuyerIpHeader);
pm.request.addHeader("x-token: " + token);<?php
$json = '{
"x-buyer-ip": "10.10.10.10",
"x-date": "2024-01-27T23:59:59",
"x-public-key": "aa46a835-36fa-4f75-ba3d-dc8785912345",
"secretKey": "secret-key-test123123123abc"
}';
$data = json_decode($json, true);
$xToken = hash_hmac(
'sha256',
$data['secretKey'] . $data['x-public-key'] . $data['x-buyer-ip'] . $data['x-date'],
$data['secretKey']
);
print_r(['x-token' => $xToken]);
/*
Array
(
[x-token] => 5cdc01c2d66c52a513f58e077d85660468852fc141d305888416a151a05dc159
)
*/