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.
1var moment = require('moment');
2var CryptoJS = require('crypto-js');
3
4pm.environment.set('x-date', moment().format(("Y-m-dTH:mm:s")));
5var xDateHeader = pm.environment.get('x-date'),
6 xPublicKeyHeader = publicKey
7 ?? pm.environment.get('x-public-key')
8 ?? pm.globals.get('x-public-key'),
9 xSecretKeyHeader = secretKey
10 ?? pm.environment.get('x-secret-key')
11 ?? pm.globals.get('x-secret-key'),
12 xBuyerIpHeader = pm.globals.get('x-buyer-ip');
13
14var tokenString = xSecretKeyHeader + xPublicKeyHeader + xBuyerIpHeader + xDateHeader;
15var token = CryptoJS.HmacSHA256(tokenString, xSecretKeyHeader).toString(CryptoJS.enc.Hex);
16console.log("secret = " + token);
17console.log("date = " + xDateHeader);
18console.log("PublicKey = " + xPublicKeyHeader);
19console.log("secretKey = " + xSecretKeyHeader);
20console.log("ip = " + xBuyerIpHeader);
21
22pm.request.addHeader("x-date: " + xDateHeader);
23pm.request.addHeader("x-public-key: " + xPublicKeyHeader);
24pm.request.addHeader("x-buyer-ip: " + xBuyerIpHeader);
25pm.request.addHeader("x-token: " + token);1<?php
2
3$json = '{
4 "x-buyer-ip": "10.10.10.10",
5 "x-date": "2024-01-27T23:59:59",
6 "x-public-key": "aa46a835-36fa-4f75-ba3d-dc8785912345",
7 "secretKey": "secret-key-test123123123abc"
8}';
9
10$data = json_decode($json, true);
11
12$xToken = hash_hmac(
13 'sha256',
14 $data['secretKey'] . $data['x-public-key'] . $data['x-buyer-ip'] . $data['x-date'],
15 $data['secretKey']
16);
17print_r(['x-token' => $xToken]);
18/*
19Array
20(
21 [x-token] => 5cdc01c2d66c52a513f58e077d85660468852fc141d305888416a151a05dc159
22)
23*/