Prequisite
Set this Environment Variable before hand
- CLIENT_ID
- CLIENT_SECRET
- API-Key
Put this script in Pre-Request script, in latest postman app pre-request script can be set by directory or collection.
clientID = pm.variables.get("CLIENT_ID");
clientSecret = pm.variables.get("CLIENT_SECRET");
authStr = btoa(clientID +":"+ clientSecret);
pm.environment.set("BASIC_AUTHORIZATION_REQUEST",authStr);
apiKey = pm.variables.get("API-Key");
var ts = (new Date()).toISOString();
pm.environment.set("Timestamp", ts);
var jsonReq = JSON.parse(pm.request.body);
var jsonBody = JSON.stringify(jsonReq, null, 0);
jsonBody = jsonBody.trim().replace(/\s/g,'');
var md5checksum = CryptoJS.MD5(jsonBody);
base64ChecksumValue = CryptoJS.enc.Base64.stringify(md5checksum);
var signatureRawData = ts+":" + clientID + ":"+pm.request.method.toUpperCase()+":"+ base64ChecksumValue
var signatureBytes = CryptoJS.HmacSHA256(signatureRawData, clientSecret);
base64Signature = CryptoJS.enc.Base64.stringify(signatureBytes);
var digestSignatureRaw = apiKey+":"+base64Signature;
digestSignature = btoa(digestSignatureRaw);
pm.environment.set("SIGNATURE", digestSignature);