· 7 years ago · May 22, 2018, 11:48 PM
1var crypto = require("crypto-js");
2pm.globals.set("SecretKey", "key");
3var key = pm.globals.get("SecretKey");
4
5var payload = {
6 "vendor": {
7 "email": "",
8 "firstName": "",
9 "lastName": ""
10 },
11 "purchaseId": "12345678"
12 };
13
14var payloadString = JSON.stringify(payload);
15var payloadUTF8 = crypto.enc.Utf8.parse(payloadString);
16var payloadBase64 = crypto.enc.Base64.stringify(payloadUTF8);
17pm.environment.set("Payload", payloadBase64);
18var signature = crypto.HmacSHA256(payloadUTF8, key);
19var signatureUTF8 = crypto.enc.Utf8.parse(signature);
20var signatureBase64 = crypto.enc.Base64.stringify(signatureUTF8);
21pm.environment.set("Signature", signatureBase64);
22
23// payload is JSON object which matches the above.
24var payloadString = JsonConvert.SerializeObject(payload);
25byte[] bytes = Encoding.Default.GetBytes(payloadString);
26var payloadUTF8 = Encoding.UTF8.GetString(bytes);
27
28static void Main(string[] args)
29 {
30 var secretKey = "secret";
31
32 var payload = new
33 {
34 vendor = new
35 {
36 email = "",
37 firstName = "",
38 lastName = ""
39 },
40 purchaseId = "12345678"
41 };
42
43 string payLoadString = JsonConvert.SerializeObject(payload);
44 byte[] payLoadUTF8 = Encoding.UTF8.GetBytes(payLoadString); //NOTE: C# uses UTF-8 by default, so You could have as easily said Encoding.Default.GetBytes();
45 string payLoadBase64 = Convert.ToBase64String(payLoadUTF8);
46
47 string signatureBase64 = null;
48 using (HMACSHA256 hmac = new HMACSHA256(Encoding.Default.GetBytes(secretKey)))
49 {
50 byte[] hash = hmac.ComputeHash(payLoadUTF8);
51 signatureBase64 = Convert.ToBase64String(hash);
52 }
53
54 Console.WriteLine($"payLoadBase64:t{payLoadBase64}");
55 Console.WriteLine($"signatureBase64: t{signatureBase64}");
56 Console.ReadLine();
57 }