问题描述
在运行带有cryptojs预请求脚本的邮递员集合时,出现“ TypeError:无法读取未定义的'sigBytes'属性”错误。请求前脚本会计算hmac-sha256签名,该签名也是要调用的主要API参数的一部分。
下面是我的脚本:
let mobile = pm.environment.get('mobileNumber');
let value = pm.environment.get('value');
let merchantId = pm.environment.get('merchantId');
let referenceNumber = pm.environment.get('referenceNumber');
let authCode = pm.environment.get('authCode');
let secretKey = pm.environment.get('secretKey');
let string = mobile + value + merchantId + referenceNumber + authCode;
pm.environment.set('string',string);
let hmac = CryptoJS.HmacSHA256(string,secretKey);
pm.environment.set('hmac',hmac);
signature = "hmac256-" + hmac;
pm.environment.set('signature',signature);
我已经尝试将字符串和secretKey编码为UTF-8,base64stringify,JSON stringify,但是仍然出现错误。
以下是每个变量的样本值:
- 移动电话-+639012345678
- 值-100
- merchantId-TEST_MERCHANT1
- referenceNumber-TEST_MERCHANT1-000001
- authCode-000001
- secretKey-a2c36909-c9cc-4ed3-9423-ec170e1eb6c2
感谢您的帮助!
解决方法
好像没有定义至少一个环境变量。
该错误消息是由于CryptoJS中的错误引起的:https://github.com/brix/crypto-js/issues/85