【问题标题】:"TypeError: Cannot read property 'sigBytes' of undefined" error in pre-request CryptoJS script预请求 CryptoJS 脚本中的“TypeError:无法读取未定义的属性‘sigBytes’”错误
【发布时间】:2020-12-12 22:39:48
【问题描述】:

在使用 cryptojs 预请求脚本运行邮递员集合时,我收到“TypeError: Cannot read property 'sigBytes' of undefined”错误。预请求脚本计算一个 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

【问题讨论】:

    标签: postman hmac cryptojs postman-collection-runner postman-pre-request-script


    【解决方案1】:

    看起来至少有一个环境变量没有定义。

    错误消息是由于 CryptoJS 中的错误:https://github.com/brix/crypto-js/issues/85

    【讨论】:

    • 或者pm.environment.get的变量调用是错误的使用;我需要使用正确的“get”调用(即pm. collectionVariables.getpm.variables.get
    猜你喜欢
    • 1970-01-01
    • 2020-11-01
    • 2017-04-06
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多