我正在尝试创建一个httpclient,它将登录到Paypal并使用令牌示例进行结帐:EC-72W98000K01165117。
当我使用浏览器付款并使用Fiddler捕获请求时,这是我的浏览器请求

{
"meta": {
    "token": "EC-72W98000K01165117",
    "calc": "7b55bc20cca9d",
    "csci": "7a4236636ffd49dc934eb73da4402f49",
    "locale": {
        "country": "US",
        "language": "en"
    },
    "state": "ui_checkout_review",
    "app_name": "hermesnodeweb"
}}


我不知道“ csci”在哪里:“ 7a4236636ffd49dc934eb73da4402f49”来自:(

最佳答案

在研究了这个API并编写了一个自动化套件之后,事实证明csci只是一个UUID(通用唯一标识符)。只要先前未使用该标识符,请求中的任何32位十六进制值都应起作用。随机生成这些的任何方法都可以满足要求,但是在页面上生成这些的JavaScript代码是:

  // See https://github.com/broofa/node-uuid for API details
  function v4(options, buf, offset) {
    // Deprecated - 'format' argument, as supported in v1.2
    var i = buf && offset || 0;

    if (typeof options === 'string') {
      buf = options === 'binary' ? new BufferClass(16) : null;
      options = null;
    }
    options = options || {};

    var rnds = options.random || (options.rng || _rng)();

    // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
    rnds[6] = rnds[6] & 0x0f | 0x40;
    rnds[8] = rnds[8] & 0x3f | 0x80;

    // Copy bytes to buffer, if provided
    if (buf) {
      for (var ii = 0; ii < 16; ii++) {
        buf[i + ii] = rnds[ii];
      }
    }

    return buf || unparse(rnds);
  }

10-06 10:22