我正在尝试创建一个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);
}