36 lines
1.7 KiB
JavaScript
36 lines
1.7 KiB
JavaScript
|
|
// 根因验证:后端 customers.customer_id 是 VARCHAR(64)(spec §6.1),
|
||
|
|
// 而插件对无真 customerId 的询盘用 sec_ + secTradeId 兜底(75 字符)。
|
||
|
|
// 本脚本推两条测试数据对比:超长 sec_ vs 短 id,看后端 ingest 的实际反应。
|
||
|
|
// 用法: node scripts/test-cid-length.mjs
|
||
|
|
import { buildIngestPayload } from '../push/payload.js';
|
||
|
|
|
||
|
|
const SERVER = process.env.SERVER || 'http://219.157.255.213:23010';
|
||
|
|
const TOKEN = process.env.TOKEN || '688cbb4b6e880b340b2360559c4ad29d01a39ccbb3c31c4d';
|
||
|
|
|
||
|
|
async function push(label, customerId) {
|
||
|
|
const record = {
|
||
|
|
inquiryId: `TEST-CID-${label}`,
|
||
|
|
customerId,
|
||
|
|
detailBuyerName: 'Test Buyer', detailCountry: 'US', company: 'Test Co',
|
||
|
|
createTimeFromApi: '2026-07-20T00:00:00Z', updateTimeFromApi: '2026-07-20T00:00:00Z',
|
||
|
|
behavior: { productViews: '1' },
|
||
|
|
};
|
||
|
|
const payload = buildIngestPayload(record, []);
|
||
|
|
const res = await fetch(`${SERVER}/api/ingest`, {
|
||
|
|
method: 'POST',
|
||
|
|
headers: { Authorization: `Bearer ${TOKEN}`, 'Content-Type': 'application/json' },
|
||
|
|
body: JSON.stringify(payload),
|
||
|
|
});
|
||
|
|
let body = '';
|
||
|
|
try { body = await res.text(); } catch (e) { body = '(no body)'; }
|
||
|
|
console.log(`[${label}] customerId(len=${customerId.length}): status=${res.status}`);
|
||
|
|
console.log(` body=${body.slice(0, 400)}`);
|
||
|
|
console.log(` payload.customer.customerId = ${JSON.stringify(payload.customer && payload.customer.customerId)}`);
|
||
|
|
}
|
||
|
|
|
||
|
|
const longCid = 'sec_MC1IDX1yqSSuFKld-CG7npDfPBic6Iv1S_ZJecxnw8b7kTejq_GNIDRuGTmXE-sjnZMUpze';
|
||
|
|
console.log('=== longCid length:', longCid.length, '===');
|
||
|
|
await push('LONG75', longCid);
|
||
|
|
await push('SHORT5', '12345');
|
||
|
|
console.log('\n说明:若 LONG75 失败(4xx)而 SHORT5 成功(200) → 证实后端因长度拒绝 sec_ customerId');
|