This commit is contained in:
2026-04-02 21:02:16 +08:00
commit 75b01d3e58
56 changed files with 3714 additions and 0 deletions

89
Scripts/CartParameter.js Normal file
View File

@@ -0,0 +1,89 @@
/**
* Surge 脚本:捕获特定 URL 请求的参数
* 包含: x-authorization-muid, ms-cv, x-ms-vector-id, x-ms-reference-id
* 新增: x-ms-tracking-id, x-ms-correlation-id
* 并存储到持久化存储($persistentStore
* 只针对 PUT 请求
*/
// 修改正则表达式,捕获新的请求 URL
const pattern = /^https:\/\/cart\.production\.store-web\.dynamics\.com\/v1\.0\/cart\/loadCart\?/;
const url = $request.url;
// 判断是否是 PUT 请求并且 URL 匹配
if ($request.method === "PUT" && pattern.test(url)) {
try {
// 从请求头中获取所需参数
const xAuthorizationMuid = $request.headers['x-authorization-muid'];
const msCv = $request.headers['ms-cv'];
const xMsVectorId = $request.headers['x-ms-vector-id'];
const xMsReferenceId = $request.headers['x-ms-reference-id'];
// 新增参数获取
const xMsTrackingId = $request.headers['x-ms-tracking-id'];
const xMsCorrelationId = $request.headers['x-ms-correlation-id'];
// 更新存储逻辑(仅在新值有效时更新)
let hasUpdate = false;
// 1. x-authorization-muid
if (xAuthorizationMuid && xAuthorizationMuid !== $persistentStore.read("cart-x-authorization-muid")) {
$persistentStore.write(xAuthorizationMuid, "cart-x-authorization-muid");
console.log(`Stored x-authorization-muid: ${xAuthorizationMuid}`);
hasUpdate = true;
}
// 2. ms-cv
if (msCv && msCv !== $persistentStore.read("cart-ms-cv")) {
$persistentStore.write(msCv, "cart-ms-cv");
console.log(`Stored ms-cv: ${msCv}`);
hasUpdate = true;
}
// 3. x-ms-vector-id
if (xMsVectorId && xMsVectorId !== $persistentStore.read("cart-x-ms-vector-id")) {
$persistentStore.write(xMsVectorId, "cart-x-ms-vector-id");
console.log(`Stored x-ms-vector-id: ${xMsVectorId}`);
hasUpdate = true;
}
// 4. x-ms-reference-id
if (xMsReferenceId && xMsReferenceId !== $persistentStore.read("cart-x-ms-reference-id")) {
$persistentStore.write(xMsReferenceId, "cart-x-ms-reference-id");
console.log(`Stored x-ms-reference-id: ${xMsReferenceId}`);
hasUpdate = true;
}
// 5. [新增] x-ms-tracking-id
if (xMsTrackingId && xMsTrackingId !== $persistentStore.read("cart-x-ms-tracking-id")) {
$persistentStore.write(xMsTrackingId, "cart-x-ms-tracking-id");
console.log(`Stored x-ms-tracking-id: ${xMsTrackingId}`);
hasUpdate = true;
}
// 6. [新增] x-ms-correlation-id
if (xMsCorrelationId && xMsCorrelationId !== $persistentStore.read("cart-x-ms-correlation-id")) {
$persistentStore.write(xMsCorrelationId, "cart-x-ms-correlation-id");
console.log(`Stored x-ms-correlation-id: ${xMsCorrelationId}`);
hasUpdate = true;
}
// 仅在成功捕获新值时发送通知(如果需要开启通知,取消下方注释)
// if (hasUpdate) {
// $notification.post(
// "Surge 信息存储",
// "已捕获并存储所有加购请求参数",
// "包含 tracking-id 和 correlation-id"
// );
// }
} catch (error) {
console.log(`Error capturing parameters: ${error}`);
// $notification.post(
// "Surge 脚本错误",
// "无法捕获所需购物车参数",
// `${error}`
// );
}
}
$done({});