修复 affiliate-dash 提交前绑定校验

This commit is contained in:
yml2213
2026-08-05 22:25:57 +08:00
parent 848f65319f
commit 8e11d80496
@@ -437,35 +437,11 @@ export async function submitAffiliateDashClaim(
const gameAccount = expectedGameAccount const gameAccount = expectedGameAccount
let latestFlow = flow let latestFlow = flow
// 强制校验:绑定返回的游戏账号与第一步填写 UID 不一致时禁止提交(防止 uid 输错), // 提交阶段不再实时调用 affiliate-dash bind-result。
// 不依赖请求体 UID,也不依赖平台 mismatch 字段,避免错绑后被前端或手动请求绕过。 // 平台日志显示:正常流程在 submit 前额外触发一次 bind-result 后,delivery/submit 会在平台侧
// bind_verify 阶段偶发/稳定返回“账号尚未绑定”。这里改为使用详情轮询已写入的本地绑定快照,
// 避免 submit 前的额外平台查询改变或干扰平台发货校验链路。
if (!isMock && flow.bindUuid) { if (!isMock && flow.bindUuid) {
try {
const bindResult = await getAffiliateDashBindResult({
orderNo: flow.orderNo,
bindUuid,
})
const boundAccount = bindResult.gameAccount
const bindMismatch =
Boolean(bindResult.mismatch) ||
Boolean(boundAccount && normalizeUid(boundAccount) !== normalizeUid(expectedGameAccount))
latestFlow = {
...flow,
bound: bindResult.bound,
boundAccount: boundAccount || flow.boundAccount,
gameChannel: bindResult.gameChannel || flow.gameChannel,
bindMismatch,
}
await updateTask(task.id, {
context_json: JSON.stringify({
...taskContext,
affiliateDash: latestFlow,
}),
updated_at: now,
})
} catch {
// 拉取失败:只能使用本地最近一次详情刷新结果,不能无校验放行。
}
const latestBoundAccount = latestFlow.boundAccount const latestBoundAccount = latestFlow.boundAccount
const latestMismatch = const latestMismatch =
Boolean(latestFlow.bindMismatch) || Boolean(latestFlow.bindMismatch) ||