fix auth completion and payment resume hardening

This commit is contained in:
IanShaw027
2026-04-21 08:23:26 +08:00
parent f11b7d5105
commit 09351e9459
8 changed files with 199 additions and 47 deletions

View File

@@ -219,7 +219,6 @@ onMounted(async () => {
const routeOrderId = Number(route.query.order_id) || 0
const outTradeNo = String(route.query.out_trade_no || '')
let orderId = 0
let canUseLegacyPublicVerify = false
if (resumeToken && typeof window !== 'undefined') {
const restored = readPaymentRecoverySnapshot(
@@ -264,23 +263,12 @@ onMounted(async () => {
const hasLegacyFallbackContext = typeof route.query.trade_status === 'string'
&& route.query.trade_status.trim() !== ''
if (!order.value && !resumeToken && !orderId && outTradeNo && hasLegacyFallbackContext) {
canUseLegacyPublicVerify = true
returnInfo.value = {
outTradeNo,
money: String(route.query.money || ''),
type: String(route.query.type || ''),
tradeStatus: String(route.query.trade_status || ''),
}
try {
const result = await paymentAPI.verifyOrderPublic(outTradeNo)
order.value = result.data
} catch (_err: unknown) {
try {
const result = await paymentAPI.verifyOrder(outTradeNo)
order.value = result.data
} catch (_e: unknown) { /* fall through */ }
}
}
const refreshOrder = async (): Promise<PaymentOrder | null> => {
@@ -292,20 +280,6 @@ onMounted(async () => {
return await paymentStore.pollOrderStatus(orderId)
}
if (canUseLegacyPublicVerify && outTradeNo) {
try {
const result = await paymentAPI.verifyOrderPublic(outTradeNo)
return result.data
} catch (_err: unknown) {
try {
const result = await paymentAPI.verifyOrder(outTradeNo)
return result.data
} catch (_e: unknown) {
return null
}
}
}
return null
}