This commit is contained in:
2026-08-19 09:14:38 +08:00
parent eedaa2f080
commit 372ec3dc37
10 changed files with 217 additions and 62 deletions
+16 -1
View File
@@ -1,5 +1,5 @@
import { apiRequest } from '@/api/http'
import type { FinanceBillDetail, FinanceBillPage, FinanceBillQuery, FinanceReceiptRecord } from '../contracts'
import type { FinanceBillDetail, FinanceBillPage, FinanceBillQuery, FinanceCustomerConfirmationResult, FinanceReceiptRecord } from '../contracts'
import {
mapFinanceBillDetail,
mapFinanceBills,
@@ -54,3 +54,18 @@ export async function getMerchantFinanceReceipts(billId: string): Promise<Financ
})
return mapFinanceReceipts(response, billId)
}
function confirmationIdempotencyKey(statementId: string) {
const randomPart = globalThis.crypto?.randomUUID?.() ?? `${Date.now()}-${Math.random().toString(36).slice(2)}`
return `statement-confirm-${statementId}-${randomPart}`
}
export async function confirmMerchantFinanceStatement(statementId: string, expectedVersion: number,
idempotencyKey = confirmationIdempotencyKey(statementId)) {
return apiRequest<FinanceCustomerConfirmationResult>({
method: 'POST',
url: `/client/finance/v1/statements/${encodeURIComponent(statementId)}/confirm`,
headers: { 'Idempotency-Key': idempotencyKey },
data: { expectedVersion },
})
}