This commit is contained in:
zhangjianjun 2026-07-20 15:09:32 +08:00
parent d394d8d8f2
commit e2ef445462
5 changed files with 16 additions and 15 deletions

View File

@ -38,14 +38,14 @@ export type OrderStatus = {
// goods
export function getGoods() {
return get<ApiResponse<GoodsItem[]>>('/api/order/goods')
return get<ApiResponse<GoodsItem[]>>('/api/order/goods', undefined, { tokenType: 'permanent' })
}
// order
export function order(payload: OrderPayload) {
return post<ApiResponse<OrderResult>>('/api/order', payload)
return post<ApiResponse<OrderResult>>('/api/order', payload, { tokenType: 'permanent' })
}
export function checkOrder(orderId: string) {
return get<ApiResponse<OrderStatus>>('/api/order', { order_id: orderId })
return get<ApiResponse<OrderStatus>>('/api/order', { order_id: orderId }, { tokenType: 'permanent' })
}

View File

@ -17,13 +17,13 @@ export type PackageInfo = {
}
export function getConfig() {
return get<ApiResponse<UserConfig>>('/api/user/config')
return get<ApiResponse<UserConfig>>('/api/user/config', undefined, { tokenType: 'permanent' })
}
export function getService() {
return get<ApiResponse<ServiceConfig>>('/api/weixin/service')
export function getService(tokenType: 'permanent' | 'temporary') {
return get<ApiResponse<ServiceConfig>>('/api/weixin/service', undefined, { tokenType })
}
export function getPackage() {
return get<ApiResponse<PackageInfo>>('/api/package')
return get<ApiResponse<PackageInfo>>('/api/package', undefined, { tokenType: 'temporary' })
}

View File

@ -224,7 +224,7 @@ function PayPage() {
async function initServiceUrl() {
try {
const { data } = await getService()
const { data } = await getService('permanent')
const nextServiceUrl = data['kf.address']
if (isMounted && typeof nextServiceUrl === 'string') {

View File

@ -13,7 +13,7 @@ function Twins({ installUrl }: TwinsProps) {
async function initTwinsConfig() {
try {
const { data: service } = await getService()
const { data: service } = await getService('temporary')
const nextServiceUrl = service['kf.address']
if (isMounted && typeof nextServiceUrl === 'string') {

View File

@ -8,6 +8,7 @@ type RequestParams = Record<string, RequestValue>
type RequestOptions = Omit<RequestInit, 'body' | 'method'> & {
body?: BodyInit | Record<string, unknown> | null
tokenType?: 'permanent' | 'temporary'
}
type ApiResponseLike = {
@ -155,7 +156,7 @@ function toHeaderValue(value: RequestPrimitive) {
return value === undefined || value === null ? '' : String(value)
}
function setCommonHeaders(headers: Headers) {
function setCommonHeaders(headers: Headers, tokenType: RequestOptions['tokenType']) {
const params = getSearchParams()
const sysInfo = mergeDefinedSysInfo(getBrowserInfo(), getClientSysInfo())
@ -167,9 +168,9 @@ function setCommonHeaders(headers: Headers) {
headers.set('x-channel', toHeaderValue(sysInfo.channel))
headers.set('x-click-id', toHeaderValue(params.get('bd_vid') ?? sysInfo.bd_vid ?? ''))
headers.set('x-app-id', toHeaderValue(__APP_ID__))
const token =
window.sessionStorage.getItem(TOKEN_STORAGE_KEY) || window.sessionStorage.getItem(TEMP_TOKEN_STORAGE_KEY)
if(token){
const tokenStorageKey = tokenType === 'temporary' ? TEMP_TOKEN_STORAGE_KEY : TOKEN_STORAGE_KEY
const token = window.sessionStorage.getItem(tokenStorageKey)
if (token) {
headers.set('x-token', token)
}
}
@ -273,9 +274,9 @@ function getBusinessErrorMessage(message: unknown) {
}
async function request<T>(url: string, method: string, options: RequestOptions = {}) {
const { body, headers, ...restOptions } = options
const { body, headers, tokenType, ...restOptions } = options
const requestHeaders = new Headers(headers)
setCommonHeaders(requestHeaders)
setCommonHeaders(requestHeaders, tokenType)
let requestBody: BodyInit | null | undefined
if (isPlainObject(body)) {