You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.3 KiB

import apiService from './apiClient';
// 支付方式类型定义
export interface PaymentMethod {
key: string;
value: string | string[];
}
export interface CountryPaymentMethods {
country?: number;
country_name?: string;
payment_methods: PaymentMethod[];
}
export interface PaymentMethodsResponse {
current_country_code: number;
current_country_methods: PaymentMethod[];
other_country_methods: CountryPaymentMethods[];
}
1 month ago
export interface PaymentInfoResponse {
success: boolean;
payment_url: string;
msg: string;
}
export interface PayInfoBody {
3 weeks ago
order_id: number;
1 month ago
method: string;
3 weeks ago
amount: number;
1 month ago
currency: string;
}
export interface ConvertCurrencyBody {
from_currency: string;
to_currency: string;
amounts: {
total_amount?: number;
domestic_shipping_fee?: number;
shipping_fee?: number;
};
}
export const payApi = {
// 获取当前国家支付方式
getCountryPaymentMethods: () => {
4 weeks ago
return apiService.get<PaymentMethodsResponse>('/api/payment/country_payment_methods/');
},
1 month ago
// 获取支付信息
getPayInfo: (data: PayInfoBody) => {
4 weeks ago
return apiService.post<PaymentInfoResponse>(`/api/payment/initiate/`, data);
1 month ago
},
// 货币转换
convertCurrency: (data: ConvertCurrencyBody) => {
return apiService.post<any>(`/api/currency/convert/`, data);
},
};