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.

72 lines
1.7 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[];
}
export interface PaymentInfoResponse {
success: boolean;
payment_url: string;
msg: string;
}
export interface PayInfoBody {
order_id: number | string;
method: string;
amount: number;
currency: string;
}
export interface ConvertCurrencyBody {
from_currency: string;
to_currency: string;
amounts: {
total_amount?: number;
domestic_shipping_fee?: number;
shipping_fee?: number;
};
}
export interface PaySuccessCallbackBody {
success: boolean;
msg: string;
order_id: number;
transaction_id: string;
status: number;
}
export const payApi = {
// 获取当前国家支付方式
getCountryPaymentMethods: () => {
return apiService.get<PaymentMethodsResponse>('/api/payment/country_payment_methods/');
},
// 获取支付信息
getPayInfo: (data: PayInfoBody) => {
return apiService.post<PaymentInfoResponse>(`/api/payment/initiate/`, data);
},
// 货币转换
convertCurrency: (data: ConvertCurrencyBody) => {
return apiService.post<any>(`/api/currency/convert/`, data);
},
// 支付成功的回调
paySuccessCallback: (paymentId:string,PayerID:string) => {
return apiService.get<PaySuccessCallbackBody>(`/api/payment/paypal/execute/?paymentId=${paymentId}&PayerID=${PayerID}`);
},
};