import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; import type { Payment, PaymentParam } from './model'; import { SERVER_API_URL } from '@/config/setting'; import type { Order } from '@/api/system/order/model'; export type PaymentCreatePayload = Record; export type PaymentCreateResult = { codeUrl?: string; url?: string; payUrl?: string; paymentUrl?: string; qrcode?: string; orderId?: number; orderNo?: string; paymentNo?: string; tradeNo?: string; order?: Order; } & Record; /** * 分页查询支付方式 */ export async function pagePayment(params: PaymentParam) { const res = await request.get>>( SERVER_API_URL + '/system/payment/page', { params } ); if (res.data.code === 0) { return res.data.data; } return Promise.reject(new Error(res.data.message)); } /** * 查询支付方式列表 */ export async function listPayment(params?: PaymentParam) { const res = await request.get>( SERVER_API_URL + '/system/payment', { params } ); if (res.data.code === 0 && res.data.data) { return res.data.data; } return Promise.reject(new Error(res.data.message)); } /** * 添加支付方式 */ export async function addPayment(data: Payment) { const res = await request.post>( SERVER_API_URL + '/system/payment', data ); if (res.data.code === 0) { return res.data.message; } return Promise.reject(new Error(res.data.message)); } /** * 统一下单订单接口 */ export async function create(data: PaymentCreatePayload) { const res = await request.post>( SERVER_API_URL + '/system/payment/create', data ); if (res.data.code === 0) { return res.data.data; } return Promise.reject(new Error(res.data.message)); } /** * 统一下单订单接口(包含订单信息) */ export async function createWithOrder(data: PaymentCreatePayload) { try { const res = await request.post>( SERVER_API_URL + '/system/payment/createWithOrder', data ); if (res.data.code === 0) { return res.data.data; } return Promise.reject(new Error(res.data.message)); } catch (e: any) { const status = e?.statusCode ?? e?.response?.status; if (String(status) !== '404') throw e; const res = await request.post>( SERVER_API_URL + '/system/payment/create-with-order', data ); if (res.data.code === 0) { return res.data.data; } return Promise.reject(new Error(res.data.message)); } } /** * 修改支付方式 */ export async function updatePayment(data: Payment) { const res = await request.put>( SERVER_API_URL + '/system/payment', data ); if (res.data.code === 0) { return res.data.message; } return Promise.reject(new Error(res.data.message)); } /** * 删除支付方式 */ export async function removePayment(id?: number) { const res = await request.delete>( SERVER_API_URL + '/system/payment/' + id ); if (res.data.code === 0) { return res.data.message; } return Promise.reject(new Error(res.data.message)); } /** * 批量删除支付方式 */ export async function removeBatchPayment(data: (number | undefined)[]) { const res = await request.delete>( SERVER_API_URL + '/system/payment/batch', { data } ); if (res.data.code === 0) { return res.data.message; } return Promise.reject(new Error(res.data.message)); } /** * 根据id查询支付方式 */ export async function getPayment(id: number) { const res = await request.get>( SERVER_API_URL + '/system/payment/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; } return Promise.reject(new Error(res.data.message)); } /** * 生成支付二维码(微信native) */ export async function getNativeCode(data: Order) { const res = await request.post>( SERVER_API_URL + '/system/wx-native-pay/codeUrl', data ); if (res.data.code === 0) { return res.data.data; } return Promise.reject(new Error(res.data.message)); }