feat: pay api

pull/85/MERGE
xingyu4j 2025-04-28 16:27:34 +08:00
parent 6794f1a7f7
commit 023a6ee29a
11 changed files with 626 additions and 0 deletions

View File

@ -0,0 +1,63 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace PayAppApi {
/** 支付应用信息 */
export interface App {
id?: number;
appKey: string;
name: string;
status: number;
remark: string;
payNotifyUrl: string;
refundNotifyUrl: string;
transferNotifyUrl: string;
merchantId: number;
merchantName: string;
createTime?: Date;
}
/** 更新状态请求 */
export interface UpdateStatusReq {
id: number;
status: number;
}
}
/** 查询支付应用列表 */
export function getAppPage(params: PageParam) {
return requestClient.get<PageResult<PayAppApi.App>>('/pay/app/page', {
params,
});
}
/** 查询支付应用详情 */
export function getApp(id: number) {
return requestClient.get<PayAppApi.App>(`/pay/app/get?id=${id}`);
}
/** 新增支付应用 */
export function createApp(data: PayAppApi.App) {
return requestClient.post('/pay/app/create', data);
}
/** 修改支付应用 */
export function updateApp(data: PayAppApi.App) {
return requestClient.put('/pay/app/update', data);
}
/** 修改支付应用状态 */
export function changeAppStatus(data: PayAppApi.UpdateStatusReq) {
return requestClient.put('/pay/app/update-status', data);
}
/** 删除支付应用 */
export function deleteApp(id: number) {
return requestClient.delete(`/pay/app/delete?id=${id}`);
}
/** 获取支付应用列表 */
export function getAppList() {
return requestClient.get<PayAppApi.App[]>('/pay/app/list');
}

View File

@ -0,0 +1,54 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace PayChannelApi {
/** 支付渠道信息 */
export interface Channel {
id: number;
code: string;
config: string;
status: number;
remark: string;
feeRate: number;
appId: number;
createTime: Date;
}
}
/** 查询支付渠道列表 */
export function getChannelPage(params: PageParam) {
return requestClient.get<PageResult<PayChannelApi.Channel>>(
'/pay/channel/page',
{
params,
},
);
}
/** 查询支付渠道详情 */
export function getChannel(appId: string, code: string) {
return requestClient.get<PayChannelApi.Channel>('/pay/channel/get', {
params: { appId, code },
});
}
/** 新增支付渠道 */
export function createChannel(data: PayChannelApi.Channel) {
return requestClient.post('/pay/channel/create', data);
}
/** 修改支付渠道 */
export function updateChannel(data: PayChannelApi.Channel) {
return requestClient.put('/pay/channel/update', data);
}
/** 删除支付渠道 */
export function deleteChannel(id: number) {
return requestClient.delete(`/pay/channel/delete?id=${id}`);
}
/** 导出支付渠道 */
export function exportChannel(params: PageParam) {
return requestClient.download('/pay/channel/export-excel', { params });
}

View File

@ -0,0 +1,38 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace PayDemoApi {
/** 示例订单信息 */
export interface DemoOrder {
spuId: number;
createTime: Date;
}
}
/** 创建示例订单 */
export function createDemoOrder(data: PayDemoApi.DemoOrder) {
return requestClient.post('/pay/demo-order/create', data);
}
/** 获得示例订单 */
export function getDemoOrder(id: number) {
return requestClient.get<PayDemoApi.DemoOrder>(
`/pay/demo-order/get?id=${id}`,
);
}
/** 获得示例订单分页 */
export function getDemoOrderPage(params: PageParam) {
return requestClient.get<PageResult<PayDemoApi.DemoOrder>>(
'/pay/demo-order/page',
{
params,
},
);
}
/** 退款示例订单 */
export function refundDemoOrder(id: number) {
return requestClient.put(`/pay/demo-order/refund?id=${id}`);
}

View File

@ -0,0 +1,29 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace PayDemoTransferApi {
/** 示例转账单信息 */
export interface DemoTransfer {
price: number;
type: number;
userName: string;
alipayLogonId: string;
openid: string;
}
}
/** 创建示例转账单 */
export function createDemoTransfer(data: PayDemoTransferApi.DemoTransfer) {
return requestClient.post('/pay/demo-transfer/create', data);
}
/** 获得示例转账单分页 */
export function getDemoTransferPage(params: PageParam) {
return requestClient.get<PageResult<PayDemoTransferApi.DemoTransfer>>(
'/pay/demo-transfer/page',
{
params,
},
);
}

View File

@ -0,0 +1,15 @@
import type { PageParam } from '@vben/request';
import { requestClient } from '#/api/request';
/** 获得支付通知明细 */
export function getNotifyTaskDetail(id: number) {
return requestClient.get(`/pay/notify/get-detail?id=${id}`);
}
/** 获得支付通知分页 */
export function getNotifyTaskPage(params: PageParam) {
return requestClient.get('/pay/notify/page', {
params,
});
}

View File

@ -0,0 +1,118 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace PayOrderApi {
/** 支付订单信息 */
export interface Order {
id: number;
merchantId: number;
appId: number;
channelId: number;
channelCode: string;
merchantOrderId: string;
subject: string;
body: string;
notifyUrl: string;
notifyStatus: number;
amount: number;
channelFeeRate: number;
channelFeeAmount: number;
status: number;
userIp: string;
expireTime: Date;
successTime: Date;
notifyTime: Date;
successExtensionId: number;
refundStatus: number;
refundTimes: number;
refundAmount: number;
channelUserId: string;
channelOrderNo: string;
createTime: Date;
}
/** 支付订单分页请求 */
export interface OrderPageReqVO extends PageParam {
merchantId?: number;
appId?: number;
channelId?: number;
channelCode?: string;
merchantOrderId?: string;
subject?: string;
body?: string;
notifyUrl?: string;
notifyStatus?: number;
amount?: number;
channelFeeRate?: number;
channelFeeAmount?: number;
status?: number;
expireTime?: Date[];
successTime?: Date[];
notifyTime?: Date[];
successExtensionId?: number;
refundStatus?: number;
refundTimes?: number;
channelUserId?: string;
channelOrderNo?: string;
createTime?: Date[];
}
/** 支付订单导出请求 */
export interface OrderExportReqVO {
merchantId?: number;
appId?: number;
channelId?: number;
channelCode?: string;
merchantOrderId?: string;
subject?: string;
body?: string;
notifyUrl?: string;
notifyStatus?: number;
amount?: number;
channelFeeRate?: number;
channelFeeAmount?: number;
status?: number;
expireTime?: Date[];
successTime?: Date[];
notifyTime?: Date[];
successExtensionId?: number;
refundStatus?: number;
refundTimes?: number;
channelUserId?: string;
channelOrderNo?: string;
createTime?: Date[];
}
}
/** 查询支付订单列表 */
export function getOrderPage(params: PayOrderApi.OrderPageReqVO) {
return requestClient.get<PageResult<PayOrderApi.Order>>('/pay/order/page', {
params,
});
}
/** 查询支付订单详情 */
export function getOrder(id: number, sync?: boolean) {
return requestClient.get<PayOrderApi.Order>('/pay/order/get', {
params: {
id,
sync,
},
});
}
/** 获得支付订单的明细 */
export function getOrderDetail(id: number) {
return requestClient.get<PayOrderApi.Order>(`/pay/order/get-detail?id=${id}`);
}
/** 提交支付订单 */
export function submitOrder(data: any) {
return requestClient.post('/pay/order/submit', data);
}
/** 导出支付订单 */
export function exportOrder(params: PayOrderApi.OrderExportReqVO) {
return requestClient.download('/pay/order/export-excel', { params });
}

View File

@ -0,0 +1,128 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace PayRefundApi {
/** 退款订单信息 */
export interface Refund {
id: number;
merchantId: number;
appId: number;
channelId: number;
channelCode: string;
orderId: string;
tradeNo: string;
merchantOrderId: string;
merchantRefundNo: string;
notifyUrl: string;
notifyStatus: number;
status: number;
type: number;
payAmount: number;
refundAmount: number;
reason: string;
userIp: string;
channelOrderNo: string;
channelRefundNo: string;
channelErrorCode: string;
channelErrorMsg: string;
channelExtras: string;
expireTime: Date;
successTime: Date;
notifyTime: Date;
createTime: Date;
}
/** 退款订单分页请求 */
export interface RefundPageReqVO extends PageParam {
merchantId?: number;
appId?: number;
channelId?: number;
channelCode?: string;
orderId?: string;
tradeNo?: string;
merchantOrderId?: string;
merchantRefundNo?: string;
notifyUrl?: string;
notifyStatus?: number;
status?: number;
type?: number;
payAmount?: number;
refundAmount?: number;
reason?: string;
userIp?: string;
channelOrderNo?: string;
channelRefundNo?: string;
channelErrorCode?: string;
channelErrorMsg?: string;
channelExtras?: string;
expireTime?: Date[];
successTime?: Date[];
notifyTime?: Date[];
createTime?: Date[];
}
/** 退款订单导出请求 */
export interface RefundExportReqVO {
merchantId?: number;
appId?: number;
channelId?: number;
channelCode?: string;
orderId?: string;
tradeNo?: string;
merchantOrderId?: string;
merchantRefundNo?: string;
notifyUrl?: string;
notifyStatus?: number;
status?: number;
type?: number;
payAmount?: number;
refundAmount?: number;
reason?: string;
userIp?: string;
channelOrderNo?: string;
channelRefundNo?: string;
channelErrorCode?: string;
channelErrorMsg?: string;
channelExtras?: string;
expireTime?: Date[];
successTime?: Date[];
notifyTime?: Date[];
createTime?: Date[];
}
}
/** 查询退款订单列表 */
export function getRefundPage(params: PayRefundApi.RefundPageReqVO) {
return requestClient.get<PageResult<PayRefundApi.Refund>>(
'/pay/refund/page',
{
params,
},
);
}
/** 查询退款订单详情 */
export function getRefund(id: number) {
return requestClient.get<PayRefundApi.Refund>(`/pay/refund/get?id=${id}`);
}
/** 创建退款订单 */
export function createRefund(data: PayRefundApi.Refund) {
return requestClient.post('/pay/refund/create', data);
}
/** 更新退款订单 */
export function updateRefund(data: PayRefundApi.Refund) {
return requestClient.put('/pay/refund/update', data);
}
/** 删除退款订单 */
export function deleteRefund(id: number) {
return requestClient.delete(`/pay/refund/delete?id=${id}`);
}
/** 导出退款订单 */
export function exportRefund(params: PayRefundApi.RefundExportReqVO) {
return requestClient.download('/pay/refund/export-excel', { params });
}

View File

@ -0,0 +1,58 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace PayTransferApi {
/** 转账单信息 */
export interface Transfer {
id: number;
appId: number;
channelId: number;
channelCode: string;
merchantTransferId: string;
type: number;
price: number;
subject: string;
userName: string;
alipayLogonId: string;
openid: string;
status: number;
createTime: Date;
}
/** 转账单分页请求 */
export interface TransferPageReqVO extends PageParam {
appId?: number;
channelId?: number;
channelCode?: string;
merchantTransferId?: string;
type?: number;
price?: number;
subject?: string;
userName?: string;
status?: number;
createTime?: Date[];
}
}
/** 查询转账单列表 */
export function getTransferPage(params: PayTransferApi.TransferPageReqVO) {
return requestClient.get<PageResult<PayTransferApi.Transfer>>(
'/pay/transfer/page',
{
params,
},
);
}
/** 查询转账单详情 */
export function getTransfer(id: number) {
return requestClient.get<PayTransferApi.Transfer>(
`/pay/transfer/get?id=${id}`,
);
}
/** 创建转账单 */
export function createTransfer(data: PayTransferApi.Transfer) {
return requestClient.post('/pay/transfer/create', data);
}

View File

@ -0,0 +1,53 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace PayWalletApi {
/** 用户钱包查询参数 */
export interface PayWalletUserReqVO {
userId: number;
}
/** 钱包信息 */
export interface WalletVO {
id: number;
userId: number;
userType: number;
balance: number;
totalExpense: number;
totalRecharge: number;
freezePrice: number;
}
/** 钱包分页请求 */
export interface WalletPageReqVO extends PageParam {
userId?: number;
userType?: number;
balance?: number;
totalExpense?: number;
totalRecharge?: number;
freezePrice?: number;
}
}
/** 查询用户钱包详情 */
export function getWallet(params: PayWalletApi.PayWalletUserReqVO) {
return requestClient.get<PayWalletApi.WalletVO>('/pay/wallet/get', {
params,
});
}
/** 查询会员钱包列表 */
export function getWalletPage(params: PayWalletApi.WalletPageReqVO) {
return requestClient.get<PageResult<PayWalletApi.WalletVO>>(
'/pay/wallet/page',
{
params,
},
);
}
/** 修改会员钱包余额 */
export function updateWalletBalance(data: PayWalletApi.WalletVO) {
return requestClient.put('/pay/wallet/update-balance', data);
}

View File

@ -0,0 +1,46 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace WalletRechargePackageApi {
/** 充值套餐信息 */
export interface Package {
id?: number;
name: string;
payPrice: number;
bonusPrice: number;
status: number;
}
}
/** 查询充值套餐列表 */
export function getPackagePage(params: PageParam) {
return requestClient.get<PageResult<WalletRechargePackageApi.Package>>(
'/pay/wallet-recharge-package/page',
{
params,
},
);
}
/** 查询充值套餐详情 */
export function getPackage(id: number) {
return requestClient.get<WalletRechargePackageApi.Package>(
`/pay/wallet-recharge-package/get?id=${id}`,
);
}
/** 新增充值套餐 */
export function createPackage(data: WalletRechargePackageApi.Package) {
return requestClient.post('/pay/wallet-recharge-package/create', data);
}
/** 修改充值套餐 */
export function updatePackage(data: WalletRechargePackageApi.Package) {
return requestClient.put('/pay/wallet-recharge-package/update', data);
}
/** 删除充值套餐 */
export function deletePackage(id: number) {
return requestClient.delete(`/pay/wallet-recharge-package/delete?id=${id}`);
}

View File

@ -0,0 +1,24 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace WalletTransactionApi {
/** 钱包交易流水信息 */
export interface Transaction {
id: number;
walletId: number;
title: string;
price: number;
balance: number;
}
}
/** 查询钱包交易流水列表 */
export function getTransactionPage(params: PageParam) {
return requestClient.get<PageResult<WalletTransactionApi.Transaction>>(
'/pay/wallet-transaction/page',
{
params,
},
);
}