204 lines
4.7 KiB
TypeScript
204 lines
4.7 KiB
TypeScript
import { get, post, postForm } from '../utils/request';
|
|
|
|
export interface MerchantConfigQuery {
|
|
merchant_id?: string;
|
|
scene?: string;
|
|
}
|
|
|
|
export interface CashierOrderPayload {
|
|
merchant_id?: string;
|
|
amount: string;
|
|
remark?: string;
|
|
house_id?: string;
|
|
}
|
|
|
|
export interface CashierOrderResult {
|
|
order_id: string;
|
|
}
|
|
|
|
export interface CashierPayResult {
|
|
timeStamp: string;
|
|
nonceStr: string;
|
|
package: string;
|
|
signType: string;
|
|
paySign: string;
|
|
}
|
|
|
|
export interface BoundMerchantInfo {
|
|
merchant_id?: string;
|
|
merchant_name?: string;
|
|
config?: {
|
|
score_name?: string;
|
|
};
|
|
merchant?: {
|
|
merchant_id?: string;
|
|
merchant_name?: string;
|
|
config?: {
|
|
score_name?: string;
|
|
};
|
|
};
|
|
supplier?: {
|
|
fee_rate?: string | number;
|
|
};
|
|
fee_rate?: string | number;
|
|
}
|
|
|
|
export interface SupplierInfo {
|
|
supplier_id?: string | number;
|
|
supplier_name?: string;
|
|
logo?: string;
|
|
fee_rate?: string | number;
|
|
supplier?: {
|
|
supplier_id?: string | number;
|
|
supplier_name?: string;
|
|
logo?: string;
|
|
fee_rate?: string | number;
|
|
};
|
|
}
|
|
|
|
export interface MerchantListItem {
|
|
merchant_id: string | number;
|
|
merchant_name: string;
|
|
}
|
|
|
|
export interface ApiResult<T = any> {
|
|
code: number | string;
|
|
msg?: string;
|
|
data?: T;
|
|
}
|
|
|
|
export interface TradeQueryResult {
|
|
order_id?: number | string;
|
|
trade_no?: string;
|
|
pay_status?: number;
|
|
pay_type?: number;
|
|
total_money?: string;
|
|
reduce_money?: string;
|
|
real_money?: string;
|
|
}
|
|
|
|
export interface TradeListItem {
|
|
trade_no: string;
|
|
pay_status: number;
|
|
real_money: string;
|
|
merchant_id?: number | string;
|
|
create_time?: string;
|
|
wuye_money?: string;
|
|
pay_time?: string | null;
|
|
refund_time?: string | null;
|
|
pay_type?: number;
|
|
supplier_name?: string;
|
|
}
|
|
|
|
export interface TradeListQuery {
|
|
trade_no?: string;
|
|
page?: number | string;
|
|
limit?: number | string;
|
|
}
|
|
|
|
export interface PlatformScoreResult {
|
|
score?: string | number;
|
|
}
|
|
|
|
export interface ScoreRecordItem {
|
|
id?: string | number;
|
|
score?: string | number;
|
|
change_score?: string | number;
|
|
type?: string | number;
|
|
remark?: string;
|
|
create_time?: string;
|
|
[key: string]: unknown;
|
|
}
|
|
|
|
export interface ScoreRecordQuery {
|
|
page?: number | string;
|
|
limit?: number | string;
|
|
}
|
|
|
|
export interface CashTradeInfo {
|
|
trade_no?: string;
|
|
pay_status?: number;
|
|
pay_type?: number;
|
|
total_money?: string;
|
|
reduce_money?: string;
|
|
real_money?: string;
|
|
merchant_id?: number | string;
|
|
supplier_id?: number | string;
|
|
timeout?: number;
|
|
create_time?: string;
|
|
}
|
|
|
|
export interface CashTradeInfoResult {
|
|
trade?: CashTradeInfo;
|
|
body?: string;
|
|
subject?: string;
|
|
}
|
|
|
|
export interface CashTradePayPayload {
|
|
trade_no: string;
|
|
platform?: string;
|
|
remark?: string;
|
|
}
|
|
|
|
export interface CashTradePayResult {
|
|
trade_no?: string;
|
|
app_id?: string;
|
|
timestamp?: string;
|
|
nonce_str?: string;
|
|
package?: string;
|
|
sign_type?: string;
|
|
pay_sign?: string;
|
|
}
|
|
|
|
export const merchantConfig = (data: MerchantConfigQuery = {}) => get<ApiResult>('v1/cashier/merchant', data);
|
|
|
|
export const createCashierOrder = (data: CashierOrderPayload) =>
|
|
post<ApiResult<CashierOrderResult>>('v1/cashier/order/create', data);
|
|
|
|
export const cashierPay = (data: { order_id: string }) => post<ApiResult<CashierPayResult>>('v1/cashier/pay', data);
|
|
|
|
export const cashierRecordList = (data: any = {}) => get('v1/cashier/records', data);
|
|
|
|
export const tradeList = (data: TradeListQuery = {}) =>
|
|
get<ApiResult<TradeListItem[]>>('user/v1/trade.list', {
|
|
trade_no: data.trade_no ?? '',
|
|
page: data.page ?? 1,
|
|
limit: data.limit ?? 10
|
|
});
|
|
|
|
export const bindMerchantByUrl = (url: string) =>
|
|
get<ApiResult<BoundMerchantInfo>>('user/v1/bing.merchant', { url });
|
|
|
|
export const supplierByUrl = (url: string) =>
|
|
get<ApiResult<SupplierInfo>>('user/v1/supplier', { url });
|
|
|
|
export const merchantListByUrl = (url: string) =>
|
|
get<ApiResult<MerchantListItem[]>>('user/v1/merchant.list', { url });
|
|
|
|
export const changeMerchant = (data: { merchant_id: string | number; url: string }) =>
|
|
postForm<ApiResult>('user/v1/merchant.change', data);
|
|
|
|
export const queryTrade = (tradeNo: string) =>
|
|
get<ApiResult<TradeQueryResult>>('user/v1/trade/query', { trade_no: tradeNo });
|
|
|
|
export const cancelTrade = (tradeNo: string) =>
|
|
get<ApiResult>('user/v1/trade/cancel', { trade_no: tradeNo });
|
|
|
|
export const platformScore = () => get<ApiResult<PlatformScoreResult>>('user/v1/platform.score');
|
|
|
|
export const platformScoreRecord = (data: ScoreRecordQuery = {}) =>
|
|
get<ApiResult<ScoreRecordItem[]>>('user/v1/platform.score.record', {
|
|
page: data.page ?? 1,
|
|
limit: data.limit ?? 10
|
|
});
|
|
|
|
export const cashTradeInfo = (tradeNo: string) =>
|
|
get<ApiResult<CashTradeInfoResult>>('user/v1/cash.trade.info', { trade_no: tradeNo });
|
|
|
|
export const cashTradePay = (data: CashTradePayPayload) =>
|
|
post<ApiResult<CashTradePayResult>>('user/v1/cash.trade', {
|
|
trade_no: data.trade_no,
|
|
platform: data.platform ?? 'mp-weixin',
|
|
remark: data.remark ?? ''
|
|
});
|