cashier/api/cashier.ts

95 lines
2.2 KiB
TypeScript

import { get, post } 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 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 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 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 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 });