@htilssu/wowo
Version:
Module tương tác với ứng dụng e-wallet môn học CNPM-DAPM
181 lines • 5.24 kB
TypeScript
import { AxiosInstance } from "axios";
interface WalletDTO {
id: string;
balance: number;
currency: string;
}
export declare class WoWoWallet {
req: AxiosInstance;
private readonly apiKey;
private readonly baseUrl;
/**
* Tạo mới một instance của WoWoWallet
* @param apiKey API KEY được cung cấp bởi WowoWallet
* @param baseUrl URL của WowoWallet, mặc định là {@link https://api.wowo.htilssu.id.vn}
*/
constructor(apiKey: string, baseUrl?: string);
/**
* Tạo một đơn hàng mới
* @param props Thông tin đơn hàng
*/
createOrder(props: CreateOrderProps): Promise<OrderResponse>;
createWallet(): Promise<WalletDTO>;
deleteWallet(walletId: string): Promise<boolean>;
getWallet(walletId: string): Promise<WalletDTO>;
transferMoney(walletId: string, amount: number): Promise<boolean>;
getMoneyFromWallet(walletId: string, amount: number): Promise<boolean>;
/**
* Hủy đơn hàng của bạn
*
* Mã code trả về:
* - `200` Hủy đơn hàng thành công
* - `400` Đơn hàng không thể hủy do đơn hàng đã được thanh toán hoặc đã hủy hoặc không thể hủy do bussiness rule
* - `404` Đơn hàng không tồn tại
* @remarks Đơn hàng chỉ có thể hủy khi đơn hàng đang ở trạng thái `PENDING`
* @param orderId Mã đơn hàng cần hủy
*/
cancelOrder(orderId: string): Promise<WoWoResponse | OrderResponse>;
/**
* Lấy thông tin đơn hàng
*
* Mã code trả về:
* - `200` Lấy thông tin đơn hàng thành công
* - `404` Đơn hàng không tồn tại
* @param orderId Mã đơn hàng cần lấy thông tin
*/
getOrder(orderId: string): Promise<OrderResponse>;
/**
* Refund đơn hàng
* Mã code trả về:
* - `200` Refund đơn hàng thành công
* - `400` Đơn hàng không thể refund do đơn hàng đã hủy hoặc không thể refund do bussiness rule
* - `404` Đơn hàng không tồn tại
* @remarks Đơn hàng chỉ có thể refund khi đơn hàng đang ở trạng thái `SUCCESS`
* @param orderId Mã đơn hàng cần refund
* @param amount
*/
refundOrder(orderId: string, amount: number): Promise<OrderResponse>;
}
export type User = {
id: string;
username: string;
email: string;
phone: string;
fullName: string;
avatar: string;
role: string;
createdAt: string;
updatedAt: string;
};
export type WoWoResponse = {
message: string;
error?: string;
errorCode?: number;
};
/**
* Thông tin đơn hàng
*/
export type CreateOrderProps = {
/**
* Mã đơn hàng
*/
orderId?: string;
/**
* Tổng tiền của hóa đơn
*/
money: number;
/**
* Tên dịch vụ
*/
serviceName: string;
/**
* Danh sách sản phẩm
* @example
* [
* {
* name: "Product 1",
* amount: 1,
* price: 1000
* },
* {
* name: "Product 2",
* amount: 2,
* price: 2000
* }
* ]
*/
items?: Array<ItemProps>;
/**
* Thông tin callback
* @example
* {
* callbackUrl: "https://your-callback-url",
* returnUrl: "https://your-return-url"
* }
* @see {@link CallbackProps}
*/
callback: CallbackProps;
};
/**
* Thông tin sản phẩm
* @see {@link CreateOrderProps}
*/
export type ItemProps = {
/**
* Tên sản phẩm
*/
name: string;
/**
* Số lượng sản phẩm
* @remarks Số lượng sản phẩm phải lớn hơn 0
*/
amount: number;
/**
* Giá sản phẩm
* @remarks số tiền phải lớn hơn hoặc bằng 0
*/
unitPrice: number;
};
/**
* {@link callbackUrl} là URL callback dùng để cập nhật trạng thái đơn hàng của bạn khi người dùng thanh toán thành công
* `METHOD` bắt buộc là `POST` <br>
* {@link returnUrl} là url trang bạn muốn người dùng chuyển hướng đến khi người dùng thanh toán xong
* @see {@link CreateOrderProps}
*/
export type CallbackProps = {
/**
* URL callback dùng để cập nhật trạng thái đơn hàng của bạn khi người dùng thanh toán thành công
*/
successUrl?: string;
/**
* URL trang bạn muốn người dùng chuyển hướng đến khi người dùng thanh toán xong
*/
returnUrl?: string;
};
/**
* Response trả về khi tạo đơn hàng
*/
export type OrderResponse = {
/**
* Thái thái đơn hàng `SUCCESS`, `PENDING`, `REFUND`
*/
status: 'SUCCESS' | 'PENDING' | 'REFUND';
/**
* Thời gian tạo đơn hàng
*/
createdAt: string;
/**
* Số tiền giảm giá
*/
discountMoney: number;
/**
* Thời gian cập nhật đơn hàng lân cuối
*/
updatedAt: string;
/**
* Đường dẫn thanh toán
*/
checkoutUrl: string;
} & CreateOrderProps;
export {};
//# sourceMappingURL=WowoWallet.d.ts.map