UNPKG

@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
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