UNPKG

qpay

Version:
70 lines (69 loc) 3.07 kB
import { QPayCreateInvoice, QPayCreateInvoiceResponse, QPayGetInvoiceResponse, Setup } from "./types"; /** * QPay class нь QPay API-тай харилцан. * Энэ нь нэвтрэх токен үүсгэх, шинэчлэх болон API хандалтын үйлдлүүдийг гүйцэтгэнэ. */ export declare class QPay { private static readonly host; private static readonly TWO_HOURS_IN_MS; private username; private password; private invoiceCode; private tokenRefreshPromise; accessToken: string; refreshToken: string; expiresIn: Date | null; refreshExpiresIn: Date | null; /** * QPay класыг шинэ instance үүсгэнэ. * @param setup - Хэрэглэгчийн нэр, нууц үг, нэхэмжлэхийн кодыг агуулна. */ constructor({ username, password, invoice_code }: Setup); /** * Access token дуусах дөхсөн эсэхийг шалгана. * Token дуусахаас 2 цагийн өмнө дуусна гэж үзнэ. */ isAccessTokenExpired(): boolean; /** * Refresh token дуусах дөхсөн эсэхийг шалгана. * Token дуусахаас 2 цагийн өмнө дуусна гэж үзнэ. */ isRefreshTokenExpired(): boolean; /** * Token response өгөгдлийг боловсруулж, class instance-д хадгална. */ private handleTokenResponse; /** * QPay API-аас шинэ нэвтрэх токен авна. */ generateAuthToken(): Promise<void>; /** * Refresh token ашиглан шинэ access token авна. */ refreshAuthToken(): Promise<void>; /** * Token-ий хүчинтэй эсэхийг шалгаж, шаардлагатай бол шинэчилнэ. * Олон дуудлага зэрэг орох үед давхцахаас сэргийлнэ. */ private checkAuth; /** * QPay API руу эрх бүхий HTTP хүсэлт илгээнэ. * @param endpointUrl - API-ийн endpoint (жишээ: "/v2/invoice") * @param method - HTTP method (get, post, put, delete) * @param data - Хүсэлтийн body (POST/PUT-д шаардлагатай) */ private sendRequestWithAuth; /** * QPay системд шинэ нэхэмжлэх үүсгэнэ. * @param qpayInvoice - Үүсгэх нэхэмжлэхийн мэдээлэл * @returns Үүсгэсэн нэхэмжлэхийн мэдээлэл */ createInvoice(qpayInvoice: QPayCreateInvoice): Promise<import("axios").AxiosResponse<QPayCreateInvoiceResponse, any, {}>>; /** * Нэхэмжлэхийн ID-аар нэхэмжлэхийн мэдээлэл авна. * @param id - Нэхэмжлэхийн ID * @returns Нэхэмжлэхийн дэлгэрэнгүй мэдээлэл */ getInvoice(id: string): Promise<import("axios").AxiosResponse<QPayGetInvoiceResponse, any, {}>>; } export * from "./types";