qpay
Version:
QPay API integration
70 lines (69 loc) • 3.07 kB
TypeScript
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";