UNPKG

@mnpay/hipay

Version:
208 lines (207 loc) 9.82 kB
var z = Object.defineProperty; var D = (e, c, o) => c in e ? z(e, c, { enumerable: !0, configurable: !0, writable: !0, value: o }) : e[c] = o; var y = (e, c, o) => D(e, typeof c != "symbol" ? c + "" : c, o); import S from "axios"; const j = "v2"; var d = /* @__PURE__ */ ((e) => (e.accessToken = "/:version/auth/token", e.cardGet = "/:version/card/get/:cardId", e.cardAdd = "/:version/card/init", e.cardRemove = "/:version/card/remove/:cardId", e.payment = "/:version/payment", e.checkout = "/checkout", e.getCheckout = "/checkout/get/:checkoutId", e))(d || {}), n = /* @__PURE__ */ ((e) => (e.accessToken = "accessToken", e.cardGet = "cardGet", e.cardAdd = "cardAdd", e.cardRemove = "cardRemove", e.payment = "payment", e.checkout = "checkout", e.getCheckout = "getCheckout", e))(n || {}), i = /* @__PURE__ */ ((e) => (e.accessToken = "[Hipay] токен авах үед алдаа гарлаа", e.cardGet = "[Hipay] кард лавлах үед алдаа гарлаа", e.cardAdd = "[Hipay] кард нэмэх үед алдаа гарлаа", e.cardRemove = "[Hipay] кард хасах үед алдаа гарлаа", e.payment = "[Hipay] төлбөрийн гүйлгээ хийх үед алдаа гарлаа", e.checkout = "[Hipay] төлбөрийн нэхэмжлэл үүсгэх үед алдаа гарлаа", e.getCheckout = "[Hipay] төлбөрийн нэхэмжлэл лавлах үед алдаа гарлаа", e))(i || {}), R = /* @__PURE__ */ ((e) => (e.mnt = "MNT", e.usd = "USD", e))(R || {}); const m = { [n.accessToken]: { method: "post", url: d.accessToken, dataTransferKey: "data", errorTitle: i.accessToken }, [n.cardGet]: { method: "get", url: d.cardGet, dataTransferKey: "pathParams", errorTitle: i.cardGet }, [n.cardAdd]: { method: "post", url: d.cardAdd, dataTransferKey: "data", errorTitle: i.cardAdd }, [n.cardRemove]: { method: "post", url: d.cardRemove, dataTransferKey: "pathParams", errorTitle: i.cardRemove }, [n.payment]: { method: "post", url: d.payment, dataTransferKey: "data", errorTitle: i.payment }, [n.checkout]: { method: "post", url: d.checkout, dataTransferKey: "data", errorTitle: i.checkout }, [n.getCheckout]: { method: "get", url: d.getCheckout, dataTransferKey: "pathParams", errorTitle: i.getCheckout } }; class p extends Error { constructor(o, r = { code: 0, description: "unexpected error", details: [] }, s) { const a = m[o], l = `${s ?? a.errorTitle}: ${JSON.stringify(r)}`; super(l); y(this, "requestName"); y(this, "responseData"); y(this, "title"); this.requestName = o, this.title = a.errorTitle, this.responseData = r; } } const U = (e, c) => { if (c.code === 1 || c.code === "1") return c; throw c.code === "0" || c.code === 0 ? new p(e, c) : new p(e); }, f = (e, c) => { const o = /:([a-zA-Z0-9]+)/g; return e.replace(o, (r, s) => (typeof (c == null ? void 0 : c[s]) == "string" || typeof (c == null ? void 0 : c[s]) == "number" ? c[s] : "").toString()); }, k = (e, c, o, r) => { const s = m[e], a = m[e].method.toUpperCase(), l = o.config.version; return async (T) => { const h = (r == null ? void 0 : r(T)) ?? T, g = f(s.url, { ...h, version: l }); return U(e, (await (async () => { try { return await c({ method: a, url: g, ...s.dataTransferKey === "data" ? { data: h } : {}, ..."access_token" in h ? { headers: { Authorization: `Bearer ${h.access_token}` } } : {} }); } catch { throw new p(e); } })()).data); }; }, J = (e) => { const { baseURL: c } = e, o = S.create({ baseURL: c }), r = { config: e }, s = k(n.accessToken, o, r, (t) => ({ ...t, client_id: (t == null ? void 0 : t.client_id) ?? e.client_id, client_secret: (t == null ? void 0 : t.client_secret) ?? e.client_secret, code: (t == null ? void 0 : t.code) ?? e.code, grant_type: (t == null ? void 0 : t.grant_type) ?? "authorization_code", redirect_uri: (t == null ? void 0 : t.redirect_uri) ?? "" })), a = async (t) => await s(t ?? e), l = k(n.cardGet, o, r), T = k(n.getCheckout, o, r), h = k(n.cardRemove, o, r), g = k(n.cardAdd, o, r, (t) => ({ ...t, entityId: t.entityId ?? e.client_id, redirect_uri: t.redirect_uri ?? "", return_uri: t.return_uri ?? "" })), A = k(n.checkout, o, r, (t) => ({ ...t, entityId: t.entityId ?? e.client_id, currency: t.currency ?? R.mnt })), $ = k(n.payment, o, r, (t) => { var u; return { ...t, access_token: t.access_token ?? ((u = r.token) == null ? void 0 : u.access_token) ?? "", entityId: t.entityId ?? e.client_id, ipaddress: t.ipaddress ?? "" }; }), w = async (t) => { var C, x, I, G, K; const u = /* @__PURE__ */ new Date(), _ = (C = r.token) != null && C.expires ? new Date((x = r.token) == null ? void 0 : x.expires) : void 0, v = u.valueOf() + 5 * 60 * 1e3 < ((_ == null ? void 0 : _.valueOf()) ?? 0); if ((I = r.token) != null && I.access_token && v) return { access_token: (G = r.token) == null ? void 0 : G.access_token, expires: (K = r.token) == null ? void 0 : K.access_token }; const { access_token: O, expires: P } = await s(t ?? e); r.token = { access_token: O, expires: P * 1e3 }; }; return o.interceptors.request.use( async (t) => { var v; const u = f(d.accessToken, e); return !((v = t.url) != null && v.startsWith(u)) && (await w(), r.token && (t.headers.Authorization = `Bearer ${r.token.access_token}`)), t; }, async (t) => await Promise.reject(t) ), { /** * Хандалтын токен авах (get auth token) * Байгууллага системд хандахдаа хамгийн түрүүнд хийх үйлдэл гэж ойлгож болно. * Уг хүсэлтийн хариунд ирсэн хандалтын токений (access_token) тусламжтай дараа * дараагийн үйлдлийг хийх боломжтой болно. */ getAccessToken: a, /** * Хандалтын токен дуудаж хадгалах. Нэг дуудсан тохиолдолд дахиж дуудах шаардлагагүй. * Байгууллага системд хандахдаа хамгийн түрүүнд хийх үйлдэл гэж ойлгож болно. * Уг хүсэлтийн хариунд ирсэн хандалтын токений (access_token) тусламжтай дараа * дараагийн үйлдлийг хийх боломжтой болно. */ loadAccessToken: w, /** * Карт лавлах (Get card) * Карт нэмэх хүсэлт амжилттай болсоны дараагаар тухайн карт бүртгэлийн дугаараар картын дэлгэрэнгүй мэдээллийг авна. */ getCard: l, /** Карт нэмэх (Card add) * Картын бүртгэлийн дугаар авах хүсэлт. * хүсэлтээс ирсэн {initId} утгаар форм авна. * Карт нэмэх хүсэлтийг дуудах Hi-Pay-ийн карт нэмэх цонх гарч ирэх бөгөөд тус цонхны тусламжтай * картын мэдээллийг оруулж и-пин кодоор баталгаажуулсны дараа карт нэмэгдэнэ. */ addCard: g, /** * Карт хасах (Remove card) * Hipay системээр үүсгүүлсэн картын токенийг устгах зориулалттай. */ removeCard: h, /** * Төлбөрийн нэхэмжлэх үүсгэх (Checkout) * Байгууллагын программаас барааны мэдээлэл болон худалдан авалтын мэдээллүүдийг Hi-Pay-руу илгээнэ. * Checkout сервисийг дуудахад амжилттай болсон тохиолдолд checkoutId (дахин давтагдахгүй) дугаар * буцаах бөгөөд уг дугаараар төлбөрийн гүйлгээ хийх хүсэлтийг илгээнэ. * Жич. Checkout утгыг Order буюу захиалга, нэхэмжлэх гэж ойлгоно. * @param {'MNT' | 'USD'} params.currency - default value = MNT */ checkout: A, /** * Төлбөр нэхэмжлэх лавлах (get checkout) * Тухайн төлбөр төлөгдсөн эсэхийг нэхэмжлэхийн дугаар ашиглан лавлах * @param {string} params.checkoutId - Нэхэмжлэхийн (checkout) дугаар */ getCheckout: T, /** * Төлбөрийн гүйлгээ хийх (Payment) * Төлбөрийн гүйлгээ хийх хүсэлтэд өмнө нь үүсгэсэн төлбөрийн нэхэмжлэхийг (checkout) төлөх үйлдэл хийгдэнэ. * Төлбөрийн гүйлгээний хүсэлтэд ашиглагдах токен талбарт Байгууллагын токен-ийг байршуулж ашиглана. */ payment: $, /** Hi-Pay-ийн карт нэмэх цонх */ getCardAddFormUrl: () => `${e.baseURL}/${e.version}/card/form`, resetToken: () => { r.token = void 0; } }; }; export { R as HipayCurrency, p as HipayError, i as HipayErrorTitle, n as HipayRequestName, d as HipayUrl, J as createHipay, k as createHipayRequestHandler, j as defaultVersion, f as getHipayUrlPath, m as requestConfig };