UNPKG

afrimomo-sdk

Version:

A unified SDK for African payment providers

77 lines 2.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PayChanguNetworkManager = void 0; const axios_1 = __importDefault(require("axios")); const logger_1 = require("@afrimomo-sdk/utils/logger"); class PayChanguNetworkManager { axiosInstance; constructor(secretKey) { const headers = {}; if (secretKey) { headers.Authorization = `Bearer ${secretKey}`; } this.axiosInstance = axios_1.default.create({ baseURL: "https://api.paychangu.com", headers, }); this.setupInterceptors(); } async initiatePayment(data) { try { logger_1.logger.info("Initiating PayChangu payment:", data); const response = await this.axiosInstance.post("/payment", data, { headers: { Accept: "application/json", }, }); return response.data; } catch (error) { logger_1.logger.error("Error initiating PayChangu payment:", error); if (axios_1.default.isAxiosError(error)) { return { message: error.response?.data?.message || "An error occurred while processing the payment", status: "error", }; } return { message: "An unexpected error occurred", status: "error", }; } } async verifyPayment(txRef) { try { logger_1.logger.info("Verifying PayChangu payment:", txRef); const response = await this.axiosInstance.get(`/verify-payment/${txRef}`, { headers: { Accept: "application/json", }, }); return response.data; } catch (error) { logger_1.logger.error("Error verifying PayChangu payment:", error); if (axios_1.default.isAxiosError(error)) { return { message: error.response?.data?.message || "An error occurred while verifying the payment", status: "error", }; } return { message: "An unexpected error occurred", status: "error", }; } } setupInterceptors() { this.axiosInstance.interceptors.response.use((response) => response, (error) => Promise.reject(error)); } } exports.PayChanguNetworkManager = PayChanguNetworkManager; //# sourceMappingURL=network.js.map