afrimomo-sdk
Version:
A unified SDK for African payment providers
77 lines • 2.76 kB
JavaScript
;
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