UNPKG

dry-node

Version:

Initialiseur de structure Node Express typée et modulaire

61 lines (54 loc) 2.05 kB
const axios = require("axios"); async function DryPaymentMomoFunction(phoneNumber, amount, currency) { try { const accessToken = await generateAccessToken(); console.log("presned-1") const response = await axios.post( `${MOMO_BASE_URL}/collection/v1_0/requesttopay`, { amount, currency, externalId: "123456", payer: { partyIdType: "MSISDN", partyId: phoneNumber, }, payerMessage: "Paiement par MoMo", payeeNote: "Merci pour votre paiement", }, { headers: { Authorization: `Bearer ${accessToken}`, "X-Reference-Id": Math.random().toString(36).substring(2), // ID unique "X-Target-Environment": MOMO_TARGET_ENV, "Ocp-Apim-Subscription-Key": MOMO_SUBSCRIPTION_KEY, }, } ); return {success: true, data: response.data} } catch (error) { console.error("Erreur lors de l'initiation du paiement :", error.response.data); return {success: false, error: error.message} } } const { MOMO_API_KEY, MOMO_SUBSCRIPTION_KEY, MOMO_TARGET_ENV, MOMO_BASE_URL } = process.env; const generateAccessToken = async () => { try { const response = await axios.post( `${MOMO_BASE_URL}/collection/token/`, {}, { headers: { Authorization: `Basic ${Buffer.from( `${MOMO_API_KEY}:${MOMO_SUBSCRIPTION_KEY}` ).toString("base64")}`, }, } ); return response.data.access_token; } catch (error) { console.error("Erreur lors de la génération du token :", error.response.data); throw error; } }; module.exports = DryPaymentMomoFunction;