From 86b9c0aff6ec4bdca8653b3efdbb27aee5d6e47a Mon Sep 17 00:00:00 2001 From: Leonardo Matos Date: Tue, 21 Jan 2025 18:17:52 -0300 Subject: [PATCH] fix(mercadopago): Support settings custom Pix expiration from app data config --- .../mercadopago/src/mp-create-transaction.ts | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/packages/apps/mercadopago/src/mp-create-transaction.ts b/packages/apps/mercadopago/src/mp-create-transaction.ts index f0132f755..ebd8bd9d6 100644 --- a/packages/apps/mercadopago/src/mp-create-transaction.ts +++ b/packages/apps/mercadopago/src/mp-create-transaction.ts @@ -42,7 +42,7 @@ export default async (appData: AppModuleBody) => { const { application, storeId } = appData; const params = appData.params as CreateTransactionParams; // app configured options - const configApp = { ...application.data, ...application.hidden_data }; + const appConfig = { ...application.data, ...application.hidden_data }; const notificationUrl = `${baseUri}/mercadopago-webhook`; let token: string | undefined; @@ -133,7 +133,19 @@ export default async (appData: AppModuleBody) => { }, ); - const payment = { + const mpAccessToken = appConfig.mp_access_token; + if (typeof mpAccessToken === 'string' && mpAccessToken) { + process.env.MERCADOPAGO_TOKEN = mpAccessToken; + } + if (!process.env.MERCADOPAGO_TOKEN) { + logger.warn('Missing Mercadopago access token'); + return { + status: 409, + error: 'CREATE_TRANSACTION_ERR', + message: 'The MERCADOPAGO_TOKEN is not defined in the environment variables', + }; + } + const payment: Record = { payer: { type: 'customer', email: buyer.email, @@ -149,7 +161,7 @@ export default async (appData: AppModuleBody) => { description: `Pedido #${params.order_number} de ${buyer.fullname}`.substring(0, 60), payment_method_id: paymentMethodId, token, - statement_descriptor: configApp.statement_descriptor || `${params.domain}_MercadoPago`, + statement_descriptor: appConfig.statement_descriptor || `${params.domain}_MercadoPago`, installments: params.installments_number || 1, notification_url: notificationUrl, additional_info: additionalInfo, @@ -158,17 +170,10 @@ export default async (appData: AppModuleBody) => { ecom_order_id: orderId, }, }; - const mpAccessToken = configApp.mp_access_token; - if (typeof mpAccessToken === 'string' && mpAccessToken) { - process.env.MERCADOPAGO_TOKEN = mpAccessToken; - } - if (!process.env.MERCADOPAGO_TOKEN) { - logger.warn('Missing Mercadopago access token'); - return { - status: 409, - error: 'CREATE_TRANSACTION_ERR', - message: 'The MERCADOPAGO_TOKEN is not defined in the environment variables', - }; + if (isPix && appConfig.account_deposit?.exp_minutes) { + const d = new Date(); + d.setMinutes(d.getMinutes() + appConfig.account_deposit.exp_minutes); + payment.date_of_expiration = d.toISOString(); } try {