Skip to content

Commit 6e187d0

Browse files
committed
feat(vindi): Adding initial support for Pix payments on Vindi integration
1 parent 9b27e90 commit 6e187d0

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

packages/apps/vindi/lib-mjs/vindi-create-transaction.mjs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,9 @@ export default async (modBody) => {
9898
}
9999
vindiBill.payment_method_code = 'credit_card';
100100
vindiBill.installments = installmentsNumber;
101+
} else if (params.payment_method.code === 'account_deposit') {
102+
vindiBill.payment_method_code = 'pix';
101103
} else {
102-
// banking billet
103104
vindiBill.payment_method_code = appData.banking_billet?.is_yapay
104105
? 'bank_slip_yapay' : 'bank_slip';
105106
}
@@ -222,7 +223,11 @@ export default async (modBody) => {
222223
transaction.banking_billet = {
223224
link: vindiCharge.print_url,
224225
};
226+
} else if (params.payment_method.code === 'account_deposit') {
227+
transaction.payment_link = vindiCharge.print_url || createdBill.url;
225228
}
229+
} else if (params.payment_method.code === 'account_deposit' && createdBill.url) {
230+
transaction.payment_link = createdBill.url;
226231
}
227232

228233
const vindiTransaction = vindiCharge.last_transaction;
@@ -247,7 +252,10 @@ export default async (modBody) => {
247252
updated_at: vindiBillRes.updated_at || vindiBillRes.created_at || new Date().toISOString(),
248253
current: parseVindiStatus(vindiCharge.status),
249254
};
250-
return { transaction };
255+
return {
256+
redirect_to_payment: Boolean(transaction.payment_link),
257+
transaction,
258+
};
251259
} catch (error) {
252260
// try to debug request error
253261
const errCode = 'VINDI_BILL_ERR';

packages/apps/vindi/lib-mjs/vindi-list-payments.mjs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,22 @@ export default async (modBody) => {
8888
}
8989

9090
// setup payment gateway objects
91-
['credit_card', 'banking_billet'].forEach((paymentMethod) => {
91+
['credit_card', 'banking_billet', 'account_deposit'].forEach((paymentMethod) => {
9292
paymentTypes.forEach((type) => {
9393
const methodConfig = appData[paymentMethod] || {};
9494
if (!methodConfig.disable) {
9595
const isCreditCard = paymentMethod === 'credit_card';
96-
let label = methodConfig.label || (isCreditCard ? 'Cartão de crédito' : 'Boleto bancário');
96+
const isPix = paymentMethod === 'account_deposit';
97+
let label = methodConfig.label;
98+
if (!label) {
99+
if (isCreditCard) {
100+
label = 'Cartão de crédito';
101+
} else if (isPix) {
102+
label = 'Pix';
103+
} else {
104+
label = 'Boleto bancário';
105+
}
106+
}
97107
if (type === 'recurrence' && appData.subscription_label) {
98108
label = appData.subscription_label + label;
99109
}

0 commit comments

Comments
 (0)