@cloudcommerce/app-pagarme-v5 2.42.4 → 2.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/pagarme-cancel-expireds.d.ts +2 -0
- package/lib/pagarme-cancel-expireds.js +52 -0
- package/lib/pagarme-cancel-expireds.js.map +1 -0
- package/lib/pagarme-v5-events.d.ts +1 -0
- package/lib/pagarme-v5-events.js +5 -0
- package/lib/pagarme-v5-events.js.map +1 -1
- package/lib-mjs/functions-lib/pagarme/payment-subscription.mjs +3 -2
- package/package.json +6 -6
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import logger from 'firebase-functions/logger';
|
|
2
|
+
import api from '@cloudcommerce/api';
|
|
3
|
+
import getAppData from '@cloudcommerce/firebase/lib/helpers/get-app-data';
|
|
4
|
+
|
|
5
|
+
export const cancelExpiredOrders = async () => {
|
|
6
|
+
const appData = await getAppData('pagarMeV5', ['data']);
|
|
7
|
+
const pixValidityMins = appData.account_deposit?.due_time;
|
|
8
|
+
const pixValidityMs = pixValidityMins * 60 * 1000;
|
|
9
|
+
const bolValidityDays = appData.banking_billet?.days_due_date;
|
|
10
|
+
const bolValidityMs = bolValidityDays * 24 * 60 * 60 * 1000;
|
|
11
|
+
if (!pixValidityMs && !bolValidityMs) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const d = new Date();
|
|
15
|
+
d.setDate(d.getDate() - 30);
|
|
16
|
+
const endpoint = 'orders'
|
|
17
|
+
+ '?fields=_id,transactions'
|
|
18
|
+
+ '&transactions.app.intermediator.code=pagarme'
|
|
19
|
+
+ '&financial_status.current=pending'
|
|
20
|
+
+ `&updated_at>=${d.toISOString()}`
|
|
21
|
+
+ '&limit=500';
|
|
22
|
+
const { data: { result: orders } } = await api.get(endpoint);
|
|
23
|
+
logger.info(`${orders.length} orders listed`);
|
|
24
|
+
const now = Date.now();
|
|
25
|
+
orders.forEach(({ _id, transactions }) => {
|
|
26
|
+
const transaction = transactions?.find(({ app }) => {
|
|
27
|
+
return app?.intermediator?.code === 'pagarme';
|
|
28
|
+
});
|
|
29
|
+
if (!transaction) return;
|
|
30
|
+
const transactionDate = transaction.created_at && new Date(transaction.created_at);
|
|
31
|
+
if (!transactionDate) return;
|
|
32
|
+
const paymentMethod = transaction.payment_method.code;
|
|
33
|
+
if (paymentMethod === 'account_deposit') {
|
|
34
|
+
if (!pixValidityMs) return;
|
|
35
|
+
if (now - transactionDate.getTime() < pixValidityMs) return;
|
|
36
|
+
} else if (paymentMethod === 'banking_billet') {
|
|
37
|
+
if (!bolValidityMs) return;
|
|
38
|
+
if (now - transactionDate.getTime() < bolValidityMs) return;
|
|
39
|
+
} else {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
api.post(`orders/${_id}/payments_history`, {
|
|
43
|
+
transaction_id: transaction._id,
|
|
44
|
+
date_time: new Date().toISOString(),
|
|
45
|
+
status: 'voided',
|
|
46
|
+
flags: ['pagarme-expired'],
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export default cancelExpiredOrders;
|
|
52
|
+
// # sourceMappingURL=pagarme-cancel-expireds.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagarme-cancel-expireds.js","sourceRoot":"","sources":["../src/pagarme-cancel-expireds.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,UAAU,MAAM,kDAAkD,CAAC;AAE1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;IAC5C,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1D,MAAM,aAAa,GAAG,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC;IAClD,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC;IAC9D,MAAM,aAAa,GAAG,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,OAAO;IACT,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,QAAQ;UACrB,0BAA0B;UAC1B,8CAA8C;UAC9C,mCAAmC;UACnC,gBAAgB,CAAC,CAAC,WAAW,EAAE,EAAE;UACjC,YAAkC,CAAC;IACvC,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,gBAAgB,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE;QACvC,MAAM,WAAW,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;YACjD,OAAO,GAAG,EAAE,aAAa,EAAE,IAAI,KAAK,SAAS,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACnF,IAAI,CAAC,eAAe;YAAE,OAAO;QAC7B,MAAM,aAAa,GAAG,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC;QACtD,IAAI,aAAa,KAAK,iBAAiB,EAAE,CAAC;YACxC,IAAI,CAAC,aAAa;gBAAE,OAAO;YAC3B,IAAI,GAAG,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,aAAa;gBAAE,OAAO;QAC9D,CAAC;aAAM,IAAI,aAAa,KAAK,gBAAgB,EAAE,CAAC;YAC9C,IAAI,CAAC,aAAa;gBAAE,OAAO;YAC3B,IAAI,GAAG,GAAG,eAAe,CAAC,OAAO,EAAE,GAAG,aAAa;gBAAE,OAAO;QAC9D,CAAC;aAAM,CAAC;YACN,OAAO;QACT,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,mBAAmB,EAAE;YACzC,cAAc,EAAE,WAAW,CAAC,GAAG;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,CAAC,iBAAiB,CAAC;SAC0B,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
package/lib/pagarme-v5-events.js
CHANGED
|
@@ -5,6 +5,7 @@ import config from '@cloudcommerce/firebase/lib/config';
|
|
|
5
5
|
import { createAppEventsFunction } from '@cloudcommerce/firebase/lib/helpers/pubsub';
|
|
6
6
|
import handleApiEvent from '../lib-mjs/events-to-pagarme5.mjs';
|
|
7
7
|
import handlePagarmeV5Webhook from '../lib-mjs/pagarme5-webhook.mjs';
|
|
8
|
+
import cancelExpiredOrders from './pagarme-cancel-expireds.js';
|
|
8
9
|
|
|
9
10
|
const { httpsFunctionOptions } = config.get();
|
|
10
11
|
|
|
@@ -20,5 +21,9 @@ export const pagarmev5 = {
|
|
|
20
21
|
handlePagarmeV5Webhook(req, res);
|
|
21
22
|
}
|
|
22
23
|
}),
|
|
24
|
+
cronCancelExpireds: functions
|
|
25
|
+
.region(config.get().httpsFunctionOptions.region)
|
|
26
|
+
.pubsub.schedule(process.env.CRONTAB_PAGARME_CANCEL_EXPIREDS || '22 * * * *')
|
|
27
|
+
.onRun(() => cancelExpiredOrders()),
|
|
23
28
|
};
|
|
24
29
|
// # sourceMappingURL=pagarme-v5-events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagarme-v5-events.js","sourceRoot":"","sources":["../src/pagarme-v5-events.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,MAAM,MAAM,oCAAoC,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"pagarme-v5-events.js","sourceRoot":"","sources":["../src/pagarme-v5-events.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,OAAO,kCAAkC,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,MAAM,MAAM,oCAAoC,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,sBAAsB,MAAM,iCAAiC,CAAC;AACrE,OAAO,mBAAmB,MAAM,2BAA2B,CAAC;AAE5D,MAAM,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,YAAY,EAAE,uBAAuB,CAAC,WAAW,EAAE,cAAc,CAAC;IAElE,OAAO,EAAE,SAAS;SACf,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC;SACnC,OAAO,CAAC,oBAAoB,CAAC;SAC7B,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5B,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1B,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC;IAEJ,kBAAkB,EAAE,SAAS;SAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC;SAChD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,YAAY,CAAC;SAC5E,KAAK,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;CACtC,CAAC"}
|
|
@@ -197,12 +197,13 @@ const createPayment = async ({
|
|
|
197
197
|
pagarmeOrder.items = [];
|
|
198
198
|
|
|
199
199
|
items.forEach(async (item) => {
|
|
200
|
-
|
|
200
|
+
const itemAmount = Math.floor((item.final_price || item.price) * 100);
|
|
201
|
+
if (itemAmount > 0 && item.quantity > 0) {
|
|
201
202
|
const itemOrder = {
|
|
202
203
|
quantity: item.quantity,
|
|
203
204
|
description: item.name || item.variation_id || item.product_id,
|
|
204
205
|
code: item.sku?.substring(0, 52) || item.variation_id || item.product_id,
|
|
205
|
-
amount:
|
|
206
|
+
amount: itemAmount,
|
|
206
207
|
};
|
|
207
208
|
pagarmeOrder.items.push(itemOrder);
|
|
208
209
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcommerce/app-pagarme-v5",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.43.0",
|
|
5
5
|
"description": "e-com.plus Cloud Commerce app to integrate Pagar.me API v5 with recurring payments",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -29,14 +29,14 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@ecomplus/utils": "1.5.0-rc.6",
|
|
31
31
|
"axios": "^1.9.0",
|
|
32
|
-
"firebase-admin": "^13.
|
|
32
|
+
"firebase-admin": "^13.4.0",
|
|
33
33
|
"firebase-functions": "^6.3.2",
|
|
34
|
-
"@cloudcommerce/
|
|
35
|
-
"@cloudcommerce/
|
|
34
|
+
"@cloudcommerce/firebase": "2.43.0",
|
|
35
|
+
"@cloudcommerce/api": "2.43.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@cloudcommerce/
|
|
39
|
-
"@cloudcommerce/
|
|
38
|
+
"@cloudcommerce/types": "2.43.0",
|
|
39
|
+
"@cloudcommerce/test-base": "2.43.0"
|
|
40
40
|
},
|
|
41
41
|
"scripts": {
|
|
42
42
|
"build": "bash scripts/build.sh",
|