@cloudcommerce/app-galaxpay 0.8.7 → 0.9.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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @cloudcommerce/app-galaxpay@0.8.6 build /home/leo/code/ecomplus/cloud-commerce/packages/apps/galaxpay
2
+ > @cloudcommerce/app-galaxpay@0.8.7 build /home/leo/code/ecomplus/cloud-commerce/packages/apps/galaxpay
3
3
  > bash scripts/build.sh
4
4
 
@@ -3,7 +3,7 @@ import { getFirestore } from 'firebase-admin/firestore';
3
3
  import config from '@cloudcommerce/firebase/lib/config';
4
4
  import GalaxpayAxios from '../galaxpay/auth/create-access.js';
5
5
 
6
- const collectionSubscription = getFirestore().collection('subscriptions');
6
+ const collectionSubscription = getFirestore().collection('galaxpaySubscriptions');
7
7
  const handleApiEvent = async ({
8
8
  evName, apiEvent, apiDoc, app,
9
9
  }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"events-to-galaxpay.js","sourceRoot":"","sources":["../../../src/functions-lib/ecom/events-to-galaxpay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events-to-galaxpay.js","sourceRoot":"","sources":["../../../src/functions-lib/ecom/events-to-galaxpay.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { getFirestore } from 'firebase-admin/firestore';
3
3
  import logger from 'firebase-functions/logger';
4
4
  import config from '@cloudcommerce/firebase/lib/config';
5
5
  import { parseStatus, parsePeriodicityToEcom, gerateId } from '../all-parses.js';
6
+ import GalaxpayAxios from './auth/create-access.js';
6
7
  import { updateValueSubscription, checkAmountItemsOrder } from './update-subscription.js';
7
8
 
8
9
  const collectionSubscription = getFirestore().collection('galaxpaySubscriptions');
@@ -17,20 +18,16 @@ const getApp = async () => {
17
18
  });
18
19
  });
19
20
  };
20
- const checkStatus = (financialStatus, GalaxPayTransaction) => {
21
- if (financialStatus.current === parseStatus(GalaxPayTransaction.status)) {
22
- return true;
23
- }
24
- if ((financialStatus.current === 'paid' || financialStatus.current === 'authorized')
25
- && parseStatus(GalaxPayTransaction.status) !== 'refunded') {
21
+ const checkStatusIsEqual = (financialStatus, galaxPayTransactionStatus) => {
22
+ if (financialStatus.current === parseStatus(galaxPayTransactionStatus)) {
26
23
  return true;
27
24
  }
28
25
  return false;
29
26
  };
30
- const checkStatusNotValid = (status) => {
27
+ const checkStatusPaid = (status) => {
31
28
  const parsedStatus = parseStatus(status);
32
- // logger.log('>> Status (', status, ')=> ', parsedStatus);
33
- if (parsedStatus === 'unauthorized' || parsedStatus === 'refunded' || parsedStatus === 'voided') {
29
+ logger.log(`>> Status is ${status} => ${parsedStatus}`);
30
+ if (parsedStatus === 'paid') {
34
31
  return true;
35
32
  }
36
33
  return false;
@@ -55,9 +52,10 @@ const findOrderByTransactionId = (transactionId) => {
55
52
  });
56
53
  };
57
54
  const findOrderById = async (orderId) => new Promise((resolve) => {
58
- api.get(`orders/${orderId}?fields=transactions,financial_status`).then(({ data: order }) => {
59
- resolve(order);
60
- });
55
+ api.get(`orders/${orderId}`)
56
+ .then(({ data: order }) => {
57
+ resolve(order);
58
+ });
61
59
  });
62
60
  const createTransaction = async (res, subscriptionLabel, plan, orderNumber, galaxpayFristTransactionId, GalaxPayTransaction, GalaxPaySubscription, GalaxPayTransactionValue, originalOrderId) => {
63
61
  if (galaxpayFristTransactionId !== GalaxPayTransaction.galaxPayId) {
@@ -153,9 +151,6 @@ const handleWehook = async (req, res) => {
153
151
  const GalaxPayTransactionValue = GalaxPayTransaction.value / 100;
154
152
  logger.log(`> (App GalaxPay) WebHook ${type}, Body ${JSON.stringify(galaxpayHook)}, quantity:
155
153
  ${GalaxPaySubscriptionQuantity}, status: ${GalaxPayTransaction.status} <`);
156
- // if (galaxpayHook.confirmHash) {
157
- // logger.log('> ', galaxpayHook.confirmHash);
158
- // }
159
154
  try {
160
155
  if (type === 'transaction.updateStatus') {
161
156
  const documentSnapshot = await collectionSubscription.doc(originalOrderId).get();
@@ -165,30 +160,69 @@ const handleWehook = async (req, res) => {
165
160
  const {
166
161
  galaxpayFristTransactionId, plan, orderNumber, subscriptionLabel,
167
162
  } = docSubscription.data();
163
+ let galaxPayTransactionStatus;
164
+ let galaxpaySubscriptionStatus;
165
+ let transactionCreatedAt;
166
+ const app = await getApp();
167
+ try {
168
+ // check subscription and transaction status before in galaxpay
169
+ const galaxpayAxios = new GalaxpayAxios({
170
+ galaxpayId: app.hidden_data?.galaxpay_id,
171
+ galaxpayHash: app.hidden_data?.galaxpay_hash,
172
+ });
173
+ await galaxpayAxios.preparing;
174
+ if (galaxpayAxios.axios) {
175
+ let { data } = await galaxpayAxios.axios
176
+ .get(`/transactions?galaxPayIds=${GalaxPayTransaction.galaxPayId}&startAt=0&limit=1`);
177
+ galaxPayTransactionStatus = data.Transactions[0]?.status;
178
+ const dateTimeTransaction = data.Transactions[0]?.createdAt;
179
+ transactionCreatedAt = dateTimeTransaction && new Date(`${dateTimeTransaction} UTC-3`);
180
+ logger.log(`>> Transaction status: ${galaxPayTransactionStatus}`);
181
+ data = (await galaxpayAxios.axios
182
+ .get(`/subscriptions?myIds=${originalOrderId}&startAt=0&limit=1`)).data;
183
+ galaxpaySubscriptionStatus = data.Subscriptions[0]?.status;
184
+ logger.log(`>> Subscription status: ${galaxpaySubscriptionStatus}`);
185
+ }
186
+ } catch (err) {
187
+ logger.warn(`galaxpay webhook Error: get Transaction/Subscription in Galaxpay => ${err?.message}`);
188
+ }
168
189
  if (galaxpayFristTransactionId === GalaxPayTransaction.galaxPayId) {
169
190
  // update frist payment
170
191
  const order = await findOrderById(originalOrderId);
171
192
  // Update value Subscription in GalaxPay
172
193
  // logger.log('plan-> ', JSON.stringify(plan));
173
- // not update subscripton canceled
174
- if (!checkStatusNotValid(GalaxPayTransaction.status) && order.items) {
175
- const app = await getApp();
176
- await updateValueSubscription(app, originalOrderId, order.amount, order.items, plan);
194
+ // subscripton is paid
195
+ if (checkStatusPaid(galaxPayTransactionStatus) && order.items) {
196
+ const oldSubscriptionValue = docSubscription.data()?.value
197
+ || ({ ...order.amount }.total * 100);
198
+ const newValue = checkAmountItemsOrder({ ...order.amount }, [...order.items], { ...plan });
199
+ if (newValue && newValue !== oldSubscriptionValue) {
200
+ await updateValueSubscription(app, originalOrderId, order.amount, order.items, plan);
201
+ collectionSubscription.doc(originalOrderId)
202
+ .set({
203
+ updatedAt: new Date().toISOString(),
204
+ value: newValue,
205
+ }, { merge: true })
206
+ .catch(logger.error);
207
+ }
177
208
  }
178
209
  // logger.log('ORDER: ', JSON.stringify(order.amount), ' **');
179
210
  // logger.log('> order ', order)
180
211
  if (order.financial_status
181
- && checkStatus(order.financial_status, GalaxPayTransaction)) {
212
+ && checkStatusIsEqual(order.financial_status, galaxPayTransactionStatus)) {
213
+ // check status is equal
182
214
  return res.sendStatus(200);
183
215
  }
184
216
  if (order.transactions) {
185
217
  // update payment
186
218
  const transactionId = order.transactions[0]._id;
219
+ let notificationCode = `;${GalaxPayTransaction.tid || ''};`;
220
+ notificationCode += `${GalaxPayTransaction.authorizationCode || ''}`;
187
221
  const bodyPaymentHistory = {
188
- date_time: new Date().toISOString(),
189
- status: parseStatus(GalaxPayTransaction.status),
222
+ date_time: transactionCreatedAt || new Date().toISOString(),
223
+ status: parseStatus(galaxPayTransactionStatus),
190
224
  transaction_id: transactionId,
191
- notification_code: `${type};${galaxpayHook.webhookId}`,
225
+ notification_code: `${type};${galaxpayHook.webhookId}${notificationCode}`,
192
226
  flags: ['GalaxPay'],
193
227
  }; // TODO: incompatible type=> amount and status;;
194
228
  await api.post(`orders/${order._id}/payments_history`, bodyPaymentHistory);
@@ -202,36 +236,66 @@ const handleWehook = async (req, res) => {
202
236
  }
203
237
  } else {
204
238
  /*
205
- add order, because recurrence creates all transactions in the
206
- first transaction when quantity is non-zero,search for the order by ID,
207
- if not found, create the transaction, and if found, check if it will be
208
- necessary to update the transaction status
209
- */
239
+ add order, because recurrence creates all transactions in the
240
+ first transaction when quantity is non-zero,search for the order by ID,
241
+ if not found, create the transaction, and if found, check if it will be
242
+ necessary to update the transaction status
243
+ */
210
244
  const transactionId = String(gerateId(GalaxPayTransaction.galaxPayId));
211
245
  const { result } = await findOrderByTransactionId(transactionId);
212
246
  if (!result || !result.length) {
213
247
  // logger.log('> Not found Transaction in API')
214
- if (!checkStatusNotValid(GalaxPayTransaction.status)
248
+ if (checkStatusPaid(galaxPayTransactionStatus)
215
249
  && checkPayDay(GalaxPayTransaction.payday)) {
216
250
  // necessary to create order
217
251
  return createTransaction(res, subscriptionLabel, plan, orderNumber, galaxpayFristTransactionId, GalaxPayTransaction, GalaxPaySubscription, GalaxPayTransactionValue, originalOrderId);
218
252
  }
219
- // TODO: status 400 or 500?
220
- return res.status(404).send('Status or checkPayDay invalid');
253
+ // fetches the original order again to avoid delay from other webhooks
254
+ let originalOrder;
255
+ try {
256
+ originalOrder = await findOrderById(originalOrderId);
257
+ } catch (err) {
258
+ logger.warn(`Original Order not found (${originalOrderId}) `);
259
+ res.status(404).send({ message: 'Original Order not found' });
260
+ }
261
+ logger.log(`>> Status Original Order: ${originalOrder?.status} `);
262
+ if (originalOrder && galaxpaySubscriptionStatus === 'canceled'
263
+ && originalOrder?.status !== 'cancelled') {
264
+ // console.log('>> galaxpay webhook: Subscription canceled at galapay');
265
+ try {
266
+ await api.patch(`orders/${originalOrderId}`, { status: 'cancelled' });
267
+ collectionSubscription.doc(originalOrderId)
268
+ .set({
269
+ status: 'cancelled',
270
+ updatedAt: new Date().toISOString(),
271
+ }, { merge: true })
272
+ .catch(logger.error);
273
+ return res.sendStatus(200);
274
+ } catch (err) {
275
+ logger.error(err);
276
+ return res.sendStatus(400);
277
+ }
278
+ } else {
279
+ logger.log(`>> galaxpay webhook: Status or checkPayDay invalid => Payday: ${GalaxPayTransaction.payday} now: ${new Date().toISOString()}`);
280
+ return res.status(404).send('Status or checkPayDay invalid');
281
+ }
221
282
  }
222
283
  const order = result[0];
223
284
  if (order.financial_status
224
- && checkStatus(order.financial_status, GalaxPayTransaction)) {
285
+ && checkStatusIsEqual(order.financial_status, galaxPayTransactionStatus)) {
286
+ // check status is equal
225
287
  // logger.log('> Equals Status')
226
288
  return res.sendStatus(200);
227
289
  }
228
290
  // logger.log('> Order id ')
229
291
  // update payment
292
+ let notificationCode = `;${GalaxPayTransaction.tid || ''};`;
293
+ notificationCode += `${GalaxPayTransaction.authorizationCode || ''}`;
230
294
  const bodyPaymentHistory = {
231
- date_time: new Date().toISOString(),
232
- status: parseStatus(GalaxPayTransaction.status),
295
+ date_time: transactionCreatedAt || new Date().toISOString(),
296
+ status: parseStatus(galaxPayTransactionStatus),
233
297
  transaction_id: transactionId,
234
- notification_code: `${type};${galaxpayHook.webhookId}`,
298
+ notification_code: `${type};${galaxpayHook.webhookId}${notificationCode}`,
235
299
  flags: ['GalaxPay'],
236
300
  }; // TODO: incompatible type=> amount and status;
237
301
  await api.post(`orders/${order._id}/payments_history`, bodyPaymentHistory);
@@ -242,8 +306,8 @@ const handleWehook = async (req, res) => {
242
306
  transaction_code: GalaxPayTransaction.authorizationCode || '',
243
307
  },
244
308
  });
245
- if (parseStatus(GalaxPayTransaction.status) === 'voided'
246
- || parseStatus(GalaxPayTransaction.status) === 'refunded') {
309
+ if (parseStatus(galaxPayTransactionStatus) === 'voided'
310
+ || parseStatus(galaxPayTransactionStatus) === 'refunded') {
247
311
  await api.patch(`orders/${order._id}`, { status: 'cancelled' });
248
312
  // logger.log('> UPDATE ORDER OK')
249
313
  return res.sendStatus(200);
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/functions-lib/galaxpay/webhook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/functions-lib/galaxpay/webhook.ts"],"names":[],"mappings":"AAMA,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAC/C,OAAO,MAAM,MAAM,oCAAoC,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAIvF,MAAM,sBAAsB,GAAG,YAAY,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;AAElF,MAAM,MAAM,GAAG,KAAK,IAA2B,EAAE;IAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,GAAG,CAAC,GAAG,CACL,uBAAuB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,qBAAqB,CAC7E;aACE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;YACzB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CACzB,eAA+D,EAC/D,yBAAkC,EAClC,EAAE;IACF,IAAI,eAAe,CAAC,OAAO,KAAK,WAAW,CAAC,yBAAyB,CAAC,EAAE;QACtE,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,MAAe,EAAE,EAAE;IAC1C,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,gBAAgB,MAAM,OAAO,YAAY,EAAE,CAAC,CAAC;IACxD,IAAI,YAAY,KAAK,MAAM,EAAE;QAC3B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE;IACtC,0CAA0C;IAC1C,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC,oBAAoB;IACtE,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,aAAqB,EAAyC,EAAE;IAChG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,GAAG,CAAC,GAAG,CAAC,2BAA2B,aAAa,EAAE,CAAC;aAChD,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC3B,MAAM,IAAI,GAAG,QAAmD,CAAC,CAAC,QAAQ;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,EAAE,OAAe,EAAmB,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IACxF,GAAG,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC;SACzB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,KAAK,EAC7B,GAAa,EACb,iBAAyB,EACzB,IAA0B,EAC1B,WAAmB,EACnB,0BAAkC,EAClC,mBAAyC,EACzC,oBAA0C,EAC1C,wBAAgC,EAChC,eAAuB,EACvB,EAAE;IACF,IAAI,0BAA0B,KAAK,mBAAmB,CAAC,UAAU,EAAE;QACjE,YAAY;QACZ,MAAM,aAAa,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,UAAU,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAExE,oCAAoC;QACpC,IAAI,aAAa,CAAC,YAAY,IAAI,aAAa,CAAC,KAAK,EAAE;YACrD,MAAM,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC;YAC5C,MAAM,EACJ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAC9B,GAAG,aAAa,CAAC;YAClB,MAAM,WAAW,GAAG,aAAa,CAAC,YAAY,CAAC;YAC/C,MAAM,aAAa,GAAG,aAAa,CAAC,cAAc,CAAC;YACnD,MAAM,mBAAmB,GAAG,aAAa,CAAC,qBAAqB,CAAC;YAChE,MAAM,kBAAkB,GAAG,aAAa,CAAC,oBAAoB,CAAC;YAC9D,MAAM,mBAAmB,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,WAAW,CAAC;YAC7B,MAAM,WAAW,GAAG,sBAAsB,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YAC7E,MAAM,UAAU,GAAG,mBAAmB,CAAC,0BAA0B;gBAC/D,CAAC,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,CAAC,WAAW,EAAE;gBACxE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAE7B,+CAA+C;YAC/C,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,MAAM,CAAC,OAAO,EAAE;gBAClB,OAAO,MAAM,CAAC,OAAO,CAAC;aACvB;YAED,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;YAEvE,MAAM,YAAY,GAA2B;gBAC3C;oBACE,MAAM,EAAE,mBAAmB,CAAC,MAAM;oBAClC,MAAM,EAAE;wBACN,UAAU,EAAE,UAAU;wBACtB,OAAO,EAAE,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC;qBACjD;oBACD,aAAa,EAAE;wBACb,cAAc,EAAE,mBAAmB,CAAC,GAAG,IAAI,EAAE;wBAC7C,gBAAgB,EAAE,mBAAmB,CAAC,iBAAiB,IAAI,EAAE;qBAC9D;oBACD,cAAc,EAAE,mBAAmB,CAAC,cAAc;oBAClD,GAAG,EAAE,mBAAmB,CAAC,GAAG;oBAC5B,GAAG,EAAE,aAAa;oBAClB,KAAK,EAAE,YAAY,QAAQ,gBAAgB,iBAAiB,IAAI,WAAW,EAAE;oBAC7E,aAAa,EAAE,mBAAmB,CAAC,aAAa;iBACjD;aACF,CAAC;YAEF,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC;YAEhE,MAAM,eAAe,GAAG;gBACtB,UAAU,EAAE,UAAU;gBACtB,OAAO,EAAE,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAA2B;aAC3E,CAAC;YACF,MAAM,IAAI,GAAG;gBACX,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,KAAK;gBACL,cAAc,EAAE,aAAa;gBAC7B,MAAM;gBACN,YAAY,EAAE,WAAW;gBACzB,MAAM;gBACN,MAAM;gBACN,qBAAqB,EAAE,mBAAmB;gBAC1C,oBAAoB,EAAE,kBAAkB;gBACxC,YAAY;gBACZ,gBAAgB,EAAE,eAAe;gBACjC,kBAAkB,EAAE;oBAClB,GAAG,EAAE,eAA0C;oBAC/C,MAAM,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;iBAClC;gBACD,KAAK,EAAE,WAAW,QAAQ,gBAAgB,iBAAiB,IAAI,WAAW,EAAE;gBAC5E,WAAW,EAAE,+BAA+B,wBAAwB,EAAE;aACvE,CAAC;YAEF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,wBAAwB,CAAC,aAAa,CAAC,CAAC;YAEjE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBAClB,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC/B,wCAAwC;gBACxC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aAC5B;YACD,eAAe;YACf,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC5B;KACF;IACD,+DAA+D;IAC/D,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;IACzD,wCAAwC;IAExC,yDAAyD;IACzD,kEAAkE;IAElE,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC;IAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC;IAChC,MAAM,oBAAoB,GAAG,YAAY,CAAC,YAAY,CAAC;IACvD,MAAM,4BAA4B,GAAG,oBAAoB,CAAC,QAAQ,CAAC;IACnE,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC;IAClD,MAAM,mBAAmB,GAAG,YAAY,CAAC,WAAW,CAAC;IACrD,MAAM,wBAAwB,GAAG,mBAAmB,CAAC,KAAK,GAAG,GAAG,CAAC;IAEjE,MAAM,CAAC,GAAG,CACR,4BAA4B,IAAI,UAAU,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;MACpE,4BAA4B,aAAa,mBAAmB,CAAC,MAAM,IAAI,CAC1E,CAAC;IAEF,IAAI;QACF,IAAI,IAAI,KAAK,0BAA0B,EAAE;YACvC,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;YACjF,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;gBAC/C,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC;gBAChD,IAAI,eAAe,EAAE;oBACnB,MAAM,EACJ,0BAA0B,EAC1B,IAAI,EACJ,WAAW,EACX,iBAAiB,GAClB,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;oBAE3B,IAAI,yBAA6C,CAAC;oBAClD,IAAI,0BAA8C,CAAC;oBACnD,IAAI,oBAAwC,CAAC;oBAC7C,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;oBAE3B,IAAI;wBACF,+DAA+D;wBAE/D,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;4BACtC,UAAU,EAAE,GAAG,CAAC,WAAW,EAAE,WAAW;4BACxC,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,aAAa;yBAC7C,CAAC,CAAC;wBACH,MAAM,aAAa,CAAC,SAAS,CAAC;wBAE9B,IAAI,aAAa,CAAC,KAAK,EAAE;4BACvB,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC,KAAK;iCACrC,GAAG,CAAC,6BAA6B,mBAAmB,CAAC,UAAU,oBAAoB,CAAC,CAAC;4BAExF,yBAAyB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;4BACzD,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;4BAC5D,oBAAoB,GAAG,mBAAmB,IAAI,IAAI,IAAI,CAAC,GAAG,mBAAmB,QAAQ,CAAC,CAAC;4BACvF,MAAM,CAAC,GAAG,CAAC,0BAA0B,yBAAyB,EAAE,CAAC,CAAC;4BAElE,IAAI,GAAG,CAAC,MAAM,aAAa,CAAC,KAAK;iCAC9B,GAAG,CAAC,wBAAwB,eAAe,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC;4BAE1E,0BAA0B,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;4BAC3D,MAAM,CAAC,GAAG,CAAC,2BAA2B,0BAA0B,EAAE,CAAC,CAAC;yBACrE;qBACF;oBAAC,OAAO,GAAQ,EAAE;wBACjB,MAAM,CAAC,IAAI,CAAC,uEAAuE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;qBACpG;oBAED,IAAI,0BAA0B,KAAK,mBAAmB,CAAC,UAAU,EAAE;wBACjE,uBAAuB;wBACvB,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,CAAC;wBACnD,wCAAwC;wBAExC,iDAAiD;wBACjD,sBAAsB;wBACtB,IAAI,eAAe,CAAC,yBAAyB,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE;4BAC7D,MAAM,oBAAoB,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,KAAK;mCACrD,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;4BAEvC,MAAM,QAAQ,GAAG,qBAAqB,CACpC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EACnB,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,EAChB,EAAE,GAAG,IAAI,EAAE,CACZ,CAAC;4BACF,IAAI,QAAQ,IAAI,QAAQ,KAAK,oBAAoB,EAAE;gCACjD,MAAM,uBAAuB,CAC3B,GAAG,EACH,eAAe,EACf,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,KAAK,EACX,IAAI,CACL,CAAC;gCAEF,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC;qCACxC,GAAG,CAAC;oCACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oCACnC,KAAK,EAAE,QAAQ;iCAChB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;qCAClB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;6BACxB;yBACF;wBACD,gEAAgE;wBAChE,gCAAgC;wBAEhC,IAAI,KAAK,CAAC,gBAAgB;+BACrB,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,EAAE,yBAAyB,CAAC,EAAE;4BAC1E,wBAAwB;4BACxB,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;yBAC5B;wBAAC,IAAI,KAAK,CAAC,YAAY,EAAE;4BACxB,iBAAiB;4BACjB,MAAM,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;4BAChD,IAAI,gBAAgB,GAAG,IAAI,mBAAmB,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC;4BAC5D,gBAAgB,IAAI,GAAG,mBAAmB,CAAC,iBAAiB,IAAI,EAAE,EAAE,CAAC;4BACrE,MAAM,kBAAkB,GAAG;gCACzB,SAAS,EAAE,oBAAoB,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gCAC3D,MAAM,EAAE,WAAW,CAAC,yBAAyB,CAAC;gCAC9C,cAAc,EAAE,aAAa;gCAC7B,iBAAiB,EAAE,GAAG,IAAI,IAAI,YAAY,CAAC,SAAS,GAAG,gBAAgB,EAAE;gCACzE,KAAK,EAAE,CAAC,UAAU,CAAC;6BACb,CAAC,CAAC,gDAAgD;4BAE1D,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;4BAE3E,MAAM,GAAG,CAAC,KAAK,CACb,UAAU,KAAK,CAAC,GAAG,iBAAiB,aAAa,EAAE,EACnD;gCACE,aAAa,EAAE;oCACb,cAAc,EAAE,mBAAmB,CAAC,GAAG,IAAI,EAAE;oCAC7C,gBAAgB,EAAE,mBAAmB,CAAC,iBAAiB,IAAI,EAAE;iCAC9D;6BACF,CACF,CAAC;4BAEF,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;yBAC5B;qBACF;yBAAM;wBACL;;;;;8BAKM;wBACN,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;wBAEvE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,wBAAwB,CAAC,aAAa,CAAC,CAAC;wBAEjE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;4BAC7B,+CAA+C;4BAC/C,IAAI,eAAe,CAAC,yBAAyB,CAAC;mCACzC,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE;gCAC5C,4BAA4B;gCAC5B,OAAO,iBAAiB,CACtB,GAAG,EACH,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,CAChB,CAAC;6BACH;4BACD,sEAAsE;4BACtE,IAAI,aAAiC,CAAC;4BACtC,IAAI;gCACF,aAAa,GAAG,MAAM,aAAa,CAAC,eAAe,CAAC,CAAC;6BACtD;4BAAC,OAAO,GAAG,EAAE;gCACZ,MAAM,CAAC,IAAI,CAAC,6BAA6B,eAAe,IAAI,CAAC,CAAC;gCAC9D,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC,CAAC;6BAC/D;4BACD,MAAM,CAAC,GAAG,CAAC,6BAA6B,aAAa,EAAE,MAAM,GAAG,CAAC,CAAC;4BAElE,IAAI,aAAa,IAAI,0BAA0B,KAAK,UAAU;mCACzD,aAAa,EAAE,MAAM,KAAK,WAAW,EAAE;gCAC1C,wEAAwE;gCACxE,IAAI;oCACF,MAAM,GAAG,CAAC,KAAK,CAAC,UAAU,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;oCACtE,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC;yCACxC,GAAG,CAAC;wCACH,MAAM,EAAE,WAAW;wCACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qCACpC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;yCAClB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oCAEvB,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iCAC5B;gCAAC,OAAO,GAAG,EAAE;oCACZ,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oCAClB,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iCAC5B;6BACF;iCAAM;gCACL,MAAM,CAAC,GAAG,CAAC,iEAAiE,mBAAmB,CAAC,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gCAC3I,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;6BAC9D;yBACF;wBACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBACxB,IAAI,KAAK,CAAC,gBAAgB;+BACrB,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,EAAE,yBAAyB,CAAC,EAAE;4BAC1E,wBAAwB;4BACxB,gCAAgC;4BAChC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;yBAC5B;wBACD,4BAA4B;wBAC5B,iBAAiB;wBACjB,IAAI,gBAAgB,GAAG,IAAI,mBAAmB,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC;wBAC5D,gBAAgB,IAAI,GAAG,mBAAmB,CAAC,iBAAiB,IAAI,EAAE,EAAE,CAAC;wBACrE,MAAM,kBAAkB,GAAG;4BACzB,SAAS,EAAE,oBAAoB,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BAC3D,MAAM,EAAE,WAAW,CAAC,yBAAyB,CAAC;4BAC9C,cAAc,EAAE,aAAa;4BAC7B,iBAAiB,EAAE,GAAG,IAAI,IAAI,YAAY,CAAC,SAAS,GAAG,gBAAgB,EAAE;4BACzE,KAAK,EAAE,CAAC,UAAU,CAAC;yBACb,CAAC,CAAC,+CAA+C;wBAEzD,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,GAAG,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;wBAE3E,0CAA0C;wBAE1C,MAAM,GAAG,CAAC,KAAK,CACb,UAAU,KAAK,CAAC,GAAG,iBAAiB,aAAa,EAAE,EACnD;4BACE,aAAa,EAAE;gCACb,cAAc,EAAE,mBAAmB,CAAC,GAAG,IAAI,EAAE;gCAC7C,gBAAgB,EAAE,mBAAmB,CAAC,iBAAiB,IAAI,EAAE;6BAC9D;yBACF,CACF,CAAC;wBAEF,IAAI,WAAW,CAAC,yBAAyB,CAAC,KAAK,QAAQ;+BAClD,WAAW,CAAC,yBAAyB,CAAC,KAAK,UAAU,EAAE;4BAC1D,MAAM,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;4BAEhE,kCAAkC;4BAClC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;yBAC5B;wBACD,wCAAwC;wBACxC,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;qBAC5B;iBACF;aACF;YACD,EAAE;YACF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;SAChE;QAAC,IAAI,IAAI,KAAK,6BAA6B,EAAE;YAC5C,IAAI,4BAA4B,KAAK,CAAC,EAAE;gBACtC,+BAA+B;gBAC/B,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;gBACjF,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAE;oBAC/C,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC;oBAEhD,IAAI,eAAe,EAAE;wBACnB,MAAM,EACJ,0BAA0B,EAC1B,IAAI,EACJ,WAAW,EACX,iBAAiB,GAClB,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC;wBAE3B,IAAI,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE;4BAC3C,OAAO,iBAAiB,CACtB,GAAG,EACH,iBAAiB,EACjB,IAAI,EACJ,WAAW,EACX,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,eAAe,CAChB,CAAC;yBACH;qBACF;iBACF;gBACD,EAAE;gBACF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;aAChE;YACD,yCAAyC;YACzC,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;iBACnB,IAAI,CAAC;oEACsD,CAAC,CAAC;SACjE;QACD,EAAE;QACF,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;KAC1D;IAAC,OAAO,GAAQ,EAAE;QACjB,kBAAkB;QAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC5B;AACH,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudcommerce/app-galaxpay",
3
3
  "type": "module",
4
- "version": "0.8.7",
4
+ "version": "0.9.0",
5
5
  "description": "E-Com Plus Cloud Commerce app to integrate Galax Pay for recurring payments",
6
6
  "main": "lib/galaxpay.js",
7
7
  "exports": {
@@ -20,15 +20,15 @@
20
20
  },
21
21
  "homepage": "https://github.com/ecomplus/cloud-commerce/tree/main/packages/apps/galaxpay#readme",
22
22
  "dependencies": {
23
- "axios": "^1.3.4",
24
- "firebase-admin": "^11.5.0",
23
+ "axios": "^1.3.5",
24
+ "firebase-admin": "^11.6.0",
25
25
  "firebase-functions": "^4.2.1",
26
- "@cloudcommerce/api": "0.8.7",
27
- "@cloudcommerce/firebase": "0.8.7"
26
+ "@cloudcommerce/api": "0.9.0",
27
+ "@cloudcommerce/firebase": "0.9.0"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@firebase/app-types": "^0.9.0",
31
- "@cloudcommerce/types": "0.8.7"
31
+ "@cloudcommerce/types": "0.9.0"
32
32
  },
33
33
  "scripts": {
34
34
  "build": "bash scripts/build.sh"
@@ -5,7 +5,7 @@ import { getFirestore } from 'firebase-admin/firestore';
5
5
  import config from '@cloudcommerce/firebase/lib/config';
6
6
  import GalaxpayAxios from '../galaxpay/auth/create-access';
7
7
 
8
- const collectionSubscription = getFirestore().collection('subscriptions');
8
+ const collectionSubscription = getFirestore().collection('galaxpaySubscriptions');
9
9
 
10
10
  const handleApiEvent: ApiEventHandler = async ({
11
11
  evName,
@@ -9,6 +9,7 @@ import { getFirestore } from 'firebase-admin/firestore';
9
9
  import logger from 'firebase-functions/logger';
10
10
  import config from '@cloudcommerce/firebase/lib/config';
11
11
  import { parseStatus, parsePeriodicityToEcom, gerateId } from '../all-parses';
12
+ import GalaxpayAxios from './auth/create-access';
12
13
  import { updateValueSubscription, checkAmountItemsOrder } from './update-subscription';
13
14
 
14
15
  type FinancialStatusCurrent = Exclude<Orders['financial_status'], undefined>['current']
@@ -29,23 +30,20 @@ const getApp = async (): Promise<Applications> => {
29
30
  });
30
31
  };
31
32
 
32
- const checkStatus = (
33
+ const checkStatusIsEqual = (
33
34
  financialStatus: Exclude<Orders['financial_status'], undefined>,
34
- GalaxPayTransaction: { [x: string]: any },
35
+ galaxPayTransactionStatus?: string,
35
36
  ) => {
36
- if (financialStatus.current === parseStatus(GalaxPayTransaction.status)) {
37
- return true;
38
- } if ((financialStatus.current === 'paid' || financialStatus.current === 'authorized')
39
- && parseStatus(GalaxPayTransaction.status) !== 'refunded') {
37
+ if (financialStatus.current === parseStatus(galaxPayTransactionStatus)) {
40
38
  return true;
41
39
  }
42
40
  return false;
43
41
  };
44
42
 
45
- const checkStatusNotValid = (status: string) => {
43
+ const checkStatusPaid = (status?: string) => {
46
44
  const parsedStatus = parseStatus(status);
47
- // logger.log('>> Status (', status, ')=> ', parsedStatus);
48
- if (parsedStatus === 'unauthorized' || parsedStatus === 'refunded' || parsedStatus === 'voided') {
45
+ logger.log(`>> Status is ${status} => ${parsedStatus}`);
46
+ if (parsedStatus === 'paid') {
49
47
  return true;
50
48
  }
51
49
  return false;
@@ -73,11 +71,10 @@ const findOrderByTransactionId = (transactionId: string): Promise<ResourceListRe
73
71
  };
74
72
 
75
73
  const findOrderById = async (orderId: string): Promise<Orders> => new Promise((resolve) => {
76
- api.get(
77
- `orders/${orderId}?fields=transactions,financial_status`,
78
- ).then(({ data: order }) => {
79
- resolve(order);
80
- });
74
+ api.get(`orders/${orderId}`)
75
+ .then(({ data: order }) => {
76
+ resolve(order);
77
+ });
81
78
  });
82
79
 
83
80
  const createTransaction = async (
@@ -199,9 +196,6 @@ const handleWehook = async (req: Request, res: Response) => {
199
196
  ${GalaxPaySubscriptionQuantity}, status: ${GalaxPayTransaction.status} <`,
200
197
  );
201
198
 
202
- // if (galaxpayHook.confirmHash) {
203
- // logger.log('> ', galaxpayHook.confirmHash);
204
- // }
205
199
  try {
206
200
  if (type === 'transaction.updateStatus') {
207
201
  const documentSnapshot = await collectionSubscription.doc(originalOrderId).get();
@@ -215,31 +209,89 @@ const handleWehook = async (req: Request, res: Response) => {
215
209
  subscriptionLabel,
216
210
  } = docSubscription.data();
217
211
 
212
+ let galaxPayTransactionStatus: string | undefined;
213
+ let galaxpaySubscriptionStatus: string | undefined;
214
+ let transactionCreatedAt: string | undefined;
215
+ const app = await getApp();
216
+
217
+ try {
218
+ // check subscription and transaction status before in galaxpay
219
+
220
+ const galaxpayAxios = new GalaxpayAxios({
221
+ galaxpayId: app.hidden_data?.galaxpay_id,
222
+ galaxpayHash: app.hidden_data?.galaxpay_hash,
223
+ });
224
+ await galaxpayAxios.preparing;
225
+
226
+ if (galaxpayAxios.axios) {
227
+ let { data } = await galaxpayAxios.axios
228
+ .get(`/transactions?galaxPayIds=${GalaxPayTransaction.galaxPayId}&startAt=0&limit=1`);
229
+
230
+ galaxPayTransactionStatus = data.Transactions[0]?.status;
231
+ const dateTimeTransaction = data.Transactions[0]?.createdAt;
232
+ transactionCreatedAt = dateTimeTransaction && new Date(`${dateTimeTransaction} UTC-3`);
233
+ logger.log(`>> Transaction status: ${galaxPayTransactionStatus}`);
234
+
235
+ data = (await galaxpayAxios.axios
236
+ .get(`/subscriptions?myIds=${originalOrderId}&startAt=0&limit=1`)).data;
237
+
238
+ galaxpaySubscriptionStatus = data.Subscriptions[0]?.status;
239
+ logger.log(`>> Subscription status: ${galaxpaySubscriptionStatus}`);
240
+ }
241
+ } catch (err: any) {
242
+ logger.warn(`galaxpay webhook Error: get Transaction/Subscription in Galaxpay => ${err?.message}`);
243
+ }
244
+
218
245
  if (galaxpayFristTransactionId === GalaxPayTransaction.galaxPayId) {
219
246
  // update frist payment
220
247
  const order = await findOrderById(originalOrderId);
221
248
  // Update value Subscription in GalaxPay
222
249
 
223
250
  // logger.log('plan-> ', JSON.stringify(plan));
224
- // not update subscripton canceled
225
- if (!checkStatusNotValid(GalaxPayTransaction.status) && order.items) {
226
- const app = await getApp();
227
- await updateValueSubscription(app, originalOrderId, order.amount, order.items, plan);
251
+ // subscripton is paid
252
+ if (checkStatusPaid(galaxPayTransactionStatus) && order.items) {
253
+ const oldSubscriptionValue = docSubscription.data()?.value
254
+ || ({ ...order.amount }.total * 100);
255
+
256
+ const newValue = checkAmountItemsOrder(
257
+ { ...order.amount },
258
+ [...order.items],
259
+ { ...plan },
260
+ );
261
+ if (newValue && newValue !== oldSubscriptionValue) {
262
+ await updateValueSubscription(
263
+ app,
264
+ originalOrderId,
265
+ order.amount,
266
+ order.items,
267
+ plan,
268
+ );
269
+
270
+ collectionSubscription.doc(originalOrderId)
271
+ .set({
272
+ updatedAt: new Date().toISOString(),
273
+ value: newValue,
274
+ }, { merge: true })
275
+ .catch(logger.error);
276
+ }
228
277
  }
229
278
  // logger.log('ORDER: ', JSON.stringify(order.amount), ' **');
230
279
  // logger.log('> order ', order)
231
280
 
232
281
  if (order.financial_status
233
- && checkStatus(order.financial_status, GalaxPayTransaction)) {
282
+ && checkStatusIsEqual(order.financial_status, galaxPayTransactionStatus)) {
283
+ // check status is equal
234
284
  return res.sendStatus(200);
235
285
  } if (order.transactions) {
236
286
  // update payment
237
287
  const transactionId = order.transactions[0]._id;
288
+ let notificationCode = `;${GalaxPayTransaction.tid || ''};`;
289
+ notificationCode += `${GalaxPayTransaction.authorizationCode || ''}`;
238
290
  const bodyPaymentHistory = {
239
- date_time: new Date().toISOString(),
240
- status: parseStatus(GalaxPayTransaction.status),
291
+ date_time: transactionCreatedAt || new Date().toISOString(),
292
+ status: parseStatus(galaxPayTransactionStatus),
241
293
  transaction_id: transactionId,
242
- notification_code: `${type};${galaxpayHook.webhookId}`,
294
+ notification_code: `${type};${galaxpayHook.webhookId}${notificationCode}`,
243
295
  flags: ['GalaxPay'],
244
296
  } as any; // TODO: incompatible type=> amount and status;;
245
297
 
@@ -259,18 +311,18 @@ const handleWehook = async (req: Request, res: Response) => {
259
311
  }
260
312
  } else {
261
313
  /*
262
- add order, because recurrence creates all transactions in the
263
- first transaction when quantity is non-zero,search for the order by ID,
264
- if not found, create the transaction, and if found, check if it will be
265
- necessary to update the transaction status
266
- */
314
+ add order, because recurrence creates all transactions in the
315
+ first transaction when quantity is non-zero,search for the order by ID,
316
+ if not found, create the transaction, and if found, check if it will be
317
+ necessary to update the transaction status
318
+ */
267
319
  const transactionId = String(gerateId(GalaxPayTransaction.galaxPayId));
268
320
 
269
321
  const { result } = await findOrderByTransactionId(transactionId);
270
322
 
271
323
  if (!result || !result.length) {
272
324
  // logger.log('> Not found Transaction in API')
273
- if (!checkStatusNotValid(GalaxPayTransaction.status)
325
+ if (checkStatusPaid(galaxPayTransactionStatus)
274
326
  && checkPayDay(GalaxPayTransaction.payday)) {
275
327
  // necessary to create order
276
328
  return createTransaction(
@@ -285,22 +337,54 @@ const handleWehook = async (req: Request, res: Response) => {
285
337
  originalOrderId,
286
338
  );
287
339
  }
288
- // TODO: status 400 or 500?
289
- return res.status(404).send('Status or checkPayDay invalid');
340
+ // fetches the original order again to avoid delay from other webhooks
341
+ let originalOrder: Orders | undefined;
342
+ try {
343
+ originalOrder = await findOrderById(originalOrderId);
344
+ } catch (err) {
345
+ logger.warn(`Original Order not found (${originalOrderId}) `);
346
+ res.status(404).send({ message: 'Original Order not found' });
347
+ }
348
+ logger.log(`>> Status Original Order: ${originalOrder?.status} `);
349
+
350
+ if (originalOrder && galaxpaySubscriptionStatus === 'canceled'
351
+ && originalOrder?.status !== 'cancelled') {
352
+ // console.log('>> galaxpay webhook: Subscription canceled at galapay');
353
+ try {
354
+ await api.patch(`orders/${originalOrderId}`, { status: 'cancelled' });
355
+ collectionSubscription.doc(originalOrderId)
356
+ .set({
357
+ status: 'cancelled',
358
+ updatedAt: new Date().toISOString(),
359
+ }, { merge: true })
360
+ .catch(logger.error);
361
+
362
+ return res.sendStatus(200);
363
+ } catch (err) {
364
+ logger.error(err);
365
+ return res.sendStatus(400);
366
+ }
367
+ } else {
368
+ logger.log(`>> galaxpay webhook: Status or checkPayDay invalid => Payday: ${GalaxPayTransaction.payday} now: ${new Date().toISOString()}`);
369
+ return res.status(404).send('Status or checkPayDay invalid');
370
+ }
290
371
  }
291
372
  const order = result[0];
292
373
  if (order.financial_status
293
- && checkStatus(order.financial_status, GalaxPayTransaction)) {
374
+ && checkStatusIsEqual(order.financial_status, galaxPayTransactionStatus)) {
375
+ // check status is equal
294
376
  // logger.log('> Equals Status')
295
377
  return res.sendStatus(200);
296
378
  }
297
379
  // logger.log('> Order id ')
298
380
  // update payment
381
+ let notificationCode = `;${GalaxPayTransaction.tid || ''};`;
382
+ notificationCode += `${GalaxPayTransaction.authorizationCode || ''}`;
299
383
  const bodyPaymentHistory = {
300
- date_time: new Date().toISOString(),
301
- status: parseStatus(GalaxPayTransaction.status),
384
+ date_time: transactionCreatedAt || new Date().toISOString(),
385
+ status: parseStatus(galaxPayTransactionStatus),
302
386
  transaction_id: transactionId,
303
- notification_code: `${type};${galaxpayHook.webhookId}`,
387
+ notification_code: `${type};${galaxpayHook.webhookId}${notificationCode}`,
304
388
  flags: ['GalaxPay'],
305
389
  } as any; // TODO: incompatible type=> amount and status;
306
390
 
@@ -318,8 +402,8 @@ const handleWehook = async (req: Request, res: Response) => {
318
402
  },
319
403
  );
320
404
 
321
- if (parseStatus(GalaxPayTransaction.status) === 'voided'
322
- || parseStatus(GalaxPayTransaction.status) === 'refunded') {
405
+ if (parseStatus(galaxPayTransactionStatus) === 'voided'
406
+ || parseStatus(galaxPayTransactionStatus) === 'refunded') {
323
407
  await api.patch(`orders/${order._id}`, { status: 'cancelled' });
324
408
 
325
409
  // logger.log('> UPDATE ORDER OK')