From 2aaa79ac221e5bffae24c18bbbcfef56c5d2158c Mon Sep 17 00:00:00 2001 From: mark-jia <99465986+mark-jia@users.noreply.github.com> Date: Sat, 28 Oct 2023 16:12:07 +1100 Subject: [PATCH 1/2] Update [bodyJson]webhook.js stripe web hook returned amount data is integer of how many cents, we store in dollars with 4 decimal points in postgres database --- .../src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/evershop/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js b/packages/evershop/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js index 30f0a45e6..d9e5f71ec 100644 --- a/packages/evershop/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js +++ b/packages/evershop/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js @@ -56,7 +56,7 @@ module.exports = async (request, response, delegate, next) => { // Create payment transaction await insert('payment_transaction') .given({ - amount: paymentIntent.amount, + amount: parseFloat((paymentIntent.amount/100).toFixed(4)), payment_transaction_order_id: order.order_id, transaction_id: paymentIntent.id, transaction_type: 'online', From 0f1dd1fa27c5dc39dffa1c83a95e7116b17d073d Mon Sep 17 00:00:00 2001 From: mark-jia <99465986+mark-jia@users.noreply.github.com> Date: Sat, 28 Oct 2023 17:25:34 +1100 Subject: [PATCH 2/2] Update [bodyJson]webhook.js use zero-decimal-currencies to fix stripe web hook amount inconsistency. For non zero-decimal-currencies, amount is divided by 100 before insert into database, otherwise, original paymentIntent.amount is saved --- .../src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/evershop/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js b/packages/evershop/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js index d9e5f71ec..2e2b03d01 100644 --- a/packages/evershop/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js +++ b/packages/evershop/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js @@ -14,6 +14,7 @@ const { getConfig } = require('@evershop/evershop/src/lib/util/getConfig'); const { emit } = require('@evershop/evershop/src/lib/event/emitter'); const { debug } = require('@evershop/evershop/src/lib/log/debuger'); const { getSetting } = require('../../../setting/services/setting'); +const { display } = require('zero-decimal-currencies'); // eslint-disable-next-line no-unused-vars module.exports = async (request, response, delegate, next) => { @@ -56,7 +57,7 @@ module.exports = async (request, response, delegate, next) => { // Create payment transaction await insert('payment_transaction') .given({ - amount: parseFloat((paymentIntent.amount/100).toFixed(4)), + amount: parseFloat(display(paymentIntent.amount, paymentIntent.currency)), payment_transaction_order_id: order.order_id, transaction_id: paymentIntent.id, transaction_type: 'online',