Explorar el Código

Merge pull request #27338 from overleaf/kh-restore-schedule-if-3ds-fails

[web] restore previous subscription schedule when 3DS fails

GitOrigin-RevId: 27977fb82695d5b212256431c57683abf8a93086
Kristina hace 1 año
padre
commit
95f51c4d46

+ 12 - 2
services/web/frontend/js/features/subscription/util/handle-stripe-payment-action.ts

@@ -12,9 +12,19 @@ export default async function handleStripePaymentAction(
     if (stripe) {
       const manualConfirmationFlow =
         await stripe.confirmCardPayment(clientSecret)
-      if (!manualConfirmationFlow.error) {
+      if (manualConfirmationFlow.error) {
+        const paymentIntentId = manualConfirmationFlow.error.payment_intent?.id
         try {
-          await postJSON(`/user/subscription/sync`)
+          await postJSON(
+            `/user/subscription/void-change?payment_intent_id=${paymentIntentId}`
+          )
+        } catch (error) {
+          // do nothing
+        }
+        return { handled: false }
+      } else {
+        try {
+          await postJSON('/user/subscription/sync')
         } catch (error) {
           // if the sync fails, there may be stale data until the webhook is
           // processed but we can't do any special handling for that in here