Uploaded image for project: 'Blesta Core'
  1. Blesta Core
  2. CORE-4774

Stripe Payments: Various issues with payment responses

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 5.6.0-b1
    • Component/s: None
    • Labels:
      None

      Description

      1. There are multiple switch cases in this class that incorrectly name decline which causes it not to be saved correctly in database.
      $status = ‘decline’ should be changed to $status = ‘declined’ in all instances to match the enum in the database.

      2. The handleApiRequest() function does not consistently return data that is needed for other functions in that class
      Example would be the `captureStoredCc()` function.
      When Stripe returns `requires_payment_method` error code the $captured_payment_intent variable ends up containing and array instead of an object. This ends up skipping the switch statement and marking resulting error code output not clear for the end user. It also incorrectly handles what that error actually is. Since in some instances that is returned because of a failed 3d secure attempt, it would be better to handle that as a decline state since the transaction cannot move forward. It also needs to set the transaction in stripe via api as canceled.

      There is also a need of testing `requires_payment_method` further to make sure we cover all instances of that error, but canceled and declined should be a good solution as that is considered an error.

      3. Last issue we ran in to was after an error (sometimes a decline) occurs it causes blesta to start a new transaction in stripe. This is happening inside of app/controllers/client_pay.php
      As confirm() gets called again as its loading that page with an error message it ends up calling buildPaymentConfirmation() for the second time that initiates the initial pending state in blesta and a payment started in stripe. -In other words you have an error and a pending transaction in blesta all on one attempt to pay

        Activity

          People

          • Assignee:
            abdy Abdy Franco
            Reporter:
            jonathan Jonathan Reissmueller
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:
              Fix Release Date:
              15/Nov/22

              Time Tracking

              Estimated:
              Original Estimate - Not Specified
              Not Specified
              Remaining:
              Remaining Estimate - 0 minutes
              0m
              Logged:
              Time Spent - 4 hours, 21 minutes
              4h 21m

                Agile