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

        jonathan Jonathan Reissmueller created issue -
        jonathan Jonathan Reissmueller made changes -
        Field Original Value New Value
        Sprint 5.6.0 Sprint 4 [ 168 ]
        jonathan Jonathan Reissmueller made changes -
        Rank Ranked higher
        abdy Abdy Franco made changes -
        Assignee Abdy Franco [ abdy ]
        abdy Abdy Franco made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        abdy Abdy Franco made changes -
        Remaining Estimate 0 minutes [ 0 ]
        Time Spent 4 hours, 21 minutes [ 15660 ]
        Worklog Id 16021 [ 16021 ]
        abdy Abdy Franco made changes -
        Status In Progress [ 3 ] In Review [ 5 ]
        Resolution Fixed [ 1 ]
        jonathan Jonathan Reissmueller made changes -
        Description {quote}
        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.
        {quote}
        {quote}
        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.-
        {quote}
        jonathan Jonathan Reissmueller made changes -
        Description {quote}
        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.-
        {quote}
        {quote}
        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.


        {quote}
        -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.-
        jonathan Jonathan Reissmueller made changes -
        Description {quote}
        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.


        {quote}
        -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.-
        {quote}
        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.


        {quote}
        -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-
        jonathan Jonathan Reissmueller made changes -
        Description {quote}
        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.


        {quote}
        -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-
        {quote}
        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.


        {quote}
        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-
        jonathan Jonathan Reissmueller made changes -
        Description {quote}
        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.


        {quote}
        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-
        {quote}
        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.


        {quote}
        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-
        jonathan Jonathan Reissmueller made changes -
        Description {quote}
        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.


        {quote}
        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-
        {quote}
        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.


        {quote}
        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-
        jonathan Jonathan Reissmueller made changes -
        Description {quote}
        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.


        {quote}
        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-
        {quote}
        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.


        {quote}
        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-
        jonathan Jonathan Reissmueller made changes -
        Description {quote}
        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.


        {quote}
        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-
        {quote}
        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.


        {quote}
        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-
        jonathan Jonathan Reissmueller made changes -
        Description {quote}
        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.


        {quote}
        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-
        {quote}
        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.


        {quote}
        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-
        jonathan Jonathan Reissmueller made changes -
        Description {quote}
        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.


        {quote}
        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-
        {quote}
        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.


        {quote}
        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-
        jonathan Jonathan Reissmueller made changes -
        Description {quote}
        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.


        {quote}
        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-
        {quote}
        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-
        {quote}
        jonathan Jonathan Reissmueller made changes -
        Status In Review [ 5 ] Closed [ 6 ]

          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