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

Stripe: Look into adding support for 3DS

    Details

    • Type: Story
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 4.5.0
    • Fix Version/s: 4.7.0-b1
    • Component/s: Gateways
    • Labels:
      None

      Description

      Look into adding support for Stripe 3DS. It sounds like Stripe is coming online in India, and that law there may require 3DS. Also, 3DS is becoming a requirement for EU countries later this year. https://stripe.com/docs/payments/3d-secure

        Activity

        admin Paul Phillips created issue -
        admin Paul Phillips made changes -
        Field Original Value New Value
        Description Look into adding support for Stripe 3DS. It sounds like Stripe is coming online in India, and that law there may require 3DS. https://stripe.com/docs/payments/3d-secure Look into adding support for Stripe 3DS. It sounds like Stripe is coming online in India, and that law there may require 3DS. Also, 3DS is becoming a requirement for EU countries later this year. https://stripe.com/docs/payments/3d-secure
        admin Paul Phillips made changes -
        Rank Ranked higher
        tyson Tyson Phillips (Inactive) made changes -
        Sprint 4.7.0 Sprint 1 [ 76 ]
        tyson Tyson Phillips (Inactive) made changes -
        Rank Ranked lower
        tyson Tyson Phillips (Inactive) made changes -
        Story Points 8
        Hide
        admin Paul Phillips added a comment -

        Related to CORE-1085?

        Show
        admin Paul Phillips added a comment - Related to CORE-1085 ?
        tyson Tyson Phillips (Inactive) made changes -
        Rank Ranked higher
        tyson Tyson Phillips (Inactive) made changes -
        Remaining Estimate 0 minutes [ 0 ]
        Time Spent 1 hour, 18 minutes [ 4680 ]
        Worklog Id 12344 [ 12344 ]
        tyson Tyson Phillips (Inactive) made changes -
        Time Spent 1 hour, 18 minutes [ 4680 ] 6 hours, 48 minutes [ 24480 ]
        Worklog Id 12347 [ 12347 ]
        tyson Tyson Phillips (Inactive) made changes -
        Fix Version/s 4.7.0-b1 [ 11123 ]
        Fix Version/s Short Term [ 10800 ]
        tyson Tyson Phillips (Inactive) made changes -
        Sprint 4.7.0 Sprint 1 [ 76 ] 4.7.0 Sprint 1, 4.7.0 Sprint 2 [ 76, 87 ]
        tyson Tyson Phillips (Inactive) made changes -
        Rank Ranked higher
        tyson Tyson Phillips (Inactive) made changes -
        Sprint 4.7.0 Sprint 1, 4.7.0 Sprint 2 [ 76, 87 ] 4.7.0 Sprint 1, 4.7.0 Sprint 2, 4.7.0 Sprint 3 [ 76, 87, 88 ]
        jonathan Jonathan Reissmueller made changes -
        Time Spent 6 hours, 48 minutes [ 24480 ] 7 hours, 15 minutes [ 26100 ]
        Worklog Id 12451 [ 12451 ]
        jonathan Jonathan Reissmueller made changes -
        Time Spent 7 hours, 15 minutes [ 26100 ] 1 day, 3 hours, 23 minutes [ 40980 ]
        Worklog Id 12455 [ 12455 ]
        Hide
        jonathan Jonathan Reissmueller added a comment -

        Okay so I've been looking into this. Stripe.js creates tokens by using 'Elements'. This is a js library that generates field such as cc number field using iframes. After cc info is entered the element can be sent to create a token and receive it in response.

        The data entered in this iframe is inaccessible; stripe.js does not allow you to fetch it. Instead you need to fetch the token using the API through php. In this way you can retrieve info such as the last 4 and the expiration date of the card that was entered.

        I talked with Tyson about maintaining the current cc form and just populating it with data from the stripe form, but this is not possible since the fields are inaccessible. Instead we need to handle populating those fields in the back end. That being said we may still want to keep and hide the fields in case it is useful for gateways other than stripe. We also need to have a way of avoiding card validation on our end since we don't have the full card number.

        So maybe to lay it out more clearly we need to:

        1. Create a way for the current merchant gateway to replace the admin_clients_account_ccinfo.pdt html, either partially or entirely
        2. Create a way for the current merchant gateway to provide details such as card last4 and expiration date to the accounts model
        3. Allow a null card number to be submitted to the accounts model
        4. Possibly make these dependent on the gateway implementing a new interface
        Show
        jonathan Jonathan Reissmueller added a comment - Okay so I've been looking into this. Stripe.js creates tokens by using 'Elements'. This is a js library that generates field such as cc number field using iframes. After cc info is entered the element can be sent to create a token and receive it in response. The data entered in this iframe is inaccessible; stripe.js does not allow you to fetch it. Instead you need to fetch the token using the API through php. In this way you can retrieve info such as the last 4 and the expiration date of the card that was entered. I talked with Tyson about maintaining the current cc form and just populating it with data from the stripe form, but this is not possible since the fields are inaccessible. Instead we need to handle populating those fields in the back end. That being said we may still want to keep and hide the fields in case it is useful for gateways other than stripe. We also need to have a way of avoiding card validation on our end since we don't have the full card number. So maybe to lay it out more clearly we need to: Create a way for the current merchant gateway to replace the admin_clients_account_ccinfo.pdt html, either partially or entirely Create a way for the current merchant gateway to provide details such as card last4 and expiration date to the accounts model Allow a null card number to be submitted to the accounts model Possibly make these dependent on the gateway implementing a new interface
        jonathan Jonathan Reissmueller made changes -
        Time Spent 1 day, 3 hours, 23 minutes [ 40980 ] 1 day, 6 hours, 22 minutes [ 51720 ]
        Worklog Id 12461 [ 12461 ]
        jonathan Jonathan Reissmueller made changes -
        Time Spent 1 day, 6 hours, 22 minutes [ 51720 ] 2 days, 5 hours, 52 minutes [ 78720 ]
        Worklog Id 12468 [ 12468 ]
        jonathan Jonathan Reissmueller made changes -
        Worklog Id 12468 [ 12468 ]
        Automated transition triggered when Jonathan Reissmueller created a branch in Stash -
        Status Open [ 1 ] In Progress [ 3 ]
        jonathan Jonathan Reissmueller made changes -
        Time Spent 2 days, 5 hours, 52 minutes [ 78720 ] 3 days, 7 hours, 43 minutes [ 114180 ]
        Worklog Id 12484 [ 12484 ]
        jonathan Jonathan Reissmueller made changes -
        Time Spent 3 days, 7 hours, 43 minutes [ 114180 ] 4 days, 18 minutes [ 116280 ]
        Worklog Id 12485 [ 12485 ]
        tyson Tyson Phillips (Inactive) made changes -
        Sprint 4.7.0 Sprint 1, 4.7.0 Sprint 2, 4.7.0 Sprint 3 [ 76, 87, 88 ] 4.7.0 Sprint 1, 4.7.0 Sprint 2, 4.7.0 Sprint 3, 4.7.0 Sprint 4 [ 76, 87, 88, 89 ]
        tyson Tyson Phillips (Inactive) made changes -
        Rank Ranked higher
        jonathan Jonathan Reissmueller made changes -
        Time Spent 4 days, 18 minutes [ 116280 ] 4 days, 3 hours, 19 minutes [ 127140 ]
        Worklog Id 12501 [ 12501 ]
        jonathan Jonathan Reissmueller made changes -
        Issue Type Improvement [ 4 ] Story [ 7 ]
        tyson Tyson Phillips (Inactive) made changes -
        Time Spent 4 days, 3 hours, 19 minutes [ 127140 ] 4 days, 4 hours, 59 minutes [ 133140 ]
        Worklog Id 12507 [ 12507 ]
        jonathan Jonathan Reissmueller made changes -
        Time Spent 4 days, 4 hours, 59 minutes [ 133140 ] 1 week, 3 hours, 24 minutes [ 156240 ]
        Worklog Id 12509 [ 12509 ]
        jonathan Jonathan Reissmueller made changes -
        Worklog Id 12509 [ 12509 ]
        tyson Tyson Phillips (Inactive) made changes -
        Time Spent 1 week, 3 hours, 24 minutes [ 156240 ] 1 week, 6 hours, 23 minutes [ 166980 ]
        Worklog Id 12515 [ 12515 ]
        tyson Tyson Phillips (Inactive) made changes -
        Sprint 4.7.0 Sprint 1, 4.7.0 Sprint 2, 4.7.0 Sprint 3, 4.7.0 Sprint 4 [ 76, 87, 88, 89 ] 4.7.0 Sprint 1, 4.7.0 Sprint 2, 4.7.0 Sprint 3, 4.7.0 Sprint 4, 4.7.0 Sprint 5 [ 76, 87, 88, 89, 90 ]
        tyson Tyson Phillips (Inactive) made changes -
        Time Spent 1 week, 6 hours, 23 minutes [ 166980 ] 1 week, 1 day, 2 hours, 57 minutes [ 183420 ]
        Worklog Id 12519 [ 12519 ]
        jonathan Jonathan Reissmueller made changes -
        Time Spent 1 week, 1 day, 2 hours, 57 minutes [ 183420 ] 1 week, 1 day, 6 hours, 4 minutes [ 194640 ]
        Worklog Id 12532 [ 12532 ]
        tyson Tyson Phillips (Inactive) made changes -
        Time Spent 1 week, 1 day, 6 hours, 4 minutes [ 194640 ] 1 week, 2 days, 1 hour, 13 minutes [ 205980 ]
        Worklog Id 12535 [ 12535 ]
        Automated transition triggered when Jonathan Reissmueller created pull request #722 in Stash -
        Status In Progress [ 3 ] In Review [ 5 ]
        Resolution Fixed [ 1 ]
        Automated transition triggered when Tyson Phillips (Inactive) merged pull request #722 in Stash -
        Status In Review [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            admin Paul Phillips
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:
              Fix Release Date:
              5/Sep/19

              Time Tracking

              Estimated:
              Original Estimate - Not Specified
              Not Specified
              Remaining:
              Remaining Estimate - 0 minutes
              0m
              Logged:
              Time Spent - 2 weeks, 4 days, 19 minutes
              2w 4d 19m

                Agile