Skip to content
This repository has been archived by the owner on Nov 4, 2024. It is now read-only.

feat: 3DS checkout flow for subscriptions #773

Merged
merged 15 commits into from
Jul 19, 2023

Conversation

mrazadar
Copy link
Contributor

@mrazadar mrazadar commented Jul 13, 2023

Ticket: PON-161
This PR implements the 3DS workflow for both trial and non-trial mode.

  • It fetches the Secure details from the stripe and display it within iframe
  • It renders the iframe inside the model.
  • It introduce a new 3DS redirect page which tell it's parent that 3DS flow has been completed.
  • It makes another API request stripe-checkout-complete endpoint to confirm the 3DS workflow has been done.
Screenshot 2023-07-12 at 5 42 20 PM Screenshot 2023-07-12 at 5 46 33 PM

@mrazadar mrazadar requested a review from a team as a code owner July 13, 2023 09:50
@mrazadar mrazadar self-assigned this Jul 13, 2023
@mrazadar mrazadar force-pushed the mrazadar/PON-161/checkout-3DS-flow branch from a06cc02 to 5464385 Compare July 19, 2023 19:35
@mrazadar mrazadar changed the title [WIP] - feat: 3DS checkout flow for subscriptions feat: 3DS checkout flow for subscriptions Jul 19, 2023
Copy link
Contributor

@julianajlk julianajlk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really good work 👏 Thank you for adding comments throughout this very complicated flow, and for all of the testing with the BE

@mrazadar mrazadar merged commit 47ffc46 into master Jul 19, 2023
@mrazadar mrazadar deleted the mrazadar/PON-161/checkout-3DS-flow branch July 19, 2023 22:37
grmartin added a commit that referenced this pull request Aug 29, 2023
* chore(i18n): update translations

* feat: added transaction_declined error handler (#756)

* chore(i18n): update translations

* feat: use `atlas` in `make pull_translations` (#732)

Changes
-------
 - Bump frontend-platform to bring intl-imports.js script
 - Move all i18n imports into `src/i18n/index.js` so intl-imports.js can
   override it with latest translations
 - Add `atlas` into `make pull_translations` when `OPENEDX_ATLAS_PULL`
   environment variable is set.

Refs: [FC-0012 project](https://openedx.atlassian.net/l/cp/XGS0iCcQ) implementing Translation Infrastructure OEP-58.

* feat: removed the Localized Currency for subscription (#758)

* PON-281: SDN error handling (#759)

* feat: fixed the program_tile italic and subscribe checkout state

* feat: added SDN error check with feedback saga

* test: fixed borken tests

* test: removed the screen.debug call

* feat: do not display any error alert on the checkout page for sdn

* fix: fixed the config name for feedback saga alert

* Mrazadar/pon 178/unit test checkout (#760)

* test: added stripe service unit test

* test: added api service unit test

* test: working on improving subscription checkout test

* test: checkout test with react-testing-library

* test: removed the commented code

* feat: (PON-326) updated localize date for billing (#764)

* refactor: the Legal support URL to used with env variable

* feat: add localize date with billing information

* test: fixed the broken tests

* refactor: updated SUBSCRIPTION_LEGAL_URL with LEARNER_SUPPORT_URL

* test: trying to fix the failing tests

* test: fixed the broken tests

* feat: update the LEARNER_SUPPORT_URL key

* feat: no localize date for resubscribe case

* fix: update allowlist to unblock translations pr (#767)

* chore(i18n): update translations

* feat: update react & react-dom to v17 (#761)

* feat: update react & react-dom to v17

* build: update paragon version

* refactor: updated edx packages

* refactor: updated header, footer, frontend-build & semver packages to resolve vulnerabilities

---------

Co-authored-by: Bilal Qamar <59555732+BilalQamar95@users.noreply.github.com>

* feat: 3DS checkout flow for subscriptions (#773)

* feat: 3DS iframe with modal implementation

* feat: 3DS removed commented code

* feat: 3DS added a redirect page

* feat: added subscription status saga methods

* feat: setting up the 3DS status redux sagas

* feat: handles the happy flow

* feat: updates the error message

* feat: updated styles as per stripe portal 3DS styles

* test: updated tests for subscription/service.tests.js

* test: added tests for subscriptions/data/utils

* feat: updated Secure3DModal to handle stripe-checkout-complete response

* feat: updated subscription status redux to handle stripe-checkout-complete

* feat: incorporated PR feedback

* test: added unit test for Secure3DModal

* feat: fixed the broken styles

* feat: added stripe redirect content-security-policy tag (#776)

* Mrazadar/pon 161/content security fix (#777)

* revert: the react-helmet

* feat: added content-security-policy meta tag at the top

* revert: removed the meta tag from index.html (#778)

* feat: added new relic logs for 3ds (#784)

* fix: Checkout Bulk purchase 'Max' alignment fixed (#781)

* fix: Checkout Bulk purchase 'Max' alignment fixed

* fix: Updated snapshots for cart & payment

* test: added temp logs for testing 3ds (#785)

* revert: removed the previously temporary new-relic logs

* feat: added console logs for loading 3ds details

* feat: removed previous logs and added new relic logs (#786)

* feat: change console to logInfo

* feat: added one more log

* feat: sending program_uuid with stripe-checkout-complete (#788)

* docs: add feedback.rst HOWTO (#782)

* docs: include error handling in feedback.rst title

* docs: move sub-TOCs to relevant sections for clarity

* docs: move feedback.rst sections around

* refactor: updated workflow (#775)

* feat: added readme docs for subscription feature (#793)

* feat: updating readme.md for subscription related work

* feat: added subscription related docs

* feat: fixed the code formatting

* refactor: remove the new relic logs previously added for 3DS testing

* feat: reverted the readme.rst changes

---------

Co-authored-by: Jenkins <sre+jenkins@edx.org>
Co-authored-by: Raza Dar <5585262+mrazadar@users.noreply.github.com>
Co-authored-by: Omar Al-Ithawi <i@omardo.com>
Co-authored-by: Juliana Kang <julianajlk@gmail.com>
Co-authored-by: Mashal Malik <107556986+Mashal-m@users.noreply.github.com>
Co-authored-by: Bilal Qamar <59555732+BilalQamar95@users.noreply.github.com>
Co-authored-by: Mobeen Ali <46916730+mobeenali12@users.noreply.github.com>
Co-authored-by: Phillip Shiu <pshiu@edx.org>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants