Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Determine the proper setting for split UPE to work with WooPay #6828

Merged
merged 3 commits into from
Jul 21, 2023

Conversation

timur27
Copy link
Contributor

@timur27 timur27 commented Jul 20, 2023

Fixes #6730

Changes proposed in this Pull Request

This PR ensures that for the legacy card gateway in the split UPE, the correct flag is provided to the client side so that the proper Stripe account is used, depending on whether the WooPay is enabled or disabled. Due to the nature of rolling out scripts, we ended up overriding the proper forceNetworkSavedCards value with the UPE gateway, which was rolled out as the second and could never use WooPay, leading the flag having the value of false always.

Testing instructions

  1. Enable split UPE
  2. Enable WooPay
  3. Enable any number of additional payment methods other than the card
  4. Attempt to purchase a product on the shortcode checkout while paying with card
  5. Confirm that the payment went successfully and you were redirected to the Order received page
  6. Purchase a product with any other payment method like giropay or similar and confirm the successful purchase

Checkout to develop, perform steps 1-4 from above and confirm that instead of the fifth successful step, a user is seeing Error: No such PaymentMethod: 'pm_${ID}'.

Blocks checkout isn't affected, but making a single purchase and confirming it works will be appreciated.

Perform steps 1-5 for the legacy card gateway and steps 1-6 for the deferred intent creation UPE gateway. Also, sanity checks the legacy UPE checkout by performing steps 1-6 excluding step 2.


  • Run npm run changelog to add a changelog file, choose patch to leave it empty if the change is not significant. You can add multiple changelog files in one PR by running this command a few times.
  • Covered with tests (or have a good reason not to test in description ☝️)
  • Tested on mobile (or does not apply)

Post merge

@timur27 timur27 force-pushed the fix/split-upe-with-woopay-and-multiple-pms branch from d623ec2 to 89c207f Compare July 20, 2023 10:48
@botwoo
Copy link
Collaborator

botwoo commented Jul 20, 2023

Test the build

Option 1. Jetpack Beta

  • Install and activate Jetpack Beta.
  • Use this build by searching for PR number 6828 or branch name fix/split-upe-with-woopay-and-multiple-pms in your-test.site/wp-admin/admin.php?page=jetpack-beta&plugin=woocommerce-payments

Option 2. Jurassic Ninja - available for logged-in A12s

🚀 Launch a JN site with this branch 🚀

ℹ️ Install this Tampermonkey script to get more options.


Build info:

  • Latest commit: 16b50bb
  • Build time: 2023-07-20 10:52:38 UTC

Note: the build is updated when a new commit is pushed to this PR.

@github-actions
Copy link
Contributor

Size Change: 0 B

Total Size: 1.25 MB

ℹ️ View Unchanged
Filename Size
release/woocommerce-payments/assets/css/admin.css 1.03 kB
release/woocommerce-payments/assets/css/success.css 158 B
release/woocommerce-payments/dist/blocks-checkout.css 1.4 kB
release/woocommerce-payments/dist/blocks-checkout.js 39.7 kB
release/woocommerce-payments/dist/checkout.css 444 B
release/woocommerce-payments/dist/checkout.js 28.4 kB
release/woocommerce-payments/dist/index.css 38.8 kB
release/woocommerce-payments/dist/index.js 283 kB
release/woocommerce-payments/dist/multi-currency-analytics.js 1.05 kB
release/woocommerce-payments/dist/multi-currency-switcher-block.js 60.5 kB
release/woocommerce-payments/dist/multi-currency.css 2.91 kB
release/woocommerce-payments/dist/multi-currency.js 55.3 kB
release/woocommerce-payments/dist/order.css 730 B
release/woocommerce-payments/dist/order.js 40.4 kB
release/woocommerce-payments/dist/payment-gateways.css 704 B
release/woocommerce-payments/dist/payment-gateways.js 38.7 kB
release/woocommerce-payments/dist/payment-request.js 11.6 kB
release/woocommerce-payments/dist/product-details.js 777 B
release/woocommerce-payments/dist/settings.css 8.73 kB
release/woocommerce-payments/dist/settings.js 198 kB
release/woocommerce-payments/dist/subscription-edit-page.js 669 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.css 527 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.js 20.2 kB
release/woocommerce-payments/dist/subscription-product-onboarding-toast.js 693 B
release/woocommerce-payments/dist/subscriptions-empty-state.css 298 B
release/woocommerce-payments/dist/subscriptions-empty-state.js 19.4 kB
release/woocommerce-payments/dist/tos.css 236 B
release/woocommerce-payments/dist/tos.js 21.7 kB
release/woocommerce-payments/dist/upe_checkout.css 444 B
release/woocommerce-payments/dist/upe_checkout.js 33.9 kB
release/woocommerce-payments/dist/upe_split_checkout.css 444 B
release/woocommerce-payments/dist/upe_split_checkout.js 34.4 kB
release/woocommerce-payments/dist/upe_with_deferred_intent_creation_checkout.js 35.5 kB
release/woocommerce-payments/dist/upe-blocks-checkout.css 1.4 kB
release/woocommerce-payments/dist/upe-blocks-checkout.js 39.4 kB
release/woocommerce-payments/dist/upe-split-blocks-checkout.css 1.41 kB
release/woocommerce-payments/dist/upe-split-blocks-checkout.js 40.8 kB
release/woocommerce-payments/dist/woopay-express-button.js 16.7 kB
release/woocommerce-payments/dist/woopay.css 4.06 kB
release/woocommerce-payments/dist/woopay.js 70.4 kB
release/woocommerce-payments/includes/subscriptions/assets/css/plugin-page.css 633 B
release/woocommerce-payments/includes/subscriptions/assets/js/plugin-page.js 720 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/i18n-loader.js 2.43 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/i18n-loader.js 1.01 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-ajax.js 522 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-callables.js 581 B
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/babel.config.js 160 B
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/build/index.css 2.32 kB
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/build/index.js 13.8 kB
release/woocommerce-payments/vendor/automattic/jetpack-identity-crisis/build/index.rtl.css 2.32 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/about.css 1.2 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-order-statuses.css 403 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin.css 3.56 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/checkout.css 299 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/modal.css 742 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/view-subscription.css 572 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/wcs-upgrade.css 411 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin-pointers.js 544 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin.js 9.55 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.js 6.8 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.min.js 3.83 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-coupon.js 544 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-subscription.js 2.38 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.js 22.1 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.min.js 11.6 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/payment-method-restrictions.js 1.29 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/wcs-meta-boxes-order.js 502 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/payment-methods.js 355 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/single-product.js 429 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/view-subscription.js 1.38 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/wcs-cart.js 781 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/modal.js 1.1 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/wcs-upgrade.js 1.27 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.css 392 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.js 3.06 kB

compressed-size-action

@timur27 timur27 requested a review from FangedParakeet July 20, 2023 11:06
Copy link
Contributor

@FangedParakeet FangedParakeet left a comment

Choose a reason for hiding this comment

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

Can confirm the original issue and that this is indeed resolving it. ✅

Was the root cause of this because the JS config was being overwritten when rendering the payment fields for UPE payment methods? 🤔 If so, maybe we should think about refactoring this in the future, so that like the hooks these global variables are only appended to the page once, to ensure there aren't any more unintended side-effects in the future.

That being said, for now, LGTM. 👍

@timur27
Copy link
Contributor Author

timur27 commented Jul 21, 2023

Was the root cause of this because the JS config was being overwritten when rendering the payment fields for UPE payment methods?

Yes.

This field is now supposed to base only on the card gateway since the flag for non-card gateways was separately added in #6656. I agree the refactor is needed in this area at some point.

@timur27 timur27 added this pull request to the merge queue Jul 21, 2023
Merged via the queue into develop with commit 4646dcb Jul 21, 2023
@timur27 timur27 deleted the fix/split-upe-with-woopay-and-multiple-pms branch July 21, 2023 08:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Card payments on the shortcode checkout fail for the split UPE with WooPay
3 participants