Checkout: add stripe-wallet payment method (Stripe Link via ExpressCheckoutElement) - #112007
Checkout: add stripe-wallet payment method (Stripe Link via ExpressCheckoutElement)#112007martian77 wants to merge 7 commits into
Conversation
|
WordPress.com
Automattic for Agencies
|
|
Looks like one of the E2E tests has failed. You can fix them following these steps:
|
9b4524b to
9837cb7
Compare
9837cb7 to
8964e8b
Compare
|
Here is how your PR affects size of JS and CSS bundles shipped to the user's browser: Sections (~1074 bytes added 📈 [gzipped]) DetailsSections contain code specific for a given set of routes. Is downloaded and parsed only when a particular route is navigated to. Async-loaded Components (~47 bytes added 📈 [gzipped]) DetailsReact components that are loaded lazily, when a certain part of UI is displayed for the first time. Legend What is parsed and gzip size?Parsed Size: Uncompressed size of the JS and CSS files. This much code needs to be parsed and stored in memory. Generated by performance advisor bot at iscalypsofastyet.com. |
…oogle Pay wallet reuse failure
23d18a2 to
1d00372
Compare
Part of SHILL-2099
Proposed Changes
stripe-walletpayment method backed by Stripe'sExpressCheckoutElement(ECE), scoped to Link only in this phaseWPCOM_Billing_Stripe_Wallet↔stripe-walletto both directions of the payment method name translation map and to theCheckoutPaymentMethodSlug/WPCOMPaymentMethodtype unionsstripe-wallet-processor.tsimplementing a deferred client-confirm flow: POST to/me/transactionswithWPCOM_Billing_Stripe_Wallet→ extractpayment_intent_client_secret→ callstripe.confirmPayment({ elements, clientSecret, redirect: 'if_required' })→ return success withorder_idfor pending-page polling<Elements>provider (deferred-intent mode:mode/amount/currency/setup_future_usage) inside the payment method'sactiveContentso ECE can render without touching the sharedStripeHookProvidercheckout/stripe-walletfeature flag (enabled indevelopmentandwpcalypso, off in production)Why are these changes being made?
Stripe Link is an express wallet checkout that lets returning Stripe-networked users pay with a single click. The
ExpressCheckoutElementis Stripe's modern unified surface for Link, Apple Pay, and Google Pay; this PR adds the frontend plumbing for the Link-only phase. The backendWPCOM_Billing_Stripe_Walletprocessor is a companion piece tracked separately.The deferred client-confirm pattern (server parks an unconfirmed PaymentIntent, client calls
stripe.confirmPayment) was chosen to align with an open precedent from the Memberships team and to enable webhook-driven provisioning without a custom return-URL endpoint.Testing Instructions
WPCOM_Billing_Stripe_Walletprocessor to be in place before end-to-end testing is possible — that work is not yet mergedcheckout/stripe-wallet: true) and a backend returning a mockpayment_intent_client_secret, the ECE mounts under the payment method row and the Link button renders in Chrome (suppressed in Firefox with strict ETP — expected, not a bug)Pre-merge Checklist