-
Notifications
You must be signed in to change notification settings - Fork 72
Release testing instructions for WC Payments 3.8.0
The settings page express checkouts section should display a simple Apple/Google Pay card where the option can be toggled on and off. All other Apple/Google Pay settings should be consolidated into a second-level settings page, accessible via a Customize
link.
- Go to **Payments > Settings` via WP-Admin
- Ensure you see a simple Apple Pay / Google Pay card next to the Express Checkouts section:
- Make sure the Apple Pay / Google Pay checkbox is selected and save settings
- From the front end, add an item to the cart, go to checkout, and attempt to checkout with Apple Pay (safari).
- From the front end, add an item to the cart, go to checkout, and attempt to checkout with Google Pay (chrome).
- Back in WooCommerce Payments settings, select the 'Customize' link next to Apple Pay / Google Pay
- Ensure you are directed to the Apple Pay / Google Pay second-level settings page:
- Ensure you can toggle/change the various checkbox and radio fields and saves persist these changes
- Ensure changing these settings impacts the Apple Pay and Google Pay buttons on the front-end
Selected options from a remote site are synced to WPcom without having Jetpack-the-plugin.
For each step asking to verify the result (starting with Expectation
), please do:
- Log in wordpress.com with the account you used to connect your test site.
- Visit https://developer.wordpress.com/docs/api/console/ and run
GET /v1.1/me/sites
.
There may be delay in reflecting the correct result but the delay time should not be longer than 5 minutes.
- If your test site has Jetpack-the-plugin active, DEACTIVATE IT.
- If your test has not connected to Jetpack/WP.com, please do that but no need to go through the KYC process on stripe.com. Otherwise, you can use the site from other tests.
- In your test site, go to site.com/wp-admin/plugins.php, try deactivating and activating the WooCommerce plugin.
- Expectation:
options.woocommerce_is_active
reflects the state of WooCommerce plugin activation. In other words, this value istrue
if WooCommerce is active, andfalse
otherwise.
- MUST-DO: Create a new Jurassic test site.
- If the test site has Jetpack-the-plugin active, DEACTIVATE IT.
- Install "WooCommerce Payments" 3.7.x from WP.org in WP Admin > Plugins > Add new > search for "WooCommerce Payments". DO NOT use the testing zip file at this point.
- Activate "WooCommerce Payments" and connect this site to WPcom. (No need to go through KYC in Stripe).
- In your test site, go to site.com/wp-admin/plugins.php, try deactivating and activating the WooCommerce plugin.
- Expectation:
options.woocommerce_is_active
is alwaysfalse
. - Make sure that "WooCommerce Payments" and "WooCommerce" are active.
- Upload and activate the testing zip file for this week.
- Expectation:
options.woocommerce_is_active
is switched totrue
.
When UPE is enabled, new payment or setup intents are created on each load of the Checkout page. This results in a high number of abandoned intents, potentially wasting network resources. This change fixes this behavior by caching the newly created intent in the session. Once cached, it is then reused in the next mounting of UPE.
Reloading the Checkout page does not lead to the creation of new intent.
Testing will require you to enable UPE first. Do this by using the "Enable the new Stripe checkout experience" option on the Settings page. Update the store currency as per the payment methods you want to test. Eg. Giropay, iDEAL, etc. will require Euro as the store currency.
- Create a new order in the front-end.
- Open Network tab in browser's dev tools, and visit the Checkout page.
- On this page, notice an XHR call to
create_payment_intent
. - Reload the page. No fresh XHR call to
create_payment_intent
should be observed. - Complete the payment. The cached intent should be removed. Verify this by visiting the Checkout page again and observing an XHR call to
create_payment_intent
. - Also check if the cached intent is removed when a payment fails. When any of the following is used, reloading the Checkout page should generate a fresh XHR call to
create_payment_intent
:- a credit card that is immediately declined
- a card that requires further authentication and eventually the transaction fails
- a redirection payment method (e.g. Giropay, SEPA, iDEAL, Sofort, etc.) and eventually the transaction fails
- a saved payment method that fails
FYI: The intent id retrieved from cache or received as a response from create_payment_intent
is used only when a new payment method is used. Using saved cards (successfully) will create a new intent on the server, resulting in the UPE intent being abandoned.
- Open Network tab in browser's dev tools, and visit My account → Payment methods → Add payment method.
- On this page, notice an XHR call to
init_setup_intent
. - Reload the page. No fresh XHR call to
init_setup_intent
should be observed. - Add a new payment method.
- The cached intent should be removed after successfully adding a new PM.
- Go back to the "Add payment method" page. A fresh XHR call to
init_setup_intent
will confirm that the previously cached intent was removed.
- New card - successful payment
- New card - declined
- New card - authentication failed
- Saved card - successful payment
- Saved card - authentication failed
- New SEPA - successful payment
- Saved SEPA - successful payment
- Giropay - successful payment
- Giropay - failed payment
For a full sanity testing, it's a good idea to see if the remaining UPE methods are not breaking due with the new changes — Bancontact, iDEAL, Sofort, and Przelewy24.
There was an internal refactor that changed how the order statuses were changed and how notes were applied with those changes.
Specific notes should be added to orders based upon how the order was moved to a certain status.
Successful order:
- Add item to cart and check out with test card.
- View order in admin.
- Order should be Processing or Completed, depending on if the product is virtual and downloadable.
- Order should have 3 notes:
- A payment of TOTAL was started using WooCommerce Payments (INTENT_ID). (Will not show if using a saved card.)
- Order status changed from Pending payment to Processing.
- A payment of TOTAL was successfully charged using WooCommerce Payments (CHARGE_ID). Total is the order total, and Charge_Id will be a link to the transaction details page.
Failed order:
- Add item to cart and check out with
4000000000000002
as your test card. - Order will fail.
- View order in admin.
- Order should be in Failed status.
- Order should have 3 notes:
- A payment of TOTAL was started using WooCommerce Payments (INTENT_ID).
- Order status changed from Pending payment to Failed.
- A payment of TOTAL failed using WooCommerce Payments (INTENT_ID). Total is the order total, and Intent_Id will be a link to the transaction details page.
Pending order:
- Go to Payments > Settings and enable Bancontact as a payment method.
- Add item to cart and go to checkout page.
- Update your currency to Euro via MC widget.
- Select Use a new payment method, and then select Bancontact.
- Click Place order, but do not complete the order on the next page.
- View order in admin.
- Order should be in Pending payment status.
- Order should have 1 note:
- A payment of TOTAL was started using WooCommerce Payments (INTENT_ID).
On-hold order:
- Go to Payments > Settings and then the Transactions and deposits section.
- Enable the Issue an authorization on checkout, and capture later setting.
- Add item to cart and check out with test card.
- View order in admin.
- Order should be in On Hold status.
- Order should have 3 notes:
- A payment of TOTAL was started using WooCommerce Payments (INTENT_ID).
- Order status changed from Pending payment to On hold.
- A payment of TOTAL was authorized using WooCommerce Payments (INTENT_ID). Total is the order total, and Intent_Id will be a link to the transaction details page.
Capture authorized payment:
- Using previous order, go to Order actions at the top right of the order in the admin.
- Choose Capture charge and either click the right arrow or Update.
- Order should be Processing or Completed, depending on if the product is virtual and downloadable.
- Order should have 2 new notes:
- Order status changed from On hold to Processing.
- A payment of TOTAL was successfully charged using WooCommerce Payments (CHARGE_ID). Total is the order total, and Charge_Id will be a link to the transaction details page.
Cancel authorized payment:
- Add item to cart and check out with test card.
- View order in admin.
- Order should be in On Hold status.
- Choose Cancel authorization and either click the right arrow or Update.
- Order should be in Cancelled status.
- Order should have 2 notes:
- Order status changed from On hold to Cancelled.
- Payment authorization was successfully cancelled.
Capture authorization failure:
- Enable below snippet in your store, either through theme or Code Snippets.
- Add item to cart and check out with test card.
- View order in admin.
- Order should be in On Hold status.
- Choose Capture charge and either click the right arrow or Update.
- Order should remain in On hold status.
- Order should have 1 new note:
- A capture of TOTAL failed to complete using WooCommerce Payments (false_id). Error: No such payment_intent: 'false_id'
add_filter( 'woocommerce_order_get_transaction_id', function() {
return 'false_id';
});
There was a bug that would send all transactions whenever an email download was sent in regards to transactions related to deposits.
The file in the email should only include transactions related to the selected deposit.
- Go to Payments > Deposits and choose a deposit that has more than one transaction. This can be a pending/estimated deposit.
- After the page loads, add
&per_page=1
to the url in the address bar and hit return/enter. - There should now be one transaction showing per page, and now you can click the Download button at the top right of the list to trigger the email download.
- You should receive an email with a csv file with the transactions related to the deposit that was chosen.