DEV Community

exeptionalpeople
exeptionalpeople

Posted on

Apple Pay or Google Pay silently failing on WooCommerce? Check these hidden problems

Apple Pay and Google Pay have a nasty failure mode: when something breaks, the problem may not be obvious from your normal WooCommerce logs.

A shopper can tap a wallet button, attempt payment, and still fail to complete an order without leaving you with an obvious explanation of what went wrong.

From the store owner's side, the symptom may simply look like slightly worse conversion.

I went through public WooCommerce support threads for two major gateway plugins — woocommerce-paypal-payments and woocommerce-gateway-stripe — looking specifically at unresolved problems.

One phrase stood out:

apple pay

It appeared repeatedly in unresolved threads for both gateway ecosystems.

That made the problem worth investigating further.

Here's a short set of checks you can run in the next ten minutes.

Start with the domain association file

Apple Pay on the web relies on a domain association file available at:

https://yourstore.com/.well-known/apple-developer-merchantid-domain-association

A browser isn't always the best way to test this URL because browsers automatically handle things like redirects.

Instead, inspect the raw HTTP response.

Run:

curl -sI https://yourstore.com/.well-known/apple-developer-merchantid-domain-association

Things worth investigating include:

301 or 302 — the request is being redirected
404 — the association file isn't available at that path
403 — something may be blocking access to /.well-known/
200 returning HTML — you may be receiving a webpage instead of the expected association file

Now check the www version too:

curl -sI https://www.yourstore.com/.well-known/apple-developer-merchantid-domain-association

A browser can automatically follow redirects and hide what is actually happening at the original URL.

If the two hosts behave differently, you may have found a configuration problem that doesn't affect every customer in the same way.

I built a free checker for this

Instead of running the checks manually, I built a small diagnostic script called Wallet Payment Preflight.

It checks six things:

DNS resolution
Apple Pay association file availability
apex vs www host behavior
HTTPS certificate validity
HTTP → HTTPS redirect behavior
basic HTTPS reachability

It's one Python file.

No third-party dependencies.

No signup.

MIT licensed.

Run it with:

python walletcheck.py yourstore.com

Free checker:

https://github.com/exeptionalpeople/wallet-payment-preflight

The script returns a non-zero exit code when it detects a blocking problem, so it can also be used in CI.

It only makes ordinary public network requests to the domain you give it.

It does not access your WooCommerce admin, payment gateway, orders, passwords, API keys, or customer payment information.

Domain configuration isn't the whole story

The automated checker can only test things visible from outside the store.

Some wallet-payment failures require a human check.

  1. Check whether the problem started after a payment-plugin update

Compare the date of your last known successful Apple Pay or Google Pay order with the dates of recent gateway-plugin updates.

If the timing lines up closely, the update becomes an obvious place to investigate.

  1. Check for duplicate payment SDK loading

Open your checkout page and inspect its source or developer tools.

Search for your gateway's JavaScript SDK.

If the same SDK is being loaded more than once, investigate which plugin, theme, or checkout customization is adding the duplicate.

  1. Check the browser console

Open checkout and press F12.

Look at the Console tab.

A JavaScript error elsewhere on the checkout page can interfere with payment-button initialization or checkout behavior.

  1. Test the actual customer experience

Don't only test from your normal desktop browser while logged into WordPress.

Open checkout on a phone in a private/incognito window and verify that the wallet option actually appears and behaves as expected.

  1. Reconcile gateway payments against WooCommerce orders

This is the check I would not skip.

Export recent payments from your payment gateway.

Then export the corresponding WooCommerce orders.

Match them using fields such as:

transaction/reference information
amount
date and time
order information where available

Investigate any payment that appears in the gateway but doesn't have the corresponding WooCommerce order you expect.

That is potentially more serious than a failed checkout because money may already have been captured while the store's order workflow did not complete correctly.

A ten-minute wallet-payment check

If you're responsible for a WooCommerce store, this is the routine I'd use:

Check the Apple Pay association file.
Compare the apex and www versions of the domain.
Run the free checker.
Test checkout from a phone in a private window.
Check the browser console for JavaScript errors.
Compare recent payment-plugin changes with the start of the problem.
Reconcile gateway payments against WooCommerce orders.

The last step is especially important because it can potentially reveal money already captured without the corresponding order you expected.

Free tool

Wallet Payment Preflight is free and MIT licensed:

https://github.com/exeptionalpeople/wallet-payment-preflight

If the free checker finds the problem, you may not need anything else.

It deliberately doesn't try to access private WooCommerce or gateway data, so there are failure modes it cannot diagnose automatically.

For those cases, I also packaged an 11-failure-mode troubleshooting playbook plus a payment-to-order reconciliation workbook.

It's $12:

https://exceptional7.gumroad.com/l/ygatqfu

The install counts and support-thread observations behind this investigation were collected from the public WordPress.org support ecosystem on September 9, 2026.

Top comments (0)