Payment problems typically fall into two categories: checkout failures (user-facing) and webhook failures (server-to-server). Each requires different diagnostic steps.
Stripe Webhook Signature Verification Failed
Error message: “Webhook signature verification failed” in your PHP error log.
Causes and fixes:
- Wrong webhook secret: The signing secret is per-endpoint. Make sure you copied the secret from the exact endpoint URL in the Stripe Dashboard, not the general API secret key. The webhook secret starts with
whsec_. - Caching proxy stripping headers: Some CDN or reverse proxy configurations strip or modify the
Stripe-Signatureheader. Exclude your webhook URL from caching. - Body modified by WordPress: Some security plugins modify the raw request body, breaking signature verification. Whitelist
/wp-json/influenzic/v1/stripe/webhookin your security plugin.
Payments Succeed in Stripe but Wallet Does Not Update
Cause: Webhooks are not reaching your site.
Diagnosis:
- 1
In Stripe Dashboard, go to Developers → Webhooks → Your endpoint.
- 2
Click Recent deliveries and look for failed attempts.
- 3
Common causes: your server returned a non-2xx status, the URL is unreachable (local dev, behind firewall), or your WordPress site is in maintenance mode.
localhost. Use the Stripe CLI (stripe listen --forward-to localhost:8080/wp-json/influenzic/v1/stripe/webhook) to forward webhooks to your local machine.
PayPal Webhook Not Firing
- Verify the Webhook ID in Settings → PayPal → Webhook ID exactly matches the ID shown in the PayPal Developer Dashboard.
- Ensure you subscribed to the correct events:
CHECKOUT.ORDER.APPROVED,PAYMENT.CAPTURE.COMPLETED. - In Sandbox mode, test events using the PayPal Developer Dashboard’s webhook simulator.
Currency Mismatch Error
Error: “The currency does not match your Stripe account’s default currency.”
Stripe accounts are created in a primary settlement currency. If your platform currency is different, either enable multi-currency in your Stripe account settings, or match the platform currency to your Stripe settlement currency under Influenzic → Settings → General → Currency.