| 开发者 | famosmedia |
|---|---|
| 更新时间 | 2026年7月16日 20:36 |
| PHP版本: | 8.1 及以上 |
| WordPress版本: | 7.0 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
https://your-site/wp-json/abovault/v1/stripe-webhook for the events payment_intent.succeeded, payment_intent.payment_failed and setup_intent.succeeded.error 1010) and will silently drop Stripe's webhooks — SEPA charges then never confirm and dunning misfires. Add an allow/skip rule for the exact path /wp-json/abovault/v1/stripe-webhook (or allowlist Stripe's published IP ranges). Confirm delivery in Stripe → Developers → Webhooks (expect HTTP 200 for a signed request).SEPA Direct Debit via Stripe in this version. The gateway layer is provider-agnostic internally, so additional processors can be added.
In your own WordPress database (wp_abovault_subscriptions and wp_abovault_enrollments). Only the payment itself is handled by Stripe.
A renewal charge stays pending until Stripe's webhook confirms it. Reminder emails and retries only fire when a payment truly fails, so customers are never chased during normal SEPA settlement.
Webhooks are how SEPA charges are confirmed, so delivery matters. Make sure the endpoint https://your-site/wp-json/abovault/v1/stripe-webhook is reachable from the public internet and returns HTTP 200 for a signed request. The most common blockers are a firewall, a security plugin, or a CDN/proxy such as Cloudflare (Bot Fight Mode / WAF) rejecting non-browser POST requests. If so, add an allow/skip rule for that path (or Stripe's IP ranges). You can confirm delivery in the Stripe Dashboard under Developers → Webhooks.
Data sovereignty is a design goal: subscription records never leave your server. You remain the controller; Stripe is your payment processor.