Simple Membership Plugin › Forums › Simple Membership Plugin › 403 Error – Redirect to Paid Registration Link
Tagged: 403 error
- This topic has 6 replies, 3 voices, and was last updated 1 week, 5 days ago by
admin.
-
AuthorPosts
-
July 13, 2026 at 8:14 pm #32191
Align
ParticipantThank you for your assistance.
I have tried to submit an email via the Premium Addon Support link, but the form said it didn’t send.
I am using the Membership Plugin. I have paid for the BBpress Integration Plugin because this is for a forum. I am also using the SWPM Full Page Protection plugin.
I need to know if there is a plugin issue, or if it’s a hosting issue.
I have twice tried to create a membership with Stripe to see if this works. Once the payment is processed it directs me to page that says
The server sent back an error: 403 Forbidden
It should be directing me to a page created for the user to register for the forum.
The user does not receive an email about an account being created. I do not see the payments pending in Stripe, but the customer is listed twice because I tried the transaction twice. The test amount was .01
Thank you for any guidance you can provide.
[2026/07/13 15:15:28] – SUCCESS: Stripe SCA checkout session create request received. Processing request…
[2026/07/13 15:15:29] – SUCCESS: Stripe SCA checkout session created successfully.
[2026/07/13 15:15:40] – SUCCESS: Stripe SCA checkout session create request received. Processing request…
[2026/07/13 15:15:40] – SUCCESS: Stripe SCA checkout session created successfully.
[2026/07/13 15:18:22] – SUCCESS: Stripe SCA checkout session create request received. Processing request…
[2026/07/13 15:18:22] – SUCCESS: Stripe SCA checkout session created successfully.
[2026/07/13 15:20:32] – SUCCESS: Validating Stripe webhook event…
[2026/07/13 15:20:32] – SUCCESS: Stripe webhook event data validated successfully!
[2026/07/13 15:20:32] – SUCCESS: Stripe subscription webhook received. Webhook type: invoice.payment_succeeded, API version: 2020-08-27. Checking if we need to handle this webhook.
[2026/07/13 15:20:32] – SUCCESS: End of Stripe subscription webhook processing. Webhook type: invoice.payment_succeeded
[2026/07/13 15:20:32] – SUCCESS: Ignoring unused stripe webhook event. Webhook type: customer.subscription.created
[2026/07/13 15:25:32] – SUCCESS: Stripe SCA checkout session create request received. Processing request…
[2026/07/13 15:25:32] – SUCCESS: Stripe SCA checkout session created successfully.
[2026/07/13 15:26:31] – SUCCESS: Validating Stripe webhook event…
[2026/07/13 15:26:31] – SUCCESS: Stripe webhook event data validated successfully!
[2026/07/13 15:26:31] – SUCCESS: Stripe subscription webhook received. Webhook type: invoice.payment_succeeded, API version: 2020-08-27. Checking if we need to handle this webhook.
[2026/07/13 15:26:31] – SUCCESS: End of Stripe subscription webhook processing. Webhook type: invoice.payment_succeeded
[2026/07/13 15:26:31] – SUCCESS: Ignoring unused stripe webhook event. Webhook type: customer.subscription.createdJuly 13, 2026 at 8:25 pm #32193The Assurer
ModeratorBecause you’re also using the SWPM Full Page Protection addon, temporarily disable that addon and repeat the payment test. This will help determine whether the 403 is being triggered by page protection or by something external.
If your host provides page caching or server-level security, ask whether any rules are returning a 403 on the registration URL after Stripe redirects back to your site.
The developer has been notified.
July 14, 2026 at 12:53 am #32194Align
ParticipantThank you for the reply.
Deactivating the SWPM Full Page Protection plugin gives the same result – 403 forbidden.
Hosting disabled ModSecurity and the same result happened – 403 forbidden
Does this plugin need XMLRPC access enabled in order to create the registration pages?
July 14, 2026 at 3:02 am #32195admin
KeymasterThanks for the detailed log.
Your webhooks are working correctly
Looking at the log, the Stripe webhooks are being received, validated, and processed successfully (invoice.payment_succeeded). The line “Ignoring unused stripe webhook event. Webhook type: customer.subscription.created” is normal, expected behavior — our plugin only acts on the events it needs and ignores the rest with a 200 response. It never returns a 403 for any webhook. So the 403 you’re seeing is not coming from our plugin’s webhook handling.
The 403 is a server-level block
“The server sent back an error: 403 Forbidden” is a response from your server (or a security/firewall layer in front of it), not from our plugin. Since you’ve already ruled out the SWPM Full Page Protection addon and ModSecurity, the next step is to identify exactly which request is being blocked:
Open your browser’s Developer Tools → Network tab, then run the payment test again. Find the request returning 403 and note its URL. That tells us what’s being blocked (e.g. admin-ajax.php, a REST API endpoint, or the return/registration page).
Check for any other security layer: Cloudflare or another CDN/WAF, Wordfence or a similar security plugin, or host-level firewall rules beyond ModSecurity. Any of these can return a 403 on a specific URL or query string.Regarding XML-RPC
No, our plugin does not require XML-RPC to create registration pages or to process Stripe payments. You can leave it disabled; it’s unrelated to this issue.
Worth double-checking your setup
While you investigate the 403, it’s also worth confirming your Stripe button and webhooks were configured per our documentation:
Stripe subscription button: https://simple-membership-plugin.com/sca-compliant-stripe-subscription-button/
Creating the webhook: https://simple-membership-plugin.com/create-a-webhook-in-your-stripe-account/
Webhook signing secret (recommended): https://simple-membership-plugin.com/configuring-the-stripe-webhook-signing-secret/Once you’ve identified the blocked request from the Network tab, reset the log file, run another test, and share both the 403 request URL and the new log data. That will pinpoint the source.
July 17, 2026 at 4:17 am #32201Align
ParticipantThank you very much for the assistance.
The firewall was blocking bad query strings and XSS attacks. Not sure which one caused the problem but both are deactivated and now the Stripe process works. However, there is still a redirect issue.
Since that is settled, I assumed that Paypal would work as planned, but it doesn’t.
What happens is that the payment is made and then the Paypal screen remains blank. It doesn’t redirect anywhere. It stays on a white screen on the Paypal site. I tried on a computer and on a phone.
An email is received about the Paypal subscription via Paypal, but there are no emails sent about the forum. There is no way for a user to proceed from paying to registering for the forum.
I am testing using the “Guest” feature since I don’t have another Paypal account to login to.
IPN is active. It points to the homepage.
Please advise on what needs to be checked so that I can correct this. Thank you.
[2026/07/14 10:09:26] – SUCCESS: PayPal Subscription ID: I-S2NS62PFURWS
[2026/07/14 10:14:45] – SUCCESS: PayPal Subscription button edit – billing plan details have been updated.
[2026/07/14 10:19:09] – SUCCESS: swpm_pp_create_subscription ajax request received for createSubscription. Button ID: 664, On Page Button ID: swpm_paypal_button_0
[2026/07/14 10:19:09] – SUCCESS: Created new PayPal subscription plan for button ID: 664, Plan ID: P-9K936929SL356351VNJLEKXI
[2026/07/14 10:19:10] – SUCCESS: PayPal Subscription ID: I-2CJ1T8Y83CRY
[2026/07/14 10:20:27] – SUCCESS: swpm_pp_create_subscription ajax request received for createSubscription. Button ID: 664, On Page Button ID: swpm_paypal_button_0
[2026/07/14 10:20:28] – SUCCESS: PayPal Subscription ID: I-LKFLJXSLAVWN
[2026/07/14 10:30:50] – SUCCESS: swpm_pp_create_subscription ajax request received for createSubscription. Button ID: 664, On Page Button ID: swpm_paypal_button_0
[2026/07/14 10:30:50] – SUCCESS: PayPal Subscription ID: I-0MW2HEJWWWEY
[2026/07/15 19:04:17] – SUCCESS: After login redirection addon. Checking if member need to be redirected.
[2026/07/16 16:48:49] – SUCCESS: Sandbox mode API credentials are not set.
[2026/07/16 16:53:35] – SUCCESS: swpm_pp_create_subscription ajax request received for createSubscription. Button ID: 705, On Page Button ID: swpm_paypal_button_0
[2026/07/16 16:53:35] – SUCCESS: Created new PayPal subscription plan for button ID: 705, Plan ID: P-36V41838UM841790VNJMUJTY
[2026/07/16 16:53:36] – SUCCESS: PayPal Subscription ID: I-N9K4VVNNXJ6T
[2026/07/16 16:53:44] – SUCCESS: Webhook event type: BILLING.SUBSCRIPTION.CREATED. Event summary: Subscription created
[2026/07/16 16:59:20] – SUCCESS: Webhook event type: BILLING.SUBSCRIPTION.ACTIVATED. Event summary: Subscription activated
[2026/07/16 16:59:20] – SUCCESS: Handling Webhook status update. Subscription ID: I-N9K4VVNNXJ6TJuly 17, 2026 at 4:41 am #32203admin
KeymasterThanks for the update, and thanks for reporting back that it was the firewall’s bad query string / XSS rules causing the 403. That’s a useful detail, because it’s very likely relevant to the PayPal issue too.
Your PayPal log shows exactly where the flow stops
A complete PayPal subscription checkout produces this sequence in the debug log:
1. swpm_pp_create_subscription ajax request received for createSubscription… ✔ you have this
2. PayPal Subscription ID: I-XXXXXXXX ✔ you have this
3. Webhook event type: BILLING.SUBSCRIPTION.CREATED ✔ you have this
4. Webhook event type: BILLING.SUBSCRIPTION.ACTIVATED ✔ you have this
5. OnApprove ajax request received for createSubscription… ✘ missingStep 5 is the one that matters. The onApprove step is a browser-side callback: once PayPal approves the subscription, the button’s JavaScript sends one final AJAX request from the customer’s browser back to your site’s admin-ajax.php. That request is what creates the payment/member record, sends the registration email, and returns the URL the customer should be redirected to.
Your log has no OnApprove entry at all, which matches your symptoms precisely: PayPal takes the payment (hence the PayPal emails and the ACTIVATED webhook), but the popup never hands control back to your page — so no registration email and no redirect. The webhooks alone do not create the member account; the onApprove request does.
Most likely cause
Since your firewall was already returning 403s on this site, the first thing to rule out is whether it’s still blocking that second AJAX request. The onApprove request POSTs a JSON payload (subscription details, PayPal URLs, etc.) to admin-ajax.php — exactly the kind of thing that “bad query string” and XSS filter rules tend to trip on. The first AJAX call (create subscription) is a much smaller payload, which would explain why that one gets through and this one doesn’t.
To confirm, please do this:– Open your Join page in a browser where you are not logged in as admin.
– Open Developer Tools → Network tab (tick “Preserve log”), and also open the Console tab.
– Complete a test payment.
– Look for a POST to admin-ajax.php with action=swpm_onapprove_process_subscription. Tell us whether it appears at all — and if it does, what status code and response body it returns.
– Note any red errors in the Console.That one check tells us whether the request is being blocked (firewall/WAF), is failing (server error), or is never sent, which would point to a JavaScript conflict instead.
https://simple-membership-plugin.com/forums/topic/test-for-plugin-and-theme-conflict-before-posting-an-issue-or-a-bug/August 5, 2026 at 5:06 am #32235admin
KeymasterIt has been a couple of weeks, so I’ll mark this topic as resolved. If you still need assistance, please reply here.
-
AuthorPosts
- You must be logged in to reply to this topic.