I’ve done some more digging and a tried few extra things out of desperation:
- rebuilt the app and ran discourse-doctor to make sure there are no errors
- deleted and rebuilt my membership levels in the procourse-membership plugins using test stripe keys
I can see the new Product Plans (test version) in Stripe when I enable the levels. Hooray!
But when I go to the payment page for the levels, the page renders but the credit card fields don’t load. I get the spinner forever.
Checking the Discourse Error logs and Stripe Error logs turns up nothing. No entries in either log.
So, I thought, maybe it’s a problem with ‘test mode’. Made these changes:
- replaced test keys/webhook with production keys/webhook
- recreated the membership levels within the plugin and enabled them.
- The new product/plans appear in Stripe in the production area. Yippee!
But the same problem occurs when I go to the Discourse payment page. The page renders but the Credit Card fields don’t load. I get the infinite spinner.
No activity in the Stripe logs or Discourse error logs.
=== Eureka! ===
Ugh. I figured it out.
There’s a script required to make the payment work -
js.stripe.com/v3. It was getting blocked as a security error. I added the script to the whitelist and it works quickly and awesomely.
Pretty important detail, that. I was checking app logs but a quick F12 to check the console would’ve been huge 4 days ago.