Hey @benmackler,
?Glad you reached out. I can help you with that.
For a bit of context, this is the order of how GiveWP works with the payment gateway to process the donation:
1. The donor fills out the donation form and submits the donation.
2. A donation (and subscription, if applicable) is created on the GiveWP side and set to “pending.”
3. All of the information is sent to the gateway to process the transaction, as well as ongoing subscription renewals.
4. The gateway processes it and notifies the site (via the webhook or IPN) that it went through.
5. GiveWP processes that webhook/IPN and sets the donation to complete.
If the webhook/IPN is unable to reach your site for any reason, the donation will remain “Pending” and eventually change to “Abandoned”.
For Stripe, this is most often caused by a lack of the proper webhook (the only mechanism for sending data from Stripe to your GiveWP site) set in your Stripe account. The good news is that the fix is a few steps of copy-pasting, and we’ve documented it very thoroughly.
The webhook endpoint is a URL that you need to copy and paste into a specific tab of the Stripe Dashboard, and then configure to receive the following events:
checkout.session.completed
payment_intent.succeeded
payment_intent.payment_failed
charge.refunded
customer.subscription.deleted
invoice.payment_failed
invoice.payment_succeeded
Our documentation (with screenshots!) on setting up the webhook is here:
https://givewp.com/documentation/add-ons/stripe-gateway/#connecting-stripe-and-your-webhook-required
If the webhook is correctly configured, you should see a record in the logs at Donations > Tools > Logs > Stripe for every event at Stripe (going forward).
You’ll need to manually go through and mark the older ones as complete, using your Stripe account to cross-reference.
Also, you need to make sure that all the pages related to GiveWP are whitelisted from your cache systems (it depends on the service you are using: a plugin or server). The URL includes:
any page with a donation form on it and/or the donation form URL itself
the /donation-confirmation/ page
the /donation-failed/ page
the /donation-history/ page
the /recurring-donations/ page (if applicable)
Please let us know if you have further questions on this or need any additional assistance!