Configuring & Troubleshooting with Stripe

Note: Our Stripe gateway uses Stripe Connect, which is more secure and easier to setup than previous connections. In order to use this gateway, you must be using MemberPress 1.7.0+. If you do not have this version, please update.

Video Setup Instructions

What This Video Covers

  • 0:00 - 0:45 - Introduction and adding the new gateway option
  • 0:45 - 1:30 - Explanation of using test mode
  • 1:30 - 3:40 - Connecting to Stripe Connect
  • 3:40 - END - Testing the gateway and conclusion

Written Setup Instructions:

Navigate to MemberPress -> Settings -> Payments page and add a new gateway, or if updating an existing - find your existing Stripe gateway.

Either way - Click on the Blue "Connect with Stripe" button.

You will first need to authenticate MemberPress using your MemberPress.com account username/password.

Once authenticated with your MemberPress account. You'll be redirected to authenticate with your Stripe account next.

If you're not logged into Stripe, click the "Sign In" button at the top:

Select your Stripe Account and click the "Connect my Stripe account button":

If your Stripe account has not been fully set up and enabled for Live mode. You will not be able to connect until you have verified your account.

After connecting, you'll be redirected back to MemberPress and you'll see the following:

That's all! Now you're even more secure, and your secret and publishable keys, and webhooks are no longer displayed, and will be managed automatically for you.

Back to the top

Detailed List of Gateway Settings

Below you will find explanations for every setting that you can find for your Stripe Gateway as a reference for both during and after you have setup your gateway:

  • Name - The name users will see when choosing this gateway option during registration.
  • Gateway - This should be set to "Stripe" and will not show up on the frontend.
  • ID - ID of your gateway used in database and to be entered if importing subscriptions for this gateway as outlined here.
  • Show Payment Label - When checked or unchecked, this will show or hide the Name you entered for this gateway option.
  • Show Payment Icon - When checked or unchecked, this will show or hide the Stripe Credit Card symbols for this gateway option.
  • Show Payment Description - When checked or unchecked, this will show or hide the description for this gateway option.
  • Connect to Stripe - If your gateway is not setup you will see the blue "Connect with Stripe" button to begin setting the gateway up. If you have connected your Stripe account then you will see a green message stating the connection has been successful with an option to disconnect it. Only disconnect your Stripe account here if advised to do so by our support team or in the "Gateway Issues" section below. 
  • Test Mode - Check this box if you would like to use Stripe in Test Mode for testing, or leave it unchecked if you are ready for live payments. IMPORTANT NOTE: because of how Stripe works, you will NOT be able to uncheck this option if your site does not have SSL setup on it. Please contact your host regarding how to get SSL on your site if needed.
  • Enable Churn Buster - Churn Buster is a 3rd party service that allows you to automatically respond to failed payments in Stripe with email campaigns, card update pages, and real-time insights to reduce churn by up to 50%. This requires you to have a Churn Buster account, which you can learn more about here or on their website here

Back to the top

Capabilities of the Stripe Integration

  • Process One-Time Payments
  • Process Recurring Payments
  • Process Refunds
  • Cancel Recurring Payments
  • Change Credit Card for Recurring Subscription
  • Pause Recurring Payments
  • Resume Recurring Payments
  • Process Free/Paid Trial Periods
  • Credit Card Expiring Reminders Supported

Configuring for the EU's SCA

The EU is soon enforcing (Sept 14th 2019 - possibly later as some extensions have been allowed) Strong Customer Authentication (SCA). Stripe is handling this SCA with 3D Secure (3DS).

MemberPress 1.6.0+ now fully supports SCA via Stripe's new SCA enabled API's. Be sure you keep your MemberPress plugin up to date to keep up with the latest changes and improvements.

At this time, there's nothing special you need to do to get this working, aside from enabling the emails mentioned below.

When a member is registering and 3DS is enforced, a pop-up will appear where they can complete their 3DS authentication. If successful, the subscription and subsequent payments should then proceed without needing further authentication. If not successful, the customer will see an authentication failed error and be asked to try again.

Subscriptions created prior to SCA enforcement should not be subject to 3DS, however, we do anticipate that in the future some renewals could end up being held for 3DS authentication by the customer's bank.

When a payment is held for authentication, Stripe can automatically email the customer with a link to (re)authenticate. But you must enable the email options in your Stripe.com dashboard settings.

Stripe.com -> Dashboard -> Settings -> Stripe apps -> Billing -> Subscriptions and emails -> Manage payments that require 3D Secure.

Your settings should look like this:

How to Test with Stripe

First, you will need to set your gateway to test mode by simply checking the Test Mode box after connecting Stripe as outlined in the video above between minutes 1:30 and 3:40. When going through the registration process as a new user would, you will need to present test card credentials. Here you can find the list of approved Stripe Test Card credentials. For additional info on testing in MemberPress, please see this page.

How to Process a Refund

Though you should normally be able to follow  our instructions to refund users who signed up via Stripe, you can also follow these detailed instructions provided by Stripe support to cancel directly in Stripe if needed. 

Cancelling in Stripe

Normally, you will want to cancel subscriptions directly in MemberPress as is  outlined here. However, you may need to cancel a subscription directly in your Stripe Dashboard. This would mainly be needed if you deleted the subscription in MemberPress before correctly cancelling it. If this or anything else is the case, you can follow these detailed instructions to cancel directly in your Stripe Dashboard (please click here to see these steps done in a brief video):

  1. Login to your Stripe Dashboard here
  2. In the top search bar, search for the user based on the user's email (best) or username. 
  3. Click on the correct customer based on your search.
  4. Scroll down to the 'Active subscriptions' section.
  5. Click on the '...' icon.
  6. Click 'Cancel subscription'.
  7. In the popup, select 'Immediately' as the option.
  8. Click the 'End subscription' button. 
  9. Verify that in the 'Active subscriptions' section it now says, "No active subscriptions".

Back to the top

Editing Stripe's Auto-Cancellation Trigger

After X amount of failed attempts to bill a recurring subscription, Stripe will automatically cancel the subscription. Within your Stripe Dashboard, you can control how many attempts Stripe will make before automatically cancelling the subscription. This is done from within your Stripe Dashboard > Settings > Stripe Apps > Billing Settings > Retry Rules, as shown here:

You are welcome to set this to be whatever you would like, but just note that if you are using  Churn Buster, you should have it set to auto-cancel after last failed attempt (as is set with the "cancel the subscription" option from the dropdown as shown above - the same setting is available for Custom dunning rules as well).

How to Add a Missing Payment

These instructions are to be followed when in Stripe you see a completed payment, but that payment is not reflected on the MemberPress > Transactions page and/or is not connected to it's subscription on the MemberPress > Subscriptions page *

Please note that a missing payment is a sign that there is an issue with your Stripe webhook, or (though less likely) it is being blocked by a server/host security feature or impacted by aggressive caching. Please follow our instructions in the Gateway Issues section below (first point) to fix this.

*If you are seeing a Subscription ID on the MemberPress > Subscriptions page for the user that looks like mp-sub-xxxxxxxxxxx then that needs to be fixed before proceeding. Please follow these instructions to fix. 

Step 1 - Find the Transaction ID for the Payment in Stripe

To begin with, you will need some information in order to find the payment if you are not already aware of it. Things you can use to search for it include:

  • The subscription ID (if a recurring subscription) as it appears on the MemberPress > Subscriptions page (looks like cus_xxxxxxxx).
  • The user's email, which can be found on the WordPress > Users page OR the MemberPress > Members page.
  • The date the billing happened.
With that information obtained, you can find the transaction ID in Stripe by following these steps:
  1. Login to your Stripe Dashboard. You can use this link.
  2. Using the top search bar, enter in the information gained above.
  3. Click on the PaymentIntents section from your search results. This is where payments are listed. 
  4. Verify the correct payment based on the information you already have about the user and payment (date of purchase, user's email, etc.). 
  5. Click on the payment and scroll down until you see this section:

  6. Copy the Latest charge ID you see there. This will be used in Step 2 below.

Step 2 - Manually add the Transaction

To manually add the missing payment, you can follow these steps based on the type of payment you received:

A Single One-Time Payment (NOT associated with an existing recurring subscription):
  1. Go to MemberPress -> Transactions.
  2. Select Add new at the top of the page.
  3. Paste in Transaction ID you identified above in Step 1 into Transaction number.
  4. Select the user you would like the transaction to be associated with. You can start typing in the username and available options will pop up.
  5. Select which Membership the transaction should be associated with.
  6. Add the transaction Sub-Total amount. This should be what the user paid you.
  7. Add in any data related to taxes as applicable.
  8. Set the Status of the transaction to Complete.
  9. Set the Gateway to Stripe.
  10. Leave the Subscription field blank.
  11. Add the Created Date. The date you set here will be the date at which the user paid you.
  12. Add the Expiration Date. The date you set here will be the date at which the user's payment is set to expire.
  13. Select Create.
If you want to add a transaction to an existing recurring subscription:
  1. Go to MemberPress -> Subscriptions.
  2. Search for the user's subscription you would like to add the missing payment to.
  3. Hover over the subscription's unique ID and click on the, "Add Txn," link.
  4. Paste in Transaction ID you identified above in Step 1 into Transaction number.
  5. Select the user you would like the transaction to be associated with. You can start typing in the username and available options will pop up.
  6. Select which Membership the transaction should be associated with.
  7. Add the transaction Sub-Total amount. This should be what the user paid you.
  8. Add in any data related to taxes as applicable.
  9. Set the Status of the transaction to Complete.
  10. Set the Gateway to Stripe.
  11. Leave the Subscription field as is (it should have been auto-populated with the correct ID).
  12. Add the Created Date. The date you set here will be the date at which the user paid you.
  13. Add the Expiration Date. The date you set here will be the date at which the user's payment is set to expire.
  14. Select Create.

Step 3 - Verify

After completing these steps, the payment should be correctly added and the user's subscription should be marked as active as highlighted here ( Note: on the MemberPress > Subscription page, the Active column should be set to a green Yes and the Expires on column should reflect the missing payment's expiration date.): 

Back to the top

Gateway Issues

If you have followed exactly the instructions on this page for setting up your gateway, then it should work properly. So, if you are noticing issues with your gateway, it is likely going to be related to one of the items listed below. We have also included what to do if you are seeing these issues.

  1. Subscriptions and/or Transactions aren't updating correctly - If you are seeing subscriptions connecting to MemberPress with an ID that looks like mp-sub-xxxxxxxxxx and transactions that have ID's that look like mp-txn-xxxxxxxxxx then the issue is related to your Webhook URL. You may be able to resolve this issue by navigating to your MemberPress > Settings > Payments tab > and using the "Disconnect" button to to break the connection, then reconnecting using the setup instructions above for a soft reset. Please do this at a low traffic time for your site as any signup attempts made while disconnected will result in a failed signup. If this does not work, please contact us
  2. You or the user aren't receiving the MemberPress Welcome email, New user sign up email, or other MemberPress emails - These new user MemberPress emails are triggered during the registration process by a completed transaction. If the transaction isn't completing in MemberPress, but is marked as such in Stripe, then this is related to the Webhook URL. Please follow the same instructions in the above point to fix.
  3. You received an email from Stripe with this subject or similar: Problem with your Stripe webhook (https://yoursite.com/mepr/notify/df5436-452/whk) - This email could be triggered by one of the following two items: (1) TLS/SSL certificate issues. Stripe refuses to send the webhook because it doesn't like the SSL setup on the site. To resolve you will need to contact whoever you purchased your SSL/TLS certificate through to make sure your certificate is up to date with the current standards that Stripe is looking for. (2) 403 error caused by an anti-spam or security plugin. To resolve you will need to find the plugin causing the issue by deactivating any plugin fitting that criteria. If the issue goes away after deactivating the plugin, then you will know that is the plugin that was causing the issue.
  4. Your users are seeing this error before getting to the payment screen: ERROR Invalid Payment Method. - This likely means that you have enabled the Customize Payment Methods and left this gateway option unchecked. To fix this, simply uncheck the Customize Payment Methods option altogether, or if you need it to disable other gateway options for your membership, be sure to check this gateway option. 
  5. Checkout page loads, but data cannot be entered into the form. - This will occur if you are not complying with Stripe's security requirements (having a valid SSL certificate for live payments is mandatory) OR if you are using a javascript minimizer or optimizer. Please contact Stripe support to verify that your SSL/TLS certificate is compliant with their requirements. 

Help?

Are you still having issues with your Stripe gateway even after reviewing the solutions outlined in the Gateway Issues section above? No problem, just send us a support ticket with a brief description of your issue, and what you have found in your tests so far. Please do not send us a support ticket until after you have followed the instructions in the Gateway Issues section to the best of your ability . . . we will ask you to review those things if your issue resembles any of those listed points. : )

Back to the top