2.4.5 Configuring & Troubleshooting with Stripe

Created by Danny Wong, Modified on Sun, 09 Aug 2020 at 01:08 PM by Danny Wong

Video Setup Instructions

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 the 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 set up 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 before 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

Usually, you will want to cancel subscriptions directly in MemberPress as 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 its 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 see 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 sub_xxxxxxx or if on an older version of MemberPress it might look 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

How to Change Your Stripe Account

NOTE: Do  NOT delete your Stripe gateway and recreate it!

If you need to update your Stripe account that is currently being used for taking payments on your site, please follow these steps:

  1. On the MemberPress Settings Payments tab, edit your current Stripe gateway to differentiate it as your old one. 
  2. On the MemberPress Settings Payments tab, use the (+) option to create your new Stripe gateway. Follow the instructions above to set it up. 
  3. For each and every membership on your site (and all memberships created in the future), follow these steps:
    1. On the MemberPress Memberships > Click on the Membership NameMembership OptionsRegistration tab > click on the Customize Payment Methods setting.
    2. Select all the payment gateways you want users to be able to purchase through. 
    3. Leave the old Stripe gateway option unchecked so that it appears in the Inactive Payment Methods section of that setting. 
    4. Click the Update button to save the membership settings. 
    5. Repeat for every membership on your site and all future memberships. 

Back to the top

Note when Moving to a New Domain

If you are going to be moving to a new domain (i.e. www.olddomain.com to www.newdomain.com), then please, follow these instructions after the domain update:

  1. On the WordPress DashboardMemberPress plugin Settings page > License tab, be sure you are using at least version 1.8.7 or newer of MemberPress and that your license key is active. The version is shown right above the Update button.
  2. Disconnect your Stripe payment gateway in the MemberPress plugin > Settings page > Payments tab (do NOT delete it, just disconnect)
  3. Add /wp-admin/?mp-clear-connection-data=true to the end of your site URL, so it looks something like: https://www.yoursite.com/wp-admin/?mp-clear-connection-data=true
  4. Click Enter on your keyboard to visit that URL. This will clear out your Stripe connection for the old domain.
  5. Now reconnect your Stripe gateway. This will update your webhooks to use the new domain.

Back to the top

Note when Cloning to a Staging Site

As of version 1.8.7 of MemberPress we have added a feature that will help you when cloning live to a staging site. 

If you clone live site, without performing steps below, it could have a negative impact with your Stripe Connect setup. To avoid any potential issues, after you have cloned it to your staging site, be sure to follow these steps on your staging site:

  1. On the WordPress DashboardMemberPressSettings License tab, be sure you are using at least version 1.8.7 of MemberPress and that your license key is active. The version is shown right above the Update button.
  2. Add /wp-admin/?mp-clear-connection-data=true to the end of your site URL, so it looks something like: https://www.yoursite.com/wp-admin/?mp-clear-connection-data=true.
  3. Click Enter on your keyboard to visit that URL.
  4. Delete your Stripe Gateway on the staging site in the MemberPress > Settings > Payments tab.
  5. Add a new Stripe Gateway, by clicking the "plus" symbol on the MemberPress > Settings > Payments tab. Do not re-connect the old one again as it will have the same gateway ID as your live site, which can cause issues.

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 see 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 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. You get the "Sorry, updating your credentials failed. (pmt)" error when you try to complete the Stripe Connect procedure - This most likely means that cURL is either not installed, not functional or not up-to-date on your hosting server. Please go to your WordPress Dashboard -> Tools -> Site Health and check the Status tab for any mention of cURL issues. It could look like this:

    Please note that you'll get the same error message if your WordPress installation is not at version 4.6 or newer.

  5. 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. 
  6. 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 both live and sandbox 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.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select atleast one of the reasons

Feedback sent

We appreciate your effort and will try to fix the article