Note: These instructions are intended for MemberMouse 2.4.2 and earlier. In more recent versions, we have simplified the process of configuring Stripe with MemberMouse. Please see our instructions on Configuring Stripe for details.


Configuring Stripe to process MemberMouse payments on your site is as simple as grabbing API keys from Stripe and pasting them into your MemberMouse Payment Methods settings. After doing this, MemberMouse will use the Stripe API to process credit card payments initiated from your site and store all critical credit card information securely with Stripe in order to support MemberMouse's 1-click buy functionality as well as Bill Card on File.




Understanding Your Options to Stripe Setup


When you navigate to MemberMouse > Payment Settings, you will see that Stripe has 3 options for setup.

You can enable Test Mode for testing your membership purchase user-flow, or you can enable a live mode with either of two options, Stripe.js, or Stripe Elements.





Using either of the two live mode options, your site will process credit card payments in real-time. While Test Mode is useful during the initial development of your site as it enables you to test everything by using Stripe Test Cards and without spending real money. 

If you want to learn more about setting up, and using Test Mode, we have a detailed article on using Stripe Test Mode here.

 

If you are ready to activate Stripe fully and accept credit cards on your website, you will then choose either Stripe.js or Stripe Elements. We recommend using Stripe Elements.



The Difference Between Stripe Elements and Stripe.js


Stripe Elements is available in MM v2.3.0+ and is enabled by default in MM v2.4.0+.
With Stripe Elements, a 3D Secure checkout flow occurs. This is mandatory for customers in the European Economic Area (EEA) to be compliant with the Strong Customer Authentication (SCA) requirement of the PSD2. It is highly recommended for all other customers.

When enabled, your customer may be asked to complete an extra step at checkout where they are prompted by their bank to provide additional information (such as, a one-time code sent to their phone) before the payment will be processed. 


Please note: While the billing address fields are not required, we recommend requiring the zip/postal code, as some banks may reject transactions where it is not included.


Stripe Elements uses Stripe.js for tokenization, but also embeds Stripe's credit card fields directly on the checkout page via iFrame. As a result merchants may qualify for a less rigorous PCI-DSS SAQ by using Stripe Elements (SAQ A-EP vs SAQ D). Stripe Elements is the recommended method to use.


Stripe.js (Legacy) is an older form of security protection for the checkout form. With Stripe.js, credit card data is exchanged (using JavaScript) for a payment token prior to the checkout form being submitted.


This option primarily exists for legacy customers who may still be using this format. Using this option may expose your site to a lower level of PCI compliance and is not recommended for new installs.

Please note: If you use Stripe.js, a full billing address must be collected at checkout. The billing address cannot be made optional.


IMPORTANT: Only Stripe Elements and Stripe.js can be used at checkout.
Any API transactions are untokenized and this practice results in higher PCI compliance SAQ requirements. See the CreateMember API Call article for more info.


Step One - Obtaining the Stripe API Keys


  1. Log into Stripe.com.

  2. On the main Dashboard screen, you'll see a menu on the left-hand side. Select Developers from that menuThen API Keys. The API page will load and show an API Keys box with your Live Secret Key and Live Publishable Key.

  3. Set this page aside temporarily and continue onto the next step. You will return to this page to copy the Live Publishable Key and Live Secret Key from the Token column.



Step Two - Configuring Stripe in MemberMouse


  1. From your WordPress Dashboard go to MemberMouse > Payment Settings and click on the Payment Methods tab.

  2. Under Onsite Payment Method, select Stripe. This will display the Stripe configuration options.

  3. Indicate whether or not you want to keep Stripe Elements enabled or enable Stripe.js. We recommend the use of Stripe Elements as it has the highest level of compliance and security.

  4. Paste the Stripe Live Secret Key in field labelled Live Secret Key.

  5. Paste the Stripe Live Publishable Key in the field labelled Live Publishable Key.

  6. Click the Save Payment Methods button.




Important Note: If you do not paste the keys into the appropriate fields, your checkout will not work. You will notice that your keys will begin with “sk_live,” or “pk_live,” indicating Secret Key or Publishable Key.


Your site is now ready to start accepting credit card payments and processing them through your Stripe account. Since you'll be collecting sensitive data on your site you'll need to ensure that you have an SSL certificate configured for your domain and that you're using HTTPS on pages that collect sensitive data (i.e. checkout pages, login etc). Read this article for steps you can take to install an SSL on your site.



Styling Stripe Fields


Because MemberMouse takes most of its styling queues from your installed WordPress theme, and Stripe Elements embeds Stripe's checkout fields for credit card data directly on your checkout page; there will be some appearance differences between the two.  For more information on what these are and the available options, view the Formatting section of our Activating the 3D Secure Checkout Process for SCA article.



Changing your API Key


You can change your Stripe API key without having any issues with rebilling. MemberMouse will simply use the new key for transactions after you've changed it. If you've had billing failures after changing to a new key, you may want to test and make sure there's not a problem with the new key. You can do this by processing a transaction and then issuing a refund with the new key.



Changing your Stripe Account


With onsite payment methods like Stripe, MemberMouse stores card-on-file tokens (the card info is stored with Stripe). If you change Stripe accounts, the card-on-file tokens associated with your payments will no longer be valid, meaning rebill transactions will not be able to process, and existing customers cannot initiate new charges with the existing card-on-file. 


In order to solve the need for changing Stripe accounts, Stripe now offers a service where they can migrate most customer information from one Stripe account to another, making it possible to change a Stripe account and maintain your billing subscriptions. Our customers seem to be happy with their service, although a few small caveats are involved such as refunds need to be done manually on migrated accounts and some dating may need adjustments on their Stripe records. To learn more about this service Stripe offers, they have this article with full details about account migration.



Stripe API Updates


Stripe regularly upgrades their API, but they are very good about keeping it backwards-compatible. 

MemberMouse v2.4.0 uses Stripe API Version: 6.41.0, released 2019-07-31  



Additional Articles Involving Stripe