- 1 Stripe Features
- 2 Install the Stripe Add-on
- 3 Stripe Settings
- 4 Entering your Stripe API Credentials
- 5 Adding an SSL certificate
- 6 Strong Customer Authentication
- 7 Payment Authentication
- 8 Processing a payment with Stripe
Stripe Add-on allows you to offer credit and debit card payments directly on your website and this way your users do have not leave your website to complete the payment, resulting in a better experience for the user, and more successful conversions for you.
- Stripe One Time Payment – You can accept one time credit card payments directly on your website
- Stripe Recurring Payment – You can accept recurring credit card payments directly on your website by using the Renewal Feature
- Stripe Payment with Sign-up Fee – Represents the amount that you can charge people upfront when subscribing to a Subscription Plan
- Stripe Payment with Free Trial – Represents the amount of time before charging the first Recurring Payment. The Sign-up Fee applies regardless of the Free Trial
Install the Stripe Add-on
Stripe is a Pro add-on, available with a Paid Member Subscriptions Pro license only.
After purchasing the add-on, the .zip file will be available for download under your account page by clicking the “Add-ons Download” button.
Once downloaded, you can install the add-on as a normal WordPress plugin, by uploading the .zip file in your WordPress Admin -> Plugins -> Add New -> Upload Plugin.
Alternatively, you can install the Stripe add-on by extracting the folder found inside the archive and uploading the entire folder via FTP to your /wp-content/plugins folder found inside your WordPress install.
Choosing the right gateway
Once the add-on is activated, navigate to Paid Member Subscriptions -> Settings -> Payments where you’ll find Stripe listed among the Active Payment Gateways.
You’ll have two gateway options:
- Stripe (Payment Intents)
The gateways are similar, but Stripe (Payment Intents) supports payments made with additional authentication (3D Secure, 3D Secure 2) making it SCA compliant. You can only select one gateway out of the two.
If your business is located somewhere else, but you are starting to see transactions being declined due to `Authentication` errors, you should switch to the Stripe (Payment Intents) gateway as well. Click here for info about migrating to this gateway.
Other Paid Member Subscriptions Payments Settings that we can setup:
- Currency – Select your currency. Please note that some payment gateways can have currency restrictions
- Currency Position – Select whether the currency symbol should appear before the price or after the price
- Test Mode – By checking this option you will be able to use Paid Member Subscriptions with Test Accounts from your payment processors
- Active Payment Gateways – Select which Payment Gateways are active on your domain
- Default Payment Gateway – Select which Payment Gateway is selected by default inside the Registration form
- Renewal – Select renewal type from “Customer opts in for automatic renewal”, “Always renew automatically” or “Never renew automatically”. The Subscription Renewal feature can override this option
This is how the Paid Member Subscriptions Registration Form looks like after we activate the Stripe Payment Gateway:
Renewal (Recurring Payments)
You can setup the Stripe Payment Gateway to process recurring payments on your domain. To use the Renewal feature go to Paid Member Subscriptions -> Settings -> Payments -> Renewal.
The Renewal option settings:
- Customer opts in for automatic renewal – If this option is selected the user will be able to decide if he wants to make a One Time Payment or a Recurring Payment. To make a recurring payment he will need to check inside the Registration form the “Automatically renew subscription” checkbox
- Always renew automatically – If this option is selected all payments will be Recurring
- Never renew automatically – If this option is selected all payments will be One Time Payments
Starting with Paid Member Subscription v1.5.0 you can setup the Renewal feature based on Subscription Plan. The Renewal option setup inside the Subscription Plan will overwrite the Renewal option setup in the Settings page.
Starting with Paid Member Subscriptions Pro v1.5.0 you can setup Sign-up Fees for your Subscription Plans. The Sign-up Fee represents the amount that you can charge people upfront when subscribing to a Subscription Plan.
To setup the Sign-up Fee option go to Paid Member Subscriptions -> Subscription Plans -> Edit your Subscription plan -> Setup Sign-up Fee.
Based on the example below users will need to pay $70 for the Gold plan and also the $10 Sign-up Fee. Users will pay the Sign-Up Fee only once and doesn’t take in consideration the Renewal option.
Starting with Paid Member Subscriptions Pro v1.5.0 you can setup Free Trials for your Subscription Plans. The Free Trial represents the amount of time before charging the first Recurring Payment. The Sign-up Fee applies regardless of the Free Trial.
To setup the Free Trial option go to Paid Member Subscriptions -> Subscription Plans -> Edit your Subscription plan -> Setup Free Trial.
Based on the example above users will receive a 1 Month Free Trial if they purchase the Silver Plan. After the expiration of the Subscription Plan users will be able to renew manually the plan from their Account.
If you setup the Renewal option to “Always renew automatically” the Subscription Plan will renew automatically.
Entering your Stripe API Credentials
In order to be able to make payments through Stripe and to use all the Stripe Features you will need to add your Stripe API credentials. Go to Paid Member Subscriptions -> Settings -> Payment Gateways -> Stripe to add your Stripe API Credentials (Stripe Secret and Publishable Keys).
Note – When using Paid Member Subscriptions in Live Mode use your Live Stripe API Credentials and when using Paid Member Subscriptions in Test Mode use your Test Stripe API Credentials
Stripe Live and Test API Credentials
You will find your Live and Test API Credentials inside your Stripe Account. After you login go to API and there you should see the Test and Live API Credentials. Also make sure you are using the latest API Version.
Adding an SSL certificate
An SSL certificate is used to establish a secure encrypted connection.
Online SSL Certificate Checker – https://www.ssllabs.com/ssltest/
You can obtain security certificates for free instead of paying for traditional SSL certificates (which cost ~ 80$+/year) and install them much easier using Let’s Encrypt. It is a free, automated and open certificate authority that issues domain-validated certificates.
The most secure protocol for sharing information on the web today is Transport Layer Security (TLS) version 1.2. Stripe is enabling support for TLS 1.2 for all secure connections and in 2017 will start requiring its use.
You will need to verify that your environment supports TLS 1.2 and if necessary make appropriate updates. Stripe is updating its services to require TLS v1.2 for all HTTPS connections and all TLS v1.0 and TLS v1.1 API connections will be refused.
As the Stripe SSL Certificate Requirements says, all interactions between your server and Stripe must use TLS v1.2. Please contact your hosting and tell them to update the TLS of your SSL Certificate to v1.2. Also tell them that there is an issue with SSLv3 that is preventing Stripe to work correctly. A suggestion would be to disable SSLv3 in order to see if the payments are processed correctly.
Add https in WordPress
After you install your SSL Certificate on your domain please go to your website -> Login as Admin -> Access the dashboard -> Settings -> General and make sure you add https inside WordPress Address (URL) / Site Address (URL).
Also we recommend to use a free plugin like Really Simple SSL – It automatically detects your settings and configures your website to run over https.
Strong Customer Authentication
Strong Customer Authentication (SCA) is a new European regulatory requirement coming into effect on September 14, 2019, as part of the PSD2 regulation, put in place to help reduce fraud and make online payments more secure.
Card payments will require a different user experience, namely 3D Secure, in order to meet SCA requirements. Transactions that don’t follow the new authentication guidelines may be declined by your customers’ banks.
To learn more about SCA please read this guide: https://stripe.com/ie/guides/strong-customer-authentication
If your business is located in the European Economic Area (EEA), you serve customers in the EEA and you accept debit or credit cards you are required to use the Stripe (Payment Intents) gateway in order for payments to be processed correctly.
If your business is located somewhere else, but you are starting to see transactions being declined due to `Authentication` errors, you should switch to the Stripe (Payment Intents) gateway as well.
Migrating to the Stripe (Payment Intents) gateway
If you are already using the regular Stripe gateway and wish to migrate, there are two things you need to do:
- go to PMS -> Settings -> Payments and enable the Stripe (Payment Intents) gateway
- update your Stripe API Version to the latest one. To do this, go to your Stripe Dashboard page
Afterwards, the plugin will process future payments through the new API.
Your users don’t have to re-enter their payment details, but due to the new regulations put in place, their next payment after you switch the gateway might require additional authentication. If that’s the case, the plugin will send them an email with a link they need to follow in order to resume the subscription. Learn more about this process
When the user is on session and authentication is required, after pressing the submit button of a form, a popup will be displayed in which the user needs to complete the authentication process.
The above is an example of the popup using a Test payment, the popup will look differently based on the type of card used, issuing bank and type of authentication required.
The authentication will be performed using either 3D Secure or 3D Secure 2.
To test this on your website you can use the following test credit card number: 4000002500003155. More test credit card numbers for SCA can be found here.
A payment is considered off session when it’s made by the plugin without the user being available on the website. All recurring payments are off session payments.
When authentication is required for an off-session payment the plugin will send the user an email with an URL they need to click in order to return back to the website so the plugin can authenticate the payment.
After they return to the website, the plugin will show a message and after a short while the Payment Authentication popup shown above will appear where they will need to authenticate the payment in order for the subscription to continue.
Customize the Payment Authentication email
The email that is sent to the user can be customized by going to the PMS -> Settings -> Emails -> User Emails page.
Processing a payment with Stripe
We will test the payments by using Paid Member Subscriptions in Test Mode. Go to Paid Member Subscriptions -> Settings -> Payments -> Check “Test Mode”. For testing purposes we need to use one of the following credit cards:
|Number – CVV 111||Brand|
One Time Payment
Inside our Registration form we display 3 Subscription Plans: Bronze, Silver and Gold and the Renewal option is set to “Customer opts in for automatic renewal”.
When the Renewal option is set to “Customer opts in for automatic renewal”, in order to setup a recurring subscription, the user will need to check the “Automatically renew subscription” checkbox.
Free Trial Payment
The checkout experience for payments with Free Trials is similar to the regular one, the difference appears on the admin side where you will not see a payment appearing when the user finishes the registration process.
In order to find information about the user you will need to go to the PMS -> Members page.