Stripe Payment Element show with the default layout and theme

This module integrates Drupal Commerce with various Stripe payment solutions, including the Payment Element (pictured to the right) and the legacy Card Element.

Stripe supports many payment method types, including credit card, mobile wallets (e.g., Apple Pay), bank transfers, and more. Both element integrations support advanced fraud detection, Strong Customer Authentication (e.g., 3D Secure), and secure payment method tokenization.

Features

  • Configure Payment Element for use on the review page
  • Configure the legacy Card Element for use in the payment checkout pane
  • Uses the Stripe.js library that ensures card data never touches your server
  • Payments in Drupal Commerce synchronized with Stripe
  • Supports voids, captures, and refunds through the order management interface

Drupal 7 documentation + FAQs

The 1.x and 2.x versions of this module are unsupported and will receive no updates. It is highly recommended that any existing installations be upgraded to 3.x, which contains new features and bug fixes. The 3.x version is used in production sites already, but please exercise caution while the module is in Alpha as APIs may be subject to change.

Upgrading to the 3.x branch only requires that you have the latest version of the Stripe PHP Library placed in your codebase at /sites/all/libraries/stripe-php.

Installation

These instructions only apply to Drupal 7 versions. For Drupal 8 and beyond, you should install the module using Composer as shown on the release node to ensure the correct version and dependencies are installed.

  1. Install and activate the Commerce Stripe and Libraries modules.
  2. Download the latest Stripe PHP release from GitHub.
  3. Extract the contents of the archive into the directory /sites/all/libraries/stripe-php
  4. Create an account at Stripe.com,and insert your API keys from the Stripe Dashboard into the Commerce Stripe payment method settings at admin/commerce/config/payment-methods.

Library and API compatibility

Since Stripe continues to iterate on their Library versions, work is underway to make sure that the Drupal version of the Commerce Stripe module correlates to the correct Library version:

  • If you are using 7.x-3.x, use Stripe Library versions 3.x, 4.x or 5.x (latest: 5.6.0)
  • If you are using 7.x-1.x, use Stripe Library version 1.x. (last version was 1.18.0)

TLS 1.2 requires newer versions of cURL and OpenSSL.

To keep sites that contain sensitive information (such as credit card numbers) secure, Stripe is phasing out the older SHA-1, TLS 1.0 and TLS 1.1 in favor of newer technologies such as TLS 1.2.

If you receive the error, "Stripe no longer supports API requests made with TLS 1.0. Please initiate HTTPS connections with TLS 1.2 or later," this has nothing to do with the Commerce Stripe module or PHP library, but the web server itself — you or your hosting company will need to upgrade the installed packages on your server.

See this comment and issue for more information on updating your server's installed packages to resolve this error.

Note on PCI-DSS compliance

As of the implementation of PCI-DSS 3.0 (January 2015), this module is intended to work within the requirements of Self-Assessment Questionnaire A-EP, though the designation may vary based on your chosen integration method. The module maintainers offer no warranties or guarantees regarding this designation, leaving merchants responsible for their own PCI compliance.

For more information, see the third party Drupal PCI Compliance White Paper.

Supporting organizations: 
Integration and merchant support
Drupal 7 development

Project information

Releases