PHPackages                             remp/crm-stripe-module - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. remp/crm-stripe-module

ActiveLibrary[Payment Processing](/categories/payments)

remp/crm-stripe-module
======================

CRM Stripe Module

4.4.0(5mo ago)18.3k↓33.3%1MITPHPPHP ^8.2

Since Feb 18Pushed 5mo ago8 watchersCompare

[ Source](https://github.com/remp2020/crm-stripe-module)[ Packagist](https://packagist.org/packages/remp/crm-stripe-module)[ Docs](https://remp2030.com)[ RSS](/packages/remp-crm-stripe-module/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (61)Used By (1)

CRM Stripe Module
=================

[](#crm-stripe-module)

[![Translation status @ Weblate](https://camo.githubusercontent.com/1916a4440a56eac474d9e62d39819756402ae3baec1b017e4546ad7fb086ded7/68747470733a2f2f686f737465642e7765626c6174652e6f72672f776964676574732f72656d702d63726d2f2d2f7374726970652d6d6f64756c652f7376672d62616467652e737667)](https://hosted.weblate.org/projects/remp-crm/stripe-module/)

Installation
------------

[](#installation)

We recommend using Composer for installation and update management. To add CRM Stripe extension to your [REMP CRM](https://github.com/remp2020/crm-skeleton/) application use following command:

```
composer require remp/crm-stripe-module
```

Enable installed extension in your `app/config/config.neon` file:

```
extensions:
	# ...
	- Crm\StripeModule\DI\StripeModuleExtension
```

Seed Stripe payment gateway and its configuration:

```
php bin/command.php application:seed
```

Configuration &amp; API keys
----------------------------

[](#configuration--api-keys)

Enter Stripe API keys to CRM

- Visit to CRM admin settings (gear icon) - Payments
- Enter *Stripe publishable* key
- Enter *Stripe secret* key

Keys can be found at [Stripe Dashboard](https://dashboard.stripe.com/test/apikeys). If you don't have the account already, you'll need to create one.

Using module
------------

[](#using-module)

### Stripe Checkout

[](#stripe-checkout)

Stripe Checkout is the most secure and robust scenario of processing payments with Stripe. User is redirected to Stripe's checkout page where he/she enters card details and submits the payment.

We recommend using this scenario as Stripe optimizes the page for various devices. Stripe Checkout is the default flow when this module is enabled.

If you use [remp2020/crm-salesfunnel-module](https://github.com/remp2020/crm-salesfunnel-module), all you need to do is to enable both *Stripe* and *Stripe Recurrent* gateways in your sales funnels (CRM Admin - Sales funnels - Detail - Payment gateways). You can test the integration with our [sample funnel](https://github.com/remp2020/crm-salesfunnel-module/blob/master/src/Seeders/sales_funnels/sample.twig), which will display the new gateways right away after you enable them.

[![Stripe Checkout](./docs/stripe_checkout.gif)](./docs/stripe_checkout.gif)

### Stripe Elements

[](#stripe-elements)

Stripe Elements provide a secure way how to collect card data directly in your sales funnel. To use Stripe elements, include following snippets to your sales funnel.

Include Stripe JS library.

```

```

Add elements that will be initialized to collect the data.

```

    Card holder

```

Initialize Stripe Elements and use your *Stripe publishable key* instead of the placeholder we prepared.

```

    var stripe = Stripe('-- INCLUDE YOUR PUBLISHABLE KEY HERE --');
    var elements = stripe.elements();

    var cardElement = elements.create("card");
    cardElement.mount("#card-element");
    cardElement.addEventListener('change', function(event) {
        var displayError = document.getElementById('card-errors');
        if (event.error) {
            displayError.textContent = event.error.message;
        } else {
            displayError.textContent = '';
        }
    });

```

Attach Stripe handlers to the form submission process.

```
function processStripe(form) {
    var paymentMethodIdField = $('#stripePaymentMethodId');
    var cardholderName = $('#cardholder-name');
    var selectedGateway = $('input[name=payment_gateway]').val();

    if (selectedGateway === 'stripe') {
        stripe.createPaymentMethod('card', cardElement, {
            billing_details: {name: cardholderName.value }
        }).then(function(result) {
            if (result.error) {
                alert(result.error.message);
            } else {
                paymentMethodIdField.val(result.paymentMethod.id);
                debugger;
                form.submit();
            }
        });
        return false;
    }

    if (selectedGateway === 'stripe_recurrent') {
        $.post('/api/v1/stripe/setup-intent', function($data) {
            stripe.confirmCardSetup(
                $data['client_secret'],
                {
                    payment_method: {
                        card: cardElement,
                        billing_details: {
                            name: cardholderName.value,
                        },
                    }
                },
            ).then(function(result) {
                if (result.error) {
                    alert(result.error.message);
                } else {
                    paymentMethodIdField.val(result.setupIntent.payment_method);
                    form.submit();
                }
            });
        }, 'json');
        return false;
    }
}

$(form).submit(function() {
    processStripe();
});
```

Stripe Module also seeded [funnel example with Stripe Elements usage](./src/Seeders/sales_funnels/stripe-elements-sample.twig). You can find it in CRM Admin - Sales Funnels - stripe-elements-sample. To make it work, search for `-- INCLUDE YOUR PUBLISHABLE KEY HERE --` and replace it with the *Stripe publishable key* available at your Stripe Dashboard.

[![Stripe Elements 3D secure](./docs/stripe_elements_3dsecure.gif)](./docs/stripe_elements_3dsecure.gif)

### Wallet payments (ApplePay/GooglePay) - Stripe Payment Request Button

[](#wallet-payments-applepaygooglepay---stripe-payment-request-button)

For using ApplePay or GooglePay you have to use StripeWallet payment gateway. Configuration in CRM is the same as with *Stripe Elements*, but you can setup one more config - *Stripe Display Name*. This text is used as name of merchant, used as label for total amount in payment window.

This payment gateway handles ApplePay and GooglePay via the exact implementation where Stripe shows the correct payment button in the end.

**RECOMMENDATION**: In the sales funnel, please use javascript from documentation and enable/disable this payment method based on client browser support. It doesn't make sense to show the customer ApplePay/GooglePay as a valid payment option if it is unavailable. You can use javascript from official documentation - [![Stripe Payment Request Button](https://camo.githubusercontent.com/05f71dba674d4a8677f08ade066a74f0af15edb0ea76dd98a36a1316aa12e24a/68747470733a2f2f7374726970652e636f6d2f646f63732f7374726970652d6a732f656c656d656e74732f7061796d656e742d726571756573742d627574746f6e)](https://camo.githubusercontent.com/05f71dba674d4a8677f08ade066a74f0af15edb0ea76dd98a36a1316aa12e24a/68747470733a2f2f7374726970652e636f6d2f646f63732f7374726970652d6a732f656c656d656e74732f7061796d656e742d726571756573742d627574746f6e)

It looks like this:

```
var stripe = Stripe("you-public-key", {
    apiVersion: "2020-08-27",
});

var paymentRequest = stripe.paymentRequest({
    country: "SK",
    currency: "eur",
    total: {
        label: "something",
        amount: 100, // 1 eur is OK right now
    },
});

const elements = stripe.elements();
const prButton = elements.create('paymentRequestButton', {
    paymentRequest: paymentRequest,
});

// Check the availability of the Payment Request API first.
paymentRequest.canMakePayment().then(function(result) {
    if (result) {
        if (result.applePay == true) {
            // applePay is available
            // you can unhide payment method
        } else if (result.googlePay == true) {
            // googlePay is available
            // you can unhide payment method
        }
    } else {
        // no wallet payment method is available
        // you shoud hide payment methods here, but i recommend to keep it hidden by default
    }
});
```

#### Known limitation:

[](#known-limitation)

1. You have to copy your stripe public key to each sale funnel where you would like to check the support of wallet payment options.
2. We don't support:
    - Importing shipping addresses from wallets (but it's possible).
    - Importing email of the customer from wallets (but it's possible).
    - Recurrent payments ([but it looks possible](https://support.stripe.com/questions/using-apple-pay-for-recurring-payments)).
    - Use of StripeWallet in our CRM ProductsModule (eshop).

###  Health Score

53

—

FairBetter than 97% of packages

Maintenance71

Regular maintenance activity

Popularity25

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity83

Battle-tested with a long release history

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~36 days

Recently: every ~61 days

Total

60

Last Release

166d ago

Major Versions

0.38.0 → 1.0.0-beta22022-02-03

0.39.0 → 1.0.02022-03-29

1.2.0 → 2.0.02022-08-25

2.9.0 → 3.0.02024-01-22

3.7.0 → 4.0.02025-04-02

PHP version history (6 changes)0.9.0PHP ^7.1

0.30.0PHP ^7.3

0.35.0PHP ^7.4

2.0.0PHP ^8.0

3.0.0PHP ^8.1

4.4.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/7c733f9bd683c3814197d8a532b7da1ba1f631bb1efe1cde5f064feab1e24877?d=identicon)[rootpd](/maintainers/rootpd)

![](https://www.gravatar.com/avatar/a05541c0b35f43d95db5342210e1d9e64242888812d13f5b096df48b6aabd863?d=identicon)[msvitok](/maintainers/msvitok)

![](https://www.gravatar.com/avatar/2c30fdbc85cda35b94f7f59399918193a0289152281abcef344ec9ee82864177?d=identicon)[markoph](/maintainers/markoph)

---

Top Contributors

[![markoph](https://avatars.githubusercontent.com/u/6843562?v=4)](https://github.com/markoph "markoph (28 commits)")[![rootpd](https://avatars.githubusercontent.com/u/812909?v=4)](https://github.com/rootpd "rootpd (25 commits)")[![tomaj](https://avatars.githubusercontent.com/u/446736?v=4)](https://github.com/tomaj "tomaj (6 commits)")[![miroc](https://avatars.githubusercontent.com/u/1230714?v=4)](https://github.com/miroc "miroc (1 commits)")[![mmacsodi-fcm](https://avatars.githubusercontent.com/u/169140294?v=4)](https://github.com/mmacsodi-fcm "mmacsodi-fcm (1 commits)")[![weblate](https://avatars.githubusercontent.com/u/1607653?v=4)](https://github.com/weblate "weblate (1 commits)")

### Embed Badge

![Health badge](/badges/remp-crm-stripe-module/health.svg)

```
[![Health](https://phpackages.com/badges/remp-crm-stripe-module/health.svg)](https://phpackages.com/packages/remp-crm-stripe-module)
```

###  Alternatives

[spatie/laravel-stripe-webhooks

Handle stripe webhooks in a Laravel application

5213.1M8](/packages/spatie-laravel-stripe-webhooks)[tightenco/nova-stripe

A tool to create a quick Stripe dashboard in your Laravel Nova admin panels

110308.9k](/packages/tightenco-nova-stripe)[duncanmcclean/simple-commerce

A simple, yet powerful e-commerce addon for Statamic.

16313.2k2](/packages/duncanmcclean-simple-commerce)[flux-se/payum-stripe

Payum Stripe gateways

29407.5k4](/packages/flux-se-payum-stripe)[payum/stripe

The Payum extension. It provides Stripe payment integration.

22573.1k3](/packages/payum-stripe)[craftcms/commerce-stripe

Stripe integration for Craft Commerce 5.0+

32157.4k3](/packages/craftcms-commerce-stripe)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
