innoweb / silverstripe-silvershop-stripe
Adds stripe customer and creditcard saving to silvershop
Installs: 2 863
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 3
Forks: 7
Open Issues: 1
Type:silverstripe-vendormodule
Requires
- omnipay/stripe: ^3.0
- silvershop/core: ^3.1
- silverstripe/cms: ^5
- silverstripe/vendor-plugin: ^2
This package is auto-updated.
Last update: 2024-10-24 01:21:39 UTC
README
Stripe uses a little different payment flow than other processors in that you have to do some clientside javascript work to set it up and you get a token back instead of credit card processing fields.
This module uses Omnipay's Stripe adapter but overrides SilverShop's default checkout component to inject the right JavaScript.
Based on Mark Guinn's SS3 version, extended with saving of the token to the Member object for later use.
Requirements
- SilverStripe CMS 4.*
- SilverShop Core 3.*
- Omnipay Stripe 3.*
uses Stripe.js v3
Installation
composer require innoweb/silverstripe-silvershop-stripe
Configuration
Payment Intents
Create a file at app/_config/payment.yml
that looks something like the following:
---
Name: payment
---
SilverStripe\Omnipay\Model\Payment:
allowed_gateways:
- 'Stripe_PaymentIntents'
SilverStripe\Omnipay\GatewayInfo:
Stripe_PaymentIntents:
failureUrl: '/checkout/summary'
parameters:
apiKey: sk_test_SECRET-KEY-FOR-YOUR-TEST-ACCOUNT
publishableKey: pk_test_PUBLISHABLE-KEY-FOR-TEST-ACCOUNT
---
Only:
environment: 'live'
---
SilverStripe\Omnipay\GatewayInfo:
Stripe_PaymentIntents:
failureUrl: '/checkout/summary'
parameters:
apiKey: sk_live_SECRET-KEY-FOR-YOUR-LIVE-ACCOUNT
publishableKey: pk_live_PUBLISHABLE-KEY-FOR-LIVE-ACCOUNT
If needed, the customer will be redirected to Stripe or his bank to verify the transaction via SCA or 3D-Secure.
A custom failure URL can be specified here for when a payment fails (for example, the card was declined).
Stripe Charge (deprecated)
Create a file at app/_config/payment.yml
that looks something like the following:
---
Name: payment
---
SilverStripe\Omnipay\Model\Payment:
allowed_gateways:
- 'Stripe'
SilverStripe\Omnipay\GatewayInfo:
Stripe:
parameters:
apiKey: sk_test_SECRET-KEY-FOR-YOUR-TEST-ACCOUNT
publishableKey: pk_test_PUBLISHABLE-KEY-FOR-TEST-ACCOUNT
---
Only:
environment: 'live'
---
SilverStripe\Omnipay\GatewayInfo:
Stripe:
parameters:
apiKey: sk_live_SECRET-KEY-FOR-YOUR-LIVE-ACCOUNT
publishableKey: pk_live_PUBLISHABLE-KEY-FOR-LIVE-ACCOUNT
Saving cards
The module creates Stripe customers and cards when a payment is processed. To disable the use of previously stored cards in the checkout process, add the following to your config:
---
Name: app-stripe-config
After: silvershop-stripe-config
---
Innoweb\SilvershopStripe\Checkout\Components\StripeOnsitePayment:
enable_saved_cards: false
This will hide the field to select previsouly stored cards in th epayment form. The card tokens will still be stored in the background in order to be able to process refunds and future manual payments.
License
BSD 3-Clause License, see License