Configuring A Stripe Payment Gateway With 3DS2
Stripe Payment Gateway With 3DS2 Enabled:
Important: Make sure you have updated your org to one of these patches: 2019.1.0.34, 20Spring.0.13, 20Spring.1.3. The following configuration is only applicable to European customers that need a Stripe Payment Gateway with 3DS2 enabled.
In order to process payments as a staff user or collect recurring payments, e.g Scheduled Payments, please contact Stripe support to enable MOTO for your account. Find more details about MOTO payments here.
In order for you to enable 3DS2 on your Stripe payment gateway, you will first need to make sure your org is updated to one of these patches: 2019.1.0.34, 20Spring.0.13, or 20Spring.1.3. Once your org is up-to-date and supports 3DS2, you can create a Stripe payment gateway with 3DS2 enabled. We’ve made sure to cover every aspect of creating a payment gateway with 3DS2 that you might require.
Configure Stripe Payment Gateway:
Important: For Stripe 3DS2 enabled gateways, callbacks return as a guest user and create records as a guest user. If there are customizations in your org, please verify if this custom code will still work for guest users. Fonteva recommends checking the Sales Order, Sales Order Line, Subscription, Term, Attendee, Receipt, Receipt Line, Transaction, and Transaction Line objects to make sure the related custom code is in
without sharing context.
This issue also affects Event Registration. If there are Visualforce email templates as part of email workflows, these templates also must have the
without sharing attribute. For more information, please read Resolving Guest Event Registration Error in Salesforce Summer 20.
If you utilize Stripe, you will want to create a Stripe payment gateway that enables 3DS2.
On the payment gateway configuration page, provide your Payment Gateway Name, Business Group, and Deposit Account as suits you, and select Stripe Payment Intents as your Gateway Type. Do not select Stripe.
You will need your API Key from Stripe. Open a new tab in your browser and navigate to your Stripe account.
From your Stripe account, navigate to Developers > API Keys.
Locate the Secret Key section and click Reveal live key.
Copy the Secret key and return to the payment gateway configuration page in the other tab.
Paste the test key into the API Key field.
Paste your Webhook Signing Secret into the Signing Secret field. The Signing Secret is located in the Signing Secret section of the webhook detail page. Refer to the Create a Webhook Endpoint section below for further information.
Check Require CVV.
Check Enable 3D Secure to enabled 3DS2.
Configure any other options for your payment gateway. When you’re ready, click Save & Close.
Additional Steps For Stripe Gateways:
Payment gateways transfer data points when utilized, which Spreedly helps facilitate. Stripe requires additional data to be sent that Spreedly does not currently accommodate. Because of this, Stripe payment gateway users will need to create metadata to call out this additional data and pass it on to Stripe.
Navigate to Setup > Custom Metadata Types.
Locate Fonteva Registry Entry and select Manage Records.
Click New. The Fonteva Registry Entry Edit page will open.
In the Label field, type Stripe. This value will automatically generate in the Fonteva Registry Entry Name field.
In the Entry Key field, type stripe_payment_intents.
In the Entry Category field, type stripe_payment_intents.
In the Entry Value field, type 18 digit gateway ID of your Stripe gateway.
Ensure Is Enabled is checked.
Click Save to complete.
Repeat Steps 3-9 for each Stripe Payment Intent Gateway that is configured in your org.
Create a Webhook Endpoint:
To use Stripe 3DS on Spreedly, you must create a webhook endpoint at Stripe to allow Fonteva to receive notifications about changes to a payment intent’s status (find more details from Spreedly here).
Create the webhook through your Stripe dashboard (or programmatically,) with the following properties:
Access your Stripe dashboard.
Click Webhooks and select + Add endpoint.
The webhook endpoint modal will open.
In the Endpoint URL field, type https://core.spreedly.com/stripe/webhooks.
From the Events to send dropdown, select payment_intent.succeeded, payment_intent.payment_failed, and payment_intent.amount_capturable_updated.
Click Add endpoint.
All Customers will need to reach out to Fonteva Customer Support with the following information. Fonteva will update the gateway settings accordingly:
Login (Stripe’s secret key).
webhook_id (can be found in your browser’s address bar and is the last segment of the URL. The Stripe webhook begins with we_).
webhook_signing_secret (located in the Signing Secret section of the webhook detail page. Spreedly uses these values to ensure that Fonteva receives notifications for changes to a payment intent’s status and verify that events are sent by Stripe).
Enable Saved Payment Methods
Payment methods can be saved to a Stripe 3DS2 gateway. This functionality is limited to orgs using the following Fonteva releases:
20Spring.1.30 and higher
21Winter.0.23 and higher
Important: Before proceeding, you must contact Stripe support to request “Managing Transaction ID” be enabled for your Stripe account. For additional information, refer to the Spreedly article Adding a Stripe Payment Intents gateway for off-session payments.
Go to App Launcher, then find and select Business Groups.
In the Name column, select the appropriate Business Group.
In the Related List Quick Links area, select Payment Gateways.
At the end of the appropriate Payment Gateway record row, select the drop-down arrow and then select Edit.
At the top right, select Enable transaction id management for Stripe.
Select Save & Close.
Testing a Stripe Payment Gateway
If you are using Stripe in test mode, use 3DS cards provided on Stripe’s site. Find more details from Stripe here.