- 13 Jul 2022
- 5 Minutes to read
- Print
- DarkLight
Stripe Checkout
- Updated on 13 Jul 2022
- 5 Minutes to read
- Print
- DarkLight
Stripe Checkout is a solution prepackaged from Stripe. We've added an integration so users will be able to utilize its functionality right from Salesforce. Read more about Stripe Checkout here.
Prerequisites
- The PayLink package must be installed and configured in your org. Use the Payments Setup Wizard to install PayLink if you haven't already.
- Stripe Checkout must be used with Payment Gateways with the
Provider
set to "Stripe".
Configuring Paylink
Add Stripe Checkout to the Paylink Configuration Object
- Navigate to Setup.
- Use the Object Manager to find the PayLink Configuration object.
- Once you are looking at the PayLink Configuration object click
Fields and Relationships
. - Select
Allowed Payment Methods
. - Find the Values section and click
New
. - Add the value "Stripe Checkout" to the text box.
- Click
Save
.
Set the Value on the Paylink Configuration Object
- Navigate to the Paylink Configuration object you would like to use for your Stripe Checkout Transactions.
- Edit the
Allowed Payment Methods
field to include "Stripe Checkout".
Configuring the Payment Gateway
Update Your Page Layout
- Navigate to the Payment Gateway object in Setup.
- Click
Page Layouts
- Edit the Payment Gateway Layout.
- Add
Accepted Checkout Payment Methods
to the Page Layout.
Setting Values on the Payment Gateway Object
- Navigate to the Stripe Payment Gateway that will be used for Stripe Checkout.
- Edit the field
Accepted Checkout Payment Methods
to include the payment method to be used for Stripe Checkout. The checkout payment method types Stripe Checkout supports are listed here.
NOTE: Stripe updates this list periodically.
Certain payment methods like Sepa Debit only work with certain currencies (EUR). Check out this payment method fact sheet to review limitations for each payment method type.
Add Permissions to Access Encrypted Data
- Create a new Permission Set in Setup. Name it 'Access Encrypted Data'.
- Navigate to
System Permissions
. - Click
Edit
. - Check the box labeled
View Encrypted Data
. - Save the permission set.
- Navigate to the user record in Setup for the person who authenticated the Paylink app. This is the person who clicked the
Authenticate
button while running the Paylink setup wizard. - Add the permission set you just created to their user record.
Assign the Proper Page Layout to the Corresponding Record Type
- Navigate to Setup > Object Manager > Payment Method > Page Layouts.
- Click the
Page Layout
button. - Click
Edit Assignment
. - Ensure that for the "Other" Record Type the "Other" Page Layout is selected.
You might find yourself asking why is there a new Record Type for the Payment Method object. This is to differentiate the Payment Method Types coming in from Stripe Checkout. For Example:
Let's say you want to use IdealPay to complete a Stripe Checkout. When the Payment Method record is created after the webhook has processed you'll notice this record has a Record Type = "Other" and the Type is set to "IdealPay".
Setup Webhooks
If you haven't already setup webhooks in your org you'll want to do this. Stripe Checkout utilizes data that is brought into the org via webhooks. Related records like Payment Method and Payment Gateway Customer are attached to the Transaction AFTER the webhooks process.
Check out this guide for setting up Webhooks.
Accessing Stripe Checkout from Paylink
- Create a Transaction record.
- At a minimum set the following:
Amount
Payment Gateway
(Must be a Payment Gateway connected to Stripe)Paylink Configuration
(Must be the PayLink Configuration with Stripe Checkout set as anAllowed Payment Method
.)
- Click the PayLink URL populated in the
PayLink
field.
Completing a Stripe Checkout with Paylink
- Wait for the PayLink page to load.
- Click
PAY
. - Wait for Stripe Checkout to load.
- Complete the Stripe Checkout form.
- Observe the success page.
- Observe the Paylink with fields
Amount Paid
andPaid on
is displayed.
If you notice you are not getting redirected to Stripe Checkout after clicking the PAY button from the paylink, you may need to reauthorize your Payment Gateway.
Navigate to the connected Payment Gateway and click Connect to Gateway.
At this time Payment Method records created in Stripe Checkout cannot be reused for additional Transactions. These are "One-Time" Payment Methods.
Stripe Checkout Considerations
Payment Method Type Limitations
If you are not seeing your preferred payment method type as an option this is because it is not currently support by Stripe Checkout. A list of supported payment method types for checkout can be found here.
Example: ACH is NOT supported in Stripe Checkout. Please use one of our other solutions for this payment method type.
Apple Pay and Google Pay
In order to see the option for Apple Pay or Google Pay in Stripe Checkout you must be viewing Stripe Checkout from a supported device. Discover more about wallets here.
Example: To view the Apple Pay button in Stripe Checkout you must be using an iOS device AND have your Apple wallet configured. We are working to incorporate most of the Stripe supported Payment Method Types in our solution. However, we will not be supporting the following Payment Method Type: AfterPay ClearPay
Currency Errors
If, while using Stripe Checkout, you encounter and error on the Transaction record that refers to currency there is a workaround available while we develop a long-term solution. Currently, only USD
, EUR
, and GBP
are added to the package as values available on the Payment Intent Object. You'll need to add values following the instructions below for any currency outside of those values.
What you'll see on the Transaction record:
Error Message
= "Insert failed. First exception on row 0; first error: INVALID_OR_NULL_FOR_RESTRICTED_PICKLIST, Currency: bad value for restricted picklist field: cny: [bt_stripe_Currency_c]"Error Parameter
= "The Transaction/Payment Intent was captured in Stripe but failed to save correctly in Salesforce."
The above errors were displayed when attempting to use Stripe Checkout with the AliPay Payment Method Type
and a Transaction with the Currency
of "CNY".
How Do You Resolve?
You'll want to add the desired currency value to the Currency
picklist on the Payment Intent object.
- Navigate to Setup -> Object Manager -> Payment Intent -> Fields & Relationships -> Currency.
- Click the
New
button in the Values section. - Add the
Currency
value to the list of picklist values. (ex: "CNY") Save
your record.