Stripe Checkout
  • 13 Jul 2022
  • 5 Minutes to read
  • Dark
    Light

Stripe Checkout

  • Dark
    Light

Article Summary

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.

H_02_18_Stripe checkout 1

Prerequisites

  1. The PayLink package must be installed and configured in your org. Use the Payments Setup Wizard to install PayLink if you haven't already.
  2. Stripe Checkout must be used with Payment Gateways with the Provider set to "Stripe".

Add Stripe Checkout to the Paylink Configuration Object

  1. Navigate to Setup.
  2. Use the Object Manager to find the PayLink Configuration object.
  3. Once you are looking at the PayLink Configuration object click Fields and Relationships.
  4. Select Allowed Payment Methods.
  5. Find the Values section and click New.
  6. Add the value "Stripe Checkout" to the text box.
  7. Click Save.

Set the Value on the Paylink Configuration Object

  1. Navigate to the Paylink Configuration object you would like to use for your Stripe Checkout Transactions.
  2. Edit the Allowed Payment Methods field to include "Stripe Checkout".

Configuring the Payment Gateway

Update Your Page Layout

  1. Navigate to the Payment Gateway object in Setup.
  2. Click Page Layouts
  3. Edit the Payment Gateway Layout.
  4. Add Accepted Checkout Payment Methods to the Page Layout.

Setting Values on the Payment Gateway Object

  1. Navigate to the Stripe Payment Gateway that will be used for Stripe Checkout.
  2. 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

  1. Create a new Permission Set in Setup. Name it 'Access Encrypted Data'.
  2. Navigate to System Permissions.
  3. Click Edit.
  4. Check the box labeled View Encrypted Data.
  5. Save the permission set.
  6. 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.
  7. Add the permission set you just created to their user record.

Assign the Proper Page Layout to the Corresponding Record Type

  1. Navigate to Setup > Object Manager > Payment Method > Page Layouts.
  2. Click the Page Layout button.
  3. Click Edit Assignment.
  4. Ensure that for the "Other" Record Type the "Other" Page Layout is selected.

H_02_18_Stripe checkout 2

Why is There a New Record Type?

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.

  1. Create a Transaction record.
  2. 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 an Allowed Payment Method.)
  3. Click the PayLink URL populated in the PayLink field.
  1. Wait for the PayLink page to load.
  2. Click PAY.
  3. Wait for Stripe Checkout to load.
  4. Complete the Stripe Checkout form.
  5. Observe the success page.
  6. Observe the Paylink with fields Amount Paid and Paid on is displayed.
Not Seeing Stripe Checkout After Clicking 'PAY'?

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.

Payment Method Future Use

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.

Payment Methods Types Supported

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 USDEUR, 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.

  1. Navigate to Setup -> Object Manager -> Payment Intent -> Fields & Relationships -> Currency.
  2. Click the New button in the Values section.
  3. Add the Currency value to the list of picklist values. (ex: "CNY")
  4. Save your record.

H_02_18_Stripe checkout 3