Stripe - How to integrate QLM with Stripe Checkout

If you use Stripe Checkout as an eCommerce provider, QLM integrates seamlessly with Stripe Checkout's ordering system.

To have Stripe invoke QLM during an order, do the following in the Stripe Control Panel:

Configure the webhook

  • Login to Stripe.com and go to your Dashboard

  • Click the Developers item then select Webhooks

  • Click "Add endpoint"

  • In the URL field, enter the URL to your QLM License Server and append the following to the URL: /QlmWebHookHandler?is_vendor=stripe&is_user=<user>&is_pwd=<pwd>

where:

<user>: As defined in the QLM Management Console / Manage Keys / 3rd Party Extensions

<pwd>: As defined in the QLM Management Console / Manage Keys / 3rd Party Extensions

Example: https://qlm3.net/qlmdemo/qlmLicenseServer/qlmservice.asmx/QlmWebHookHandler?is_vendor=stripe&is_user=tim&is_pwd=timpassword

  • In the "Events to send" drop-down, select the following items:

    • For regular products

      • checkout.session.completed

    • For subscription products

      • customer.subscription.deleted

      • invoice.payment_succeeded

  • Click "Add endpoint"

Enable Stripe in QLM

  • Launch the QLM Management Console

  • Go to the Manage Keys tab

  • Click 3rd party extensions

  • Select Stripe

  • Check the "Enabled" checkbox

  • Set the API Key to the value of the Stripe secret key (Stripe dashboard / Developers / API keys / Standard keys / Secret key)

  • Click Ok

Regular Products

  • Create a new product of type "One-time purchase products" and set the required fields.

  • In the Metadata section of the product, add the following entries:

is_productid
1

is_majorversion

1

is_minorversion

0

is_licensemodel

permanent

is_vendor

stripe

is_emailtemplate

1. New Order

is_features

0:1

is_send_mail (as of v18.1)

true | false

where

  • is_productid = your product id as defined in QLM

  • is_majorversion = your product's major version as defined in QLM

  • is_minorversion = your product's minor version as defined in QLM

  • is_features = semi-comma-separated list of feature sets and their corresponding values. Example: is_features=0:3;1:1. This means that in feature set 0, features 1 + 2 are enabled and in feature set 1, feature 1 is enabled.

  • is_user = As defined in Manage Keys / 3rd Party Extensions

  • is_pwd = As defined in Manage Keys / 3rd Party Extensions

  • is_emailtemplate = email template to use when sending the email to the user. Email templates can be created from the QLM Management Console / Manage Keys / Email Templates

  • is_licensemodel = permanent | trial | subscription

  • is_send_mail: instructs QLM to send an email after processing the order

Subscription Products

  • Create a new product of type "Recurring products" and set the required fields.

  • In the Metadata section of the product, add the following entries:

is_productid
1

is_majorversion

1

is_minorversion

0

is_licensemodel

subscription

is_vendor

stripe

is_emailtemplate

<Email template to use for a new order>

is_renewal_emailtemplate

<Email template to use for a renewal>

is_features

0:1

is_send_mail ( as of v18.1)

true | false

is_send_renewal_mail ( as of v18.1)

true | false

where

  • is_productid = your product id as defined in QLM

  • is_majorversion = your product's major version as defined in QLM

  • is_minorversion = your product's minor version as defined in QLM

  • is_features = semi-comma-separated list of feature sets and their corresponding values. Example: is_features=0:3;1:1. This means that in feature set 0, features 1 + 2 are enabled and in feature set 1, feature 1 is enabled.

  • is_user = As defined in Manage Keys / 3rd Party Extensions

  • is_pwd = As defined in Manage Keys / 3rd Party Extensions

  • is_emailtemplate = email template to use when sending the initial order email to the user. Email templates can be created from the QLM Management Console / Manage Keys / Email Templates

  • is_renewal_emailtemplate = email template to use when sending the renewal email to the user

  • is_licensemodel = permanent | trial | subscription

  • is_send_mail: instructs QLM to send an email after processing the initial order

  • is_send_renewal_mail: instructs QLM to send an email after processing the renewal

Enable Stripe Checkout

To enable Stripe Checkout:

  • In the Stripe dashboard, go to Settings

  • Click "Checkout settings"

  • Click "Enable client-only integration

Once Stripe Checkout is enabled, enter your web site domain name in the Domains field:

Create the Stripe Checkout button

  • In the Stripe dashboard, go to Products

  • Select your product

  • In the Prices section, for a given price, click "..." then select "Get Checkout code snippet". If you do not have a Price item, add one.

  • In the Checkout snippet generator window, update the Success URL and Cancel URL to point to valid URLs

  • Copy the generated code and save it in a file on your desktop then publish it to your web site

Testing an order

  • Open the file saved in the previous step from a URL (do not test from your local machine)

  • Click the Checkout button and place an order

  • Once the order is completed, the following will occur:

    • A new user will be automatically added to the QLM database based on the information collected during the ordering process.

    • An activation key will be created in the QLM database and associated with the user.

    • An email will be sent to the user with the order information and activation keys

In order for QLM License Server to send emails, you need to configure your SMTP server. Detailed instructions can be found in this article, in the section Configure the QLM License Server to send emails using SMTP.

Last updated