An example Node.js app that integrates Keygen with Gumroad for accepting payments.
Switch branches/tags
Nothing to show
Clone or download
Latest commit e9ca260 Jan 16, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
views initial commit Nov 30, 2017
.gitignore initial commit Nov 30, 2017
LICENSE add license Jan 15, 2018
README.md initial commit Nov 30, 2017
index.js fix incorrect comment Dec 1, 2017
package.json initial commit Nov 30, 2017
yarn.lock initial commit Nov 30, 2017

README.md

Example Keygen + Gumroad integration

The following web app is written in Node.js and shows how to integrate Keygen and Gumroad together using Gumroad's custom delivery fulfillment method. After a buyer purchases our software, we will create a license for the new customer and redirect them to a "success" page containing their license key and a download link to our product distributed using Keygen Dist.

Note: This integration requires that you have an upgraded Gumroad account in order to use their "Custom Delivery" method.

This example application is not 100% production-ready, but it should get you 90% of the way there. You may need to add additional logging, error handling, validation, features, etc.

Running the app locally

First up, configure a few environment variables:

# Your Gumroad API credentials (available under Settings->Advanced->Create Application)
export GUMROAD_ACCESS_TOKEN="YOUR_GUMROAD_ACCESS_TOKEN"

# Keygen product token (don't share this!)
export KEYGEN_PRODUCT_TOKEN="YOUR_KEYGEN_PRODUCT_TOKEN"

# Your Keygen account ID
export KEYGEN_ACCOUNT_ID="YOUR_KEYGEN_ACCOUNT_ID"

# The Keygen product to create licenses for and which product we'll
# be delivering download links for
export KEYGEN_PRODUCT_ID="YOUR_KEYGEN_PRODUCT_ID"

# The Keygen policy to use when creating licenses for new customers
# after they successfully purchase your product
export KEYGEN_POLICY_ID="YOUR_KEYGEN_POLICY_ID"

You can either run each line above within your terminal session before starting the app, or you can add the above contents to your ~/.bashrc file and then run source ~/.bashrc after saving the file.

Next, install dependencies with yarn:

yarn

Then start the app:

yarn start

Testing redirects locally

For local development, create an ngrok tunnel:

ngrok http 8080

Next up, add the secure ngrok URL to your Gumroad product.

  1. Gumroad: add https://{YOUR_NGROK_URL}/success as the redirect URL to your "Custom Delivery" product (more info)

Testing the integration

Set up a Gumroad purchase form and create a test purchase.

Questions?

Reach out at support@keygen.sh if you have any questions or concerns!