License key verification with Gumroad API
Gumroad allows verifying license keys via API calls to limit the usage of the keys. It can be helpful to prevent the redistribution of products like desktop apps.
Allow generating a unique license key per sale in product settings, and the product ID will be shown there. Below is the code snippet for verification.
try {const requestBody = new URLSearchParams();requestBody.append('product_id', process.env.PRODUCT_ID);requestBody.append('license_key', process.env.LICENSE_KEY);requestBody.append('increment_uses_count', true);const response = await fetch('https://api.gumroad.com/v2/licenses/verify', {method: 'POST',body: requestBody});const data = await response.json();if (data.purchase?.test) {console.log('Skipping verification for test purchase');return;}const verificationLimit = Number(process.env.VERIFICATION_LIMIT);if (data.uses >= verificationLimit + 1) {throw new Error('Verification limit exceeded');}if (!data.success) {throw new Error(data.message);}} catch (error) {if (error?.response?.status === 404) {console.log("License key doesn't exist");return;}console.log('Verifying license key failed', error);}
Demo
The demo with the mentioned example is available here.