← back to NationalPaperHangers

scripts/stripe-webhook-test.js

30 lines

#!/usr/bin/env node
const path = require('node:path');
require('dotenv').config({ path: path.resolve(__dirname, '..', '.env') });
const Stripe = require('stripe');
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, { apiVersion: '2024-10-28.acacia' });

const urls = [
  'https://nationalpaperhangers.com/webhooks/stripe',
  'https://nationalpaperhangers.com/webhooks/stripe/',
  'https://www.nationalpaperhangers.com/webhooks/stripe',
  'https://nationalpaperhangers.com/api/stripe/webhook'
];

(async () => {
  for (const url of urls) {
    try {
      const ep = await stripe.webhookEndpoints.create({
        url,
        enabled_events: ['payment_intent.succeeded','payment_intent.payment_failed','payment_intent.canceled','checkout.session.completed','customer.subscription.created','customer.subscription.updated','customer.subscription.deleted','invoice.payment_succeeded','invoice.payment_failed','account.updated'],
        metadata: { project: 'national-paper-hangers' }
      });
      console.log('OK  ', url, '→', ep.id);
      await stripe.webhookEndpoints.del(ep.id);
      console.log('     cleaned up');
    } catch (e) {
      console.log('FAIL', url, '→', e.message.slice(0, 150));
    }
  }
})();