3.6 KiB
3.6 KiB
AgMission Server
Environment keys
| Syntax | Description |
|---|---|
| AGM_PORT | BackEnd endpoint port |
| PRODUCTION | Whether runnung in production mode |
| DEBUG | debug pattern. E.g: |
| AGM_PORT | BackEnd endpoint port DEBUG=agm:* |
| STRIPE_SECRET_KEY | Stripe secret key |
| STRIPE_PUBLISHABLE_KEY | Stripe publishable key |
| STRIPE_API_VERSION | Stripe API Version |
| STRIPE_WH_SEC | Stripe Webhooks Endpoint secret |
| [Package]_[Number] | Stripe package in uppercased 3-first character and number. E.g: ESS_1 for essential package 1 |
Debug Stripe Webhook
Prerequisites
- Install Stripe CLI: https://stripe.com/docs/stripe-cli
- Make sure your server is running locally
- Have your Stripe account credentials ready
Setup Steps
-
Login to Stripe CLI
stripe login -
Forward webhook events to your local server
# Forward to local development server (default port 3000) stripe listen --forward-to https://localhost:4100/stripe_webhooks --skip-verify # Or specify custom port if your AGM_PORT is different stripe listen --forward-to localhost:YOUR_AGM_PORT/webhook/stripe -
Get the webhook signing secret When you run the
stripe listencommand, it will output a webhook signing secret like:> Ready! Your webhook signing secret is whsec_1234567890abcdef... -
Update your environment variables Add or update the webhook secret in your
.envfile:STRIPE_WH_SEC=whsec_1234567890abcdef... -
Enable debug logging Set the DEBUG environment variable to see webhook processing logs:
DEBUG=agm:* npm start # Or specifically for webhook debugging: DEBUG=agm:webhook,agm:stripe npm start
Testing Webhook Events
-
Trigger test events from Stripe CLI
# Test subscription created event stripe trigger invoice.payment_succeeded # Test subscription updated event stripe trigger customer.subscription.updated # Test payment failed event stripe trigger invoice.payment_failed # Test subscription cancelled event stripe trigger customer.subscription.deleted -
Create test events from Stripe Dashboard
- Go to your Stripe Dashboard
- Navigate to Developers > Webhooks
- Click "Send test webhook"
- Select the event type you want to test
Debug Output
When debugging is enabled, you should see output like:
agm:webhook Received Stripe webhook: invoice.payment_succeeded
agm:stripe Processing subscription payment for customer: cus_...
agm:db -> MongoDB connected - Main Application ready
Common Issues
-
Webhook signature verification failed
- Make sure
STRIPE_WH_SECmatches the secret fromstripe listen - Ensure the webhook endpoint path is correct (
/webhook/stripe)
- Make sure
-
Connection refused
- Verify your server is running on the correct port
- Check that the
--forward-toURL matches your server address
-
No webhook events received
- Confirm
stripe listenis still running - Check that events are being sent to the correct endpoint
- Verify your webhook endpoint is accessible
- Confirm
Production Webhook Setup
For production, configure webhooks directly in your Stripe Dashboard:
- Go to Developers > Webhooks
- Click "Add endpoint"
- Set endpoint URL:
https://yourdomain.com/webhook/stripe - Select events to listen for
- Copy the signing secret to your production
STRIPE_WH_SECenvironment variable