# Stripe Integration Setup Guide This guide explains how to configure Stripe payment processing for the company registration system. ## 🔧 Configuration Options The application supports multiple ways to configure Stripe API keys: ### 1. Configuration Files (Recommended for Development) #### Default Configuration The application includes default test keys in `config/default.toml`: ```toml [stripe] publishable_key = "pk_test_..." secret_key = "sk_test_..." ``` #### Local Configuration Create `config/local.toml` to override defaults: ```toml [stripe] publishable_key = "pk_test_YOUR_KEY_HERE" secret_key = "sk_test_YOUR_KEY_HERE" webhook_secret = "whsec_YOUR_WEBHOOK_SECRET" ``` ### 2. Environment Variables (Recommended for Production) Set environment variables with the `APP__` prefix: ```bash export APP__STRIPE__PUBLISHABLE_KEY="pk_test_YOUR_KEY_HERE" export APP__STRIPE__SECRET_KEY="sk_test_YOUR_KEY_HERE" export APP__STRIPE__WEBHOOK_SECRET="whsec_YOUR_WEBHOOK_SECRET" ``` Or create a `.env` file: ```bash APP__STRIPE__PUBLISHABLE_KEY=pk_test_YOUR_KEY_HERE APP__STRIPE__SECRET_KEY=sk_test_YOUR_KEY_HERE APP__STRIPE__WEBHOOK_SECRET=whsec_YOUR_WEBHOOK_SECRET ``` ## 🔑 Getting Your Stripe Keys ### Test Keys (Development) 1. Go to [Stripe Dashboard](https://dashboard.stripe.com/test/apikeys) 2. Copy your **Publishable key** (starts with `pk_test_`) 3. Copy your **Secret key** (starts with `sk_test_`) ### Live Keys (Production) 1. Go to [Stripe Dashboard](https://dashboard.stripe.com/apikeys) 2. Copy your **Publishable key** (starts with `pk_live_`) 3. Copy your **Secret key** (starts with `sk_live_`) ⚠️ **Never commit live keys to version control!** ## 🔒 Security Best Practices 1. **Never commit sensitive keys** - Use `.gitignore` to exclude: - `.env` - `config/local.toml` - `config/production.toml` 2. **Use test keys in development** - Test keys are safe and don't process real payments 3. **Use environment variables in production** - More secure than config files 4. **Rotate keys regularly** - Generate new keys periodically ## 🚀 Quick Start 1. **Copy the example files:** ```bash cp config/local.toml.example config/local.toml cp .env.example .env ``` 2. **Add your Stripe test keys** to either file 3. **Start the application:** ```bash cargo run ``` 4. **Test the payment flow** at `http://127.0.0.1:9999/company` ## 📋 Configuration Priority The application loads configuration in this order (later overrides earlier): 1. Default values in code 2. `config/default.toml` 3. `config/local.toml` 4. Environment variables ## 🔍 Troubleshooting - **Keys not working?** Check the Stripe Dashboard for correct keys - **Webhook errors?** Ensure webhook secret matches your Stripe endpoint - **Configuration not loading?** Check file paths and environment variable names