Files
donations/README.md

52 lines
2.2 KiB
Markdown

# Donations Module (MVP Scaffold)
This module adds donation goal management and donation intent capture for HumHub spaces.
## Current MVP Features
- Space menu entry: **Donations**
- Space settings page with:
- One-click **Run Donations Setup**
- PayPal and Stripe provider settings (including recurring toggles)
- Donation goal creation/edit/delete
- Public donations page in each enabled space
- Stripe checkout session creation for one-time and recurring donations
- PayPal one-time order creation and approve redirect
- PayPal recurring subscription creation and approve redirect
- Stripe webhook processing for checkout completion and transaction state updates
- PayPal webhook signature verification and event processing for capture/subscription updates
- Donation intent creation and provider checkout metadata storage
- Admin history page for transactions, subscriptions, and recent webhook events
- Initial database schema for goals, transactions, subscriptions, webhook events, provider config, and blocks
## Install / Update in Container
```bash
docker cp /tmp/humhub_rescue_modules/donations humhub:/var/www/localhost/htdocs/protected/modules/
```
## Apply Migrations
```bash
docker exec humhub php /var/www/localhost/htdocs/protected/yii migrate/up --migrationPath=/var/www/localhost/htdocs/protected/modules/donations/migrations --interactive=0
```
## Test Flow
1. Enable module in a Space: `Space > Manage > Modules > Donations`.
2. Open `Space > Settings > Donations`.
3. Click **Run Donations Setup**.
4. Enable at least one provider (PayPal or Stripe) and save.
5. Create one or more donation goals.
6. Configure your Stripe/PayPal credentials in settings.
7. For Stripe, set webhook endpoint from Donations Settings (space-scoped URL), for example:
- `https://<your-host>/s/<space-url>/donations/donations/stripe-webhook`
8. Open `Space > Donations` and submit a donation.
9. Confirm rows are created/updated in `rescue_donation_transaction`.
10. Use **Webhook Simulation Tools** in Donations Settings to validate Stripe/PayPal webhook processing locally.
## Next Implementation Steps
- Add stronger webhook secret resolution per space/site
- Add admin reporting and transaction history UI