45 lines
1.7 KiB
Markdown
45 lines
1.7 KiB
Markdown
# Paddle sandbox checkout
|
|
|
|
Rsync Studio's licensing site now hosts a Paddle sandbox checkout at:
|
|
|
|
- `https://rsync.stage.absdev.net/buy`
|
|
|
|
The macOS app opens this page from the Licence and General settings screens.
|
|
|
|
## Stage environment
|
|
|
|
The stage `.env` must contain:
|
|
|
|
```dotenv
|
|
PADDLE_CLIENT_SIDE_TOKEN=test_...
|
|
PADDLE_ENVIRONMENT=sandbox
|
|
RSYNC_STUDIO_PURCHASE_URL=https://rsync.stage.absdev.net/buy
|
|
RSYNC_STUDIO_PORTAL_URL=https://rsync.stage.absdev.net/portal
|
|
RSYNC_STUDIO_SUPPORT_URL=https://rsync.stage.absdev.net/support
|
|
```
|
|
|
|
Keep `PADDLE_API_KEY` server-side. It must never be added to the macOS app or browser JavaScript.
|
|
|
|
The four Paddle catalog IDs remain configured through `PADDLE_PERSONAL_*` and `PADDLE_PROFESSIONAL_*` variables.
|
|
|
|
## Checkout behavior
|
|
|
|
- Paddle.js is initialized with the sandbox client-side token.
|
|
- Prices are localized with `Paddle.PricePreview()` when available, with the agreed GBP prices as a fallback.
|
|
- Each plan opens Paddle's overlay checkout using the configured price ID.
|
|
- All plans advertise the configured 7-day Paddle trial.
|
|
- A successful Paddle subscription webhook provisions the licence and creates the encrypted delivery outbox record.
|
|
- After webhook processing, pending licence keys are sent by email on a best-effort basis without rolling back the verified webhook if mail delivery is temporarily unavailable.
|
|
|
|
## macOS stage configuration
|
|
|
|
The app is configured for:
|
|
|
|
- API: `https://rsync.stage.absdev.net/api/`
|
|
- Buy: `https://rsync.stage.absdev.net/buy`
|
|
- Portal: `https://rsync.stage.absdev.net/portal`
|
|
- Support: `https://rsync.stage.absdev.net/support`
|
|
- The current stage Ed25519 licence public key is embedded in `Info.plist`.
|
|
|
|
The signing private seed remains server-only.
|