feat(billing): Stripe subscriptions, job credits and Connect payouts
I maintainer di solito rispondono entro 1 giorno
Una pull request collegata è già stata integrata.
- #84 di @harshaldulera — integrata
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start by reading frontend/src/features/auth/server/auth.ts and frontend/src/proxy.ts, then review dependency issue #3 for the credit ledger. The proposal calls for subscription Checkout, signed and idempotent webhooks, a customer portal, credit purchases, and optional Connect payouts. Done means the listed acceptance criteria pass, with webhook replay tests and a Stripe CLI manual test.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Add web2 payment support with Stripe: subscriptions that unlock accounts, card-purchased job credits, and optional bank payouts to workers.
Motivation
Not every user holds stablecoins. Cards give a normal on-ramp, and the auth layer already carries trial and subscription state that nothing sets yet.
Current state in this repo
frontend/src/features/auth/server/auth.ts(Better Auth) defines user fieldstrialEndsAtandhasSubscription; trial UI exists underfeatures/auth.- No billing code exists.
Proposal
- Stripe Billing: Checkout session for a subscription; a signed webhook handler that sets
hasSubscription; a customer-portal link. - Credits: Checkout for one-off credit packs that write confirmed events to the credit ledger (#3); jobs spend credits.
- Connect (optional second phase): onboard workers and pay out earnings to bank accounts.
- Use test mode keys only; all configuration via env.
Acceptance criteria
- Webhooks verify Stripe signatures and are idempotent on event id.
- Subscription state changes update
hasSubscriptionand the trial banner behaviour. - A credit purchase appears in the ledger exactly once, even if the webhook is delivered twice.
- No card data touches our servers or logs.
Out of scope
- Tax, invoicing and refunds policy (document as follow-ups).
- Live-mode keys.
Technical notes and risks
- Webhook endpoints must be public in
frontend/src/proxy.tsbut protected by signature verification.
Dependencies
- #3
Testing plan
- Webhook replay tests; Stripe CLI-driven manual test script.
References
- Stripe Billing, Checkout and Connect docs: https://docs.stripe.com
Part of ##1. Ground rules for all issues in this roadmap are listed there (testnet-first, no secrets in the repo, chain logic behind the registry, tests and docs with every PR).
- Lingua principale
- Python
- Stelle
- 2
- Fork
- 4
- Merge medio
- 6h 14m
- PR unite (30g)
- 18
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di QMeshPy/distributed-quantum
-
enhancement good first issue helia storage tier-1
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
QMeshPy/distributed-quantum#53 ·
I maintainer di solito rispondono entro 1 giorno
-
chain-integration enhancement payments research-spike tier-2
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
QMeshPy/distributed-quantum#78 ·
I maintainer di solito rispondono entro 1 giorno
-
chain-integration enhancement payments research-spike tier-2
Difficoltà 3/5 1-2 giorni Idoneità per principianti 66/100
QMeshPy/distributed-quantum#77 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue kubo storage tier-1
Difficoltà 2/5 1-3 ore Idoneità per principianti 42/100
QMeshPy/distributed-quantum#75 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement kubo storage tier-2
Difficoltà 4/5 3-5 giorni Idoneità per principianti 56/100
QMeshPy/distributed-quantum#74 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di QMeshPy/distributed-quantum
Issue simili
-
tests: pin that the atomic writers in utils/paths.py stage the temporary file in the target's directoryForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertadifficulty:2 enhancement good first issue
Difficoltà 1/5 1-3 ore Idoneità per principianti 92/100
MakazhanAlpamys/Soup#2178 ·
I maintainer di solito rispondono entro 1 giorno
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGLForse già presa @ninglinLiu l’ha presa oggi. Apertaarea:frontend backend:slang bug direction:input
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 13 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
Kozea/Radicale#2301 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
bug ci good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno