App-gennemgangskvalitetskrav
Stripe gennemgår alle apps indsendt til marketplace mod et komprehensivt sæt kvalitetskrav. At forstå disse standarder inden udvikling sparer tid og reducerer antallet af gennemgangsiterationer.
Oversigt
Stripe App-gennemgangen vurderer din app på seks nøgleområder:
- Transparent prissætning, Klar kommunikation af omkostninger
- App-funktionalitet, Pålidelighed og fuldstændighed
- Udviklerstandarder, Kodekvalitet og API-brug
- UX-kvalitet, Brugergrænseflade og oplevelssstandarder
- Sikkerhed, Databeskyttelse og sikker praksis
- Juridisk overensstemmelse, Fortrolighed og regulatoriske krav
Transparent prissætning
Din app skal tydeligt kommunikere alle omkostninger til brugere:
- Prissætningsoplysning: Al prissætning skal angives på forhånd i marketplace-listen
- Ingen skjulte gebyrer: Brugere må ikke møde uventede gebyrer efter installation
- Prøvevilkår: Hvis du tilbyder en prøveperiode, angiv tydeligt varighed og hvad der sker når den slutter
- Opgradering: Eventuelle mersalgs- eller opgraderingsprompter skal være ikke-påtrængende og tydeligt valgfrie
Caution
Apps der skjuler prissætning eller opkræver brugere uden klart samtykke vil blive afvist straks.
Sandbox-understøttelse
Din app skal fungere korrekt i Stripes sandbox (test) modus:
- Testmoduskompatibilitet: Alle funktioner skal fungere i testmodus
- Testdata: Brug realistiske testdata der demonstrerer app-funktionalitet
- Ingen live-data i sandbox: Eksponér aldrig produktionsdata i testmodus
- Elegant håndtering: Hvis en funktion er utilgængelig i sandbox, vis en klar besked der forklarer hvorfor
- Sæt
sandbox_install_compatible: truei dit manifest
App-funktionalitet
Pålidelighed
- Appen må ikke crashe eller fryse under normal brug
- Alle annoncerede funktioner skal fungere som beskrevet
- Netværksfejl skal håndteres elegant med muligheder for genforsøg
- Appen skal forblive responsiv under baggrundsoperationer
Fuldstændighed
- Ingen pladsholderindhold, “coming soon”-funktioner eller ødelagte links
- Alle UI-elementer skal være funktionelle, ingen døde knapper eller inaktive kontroller
- Hjælpetekst og dokumentationslinks skal løse til gyldige sider
- Afinstallation skal ryddeligt fjerne alle app-data og webhooks
Ydeevne
- UI skal gengives inden for 3 sekunder på en standardforbindelse
- Baggrundssynkoperationer må ikke blokere UI
- Store datasæt skal bruge paginering eller doven indlæsning
- Minimer API-kald for at undgå rate-begrænsning
Udviklerstandarder
API-brug
- Brug den nyeste stabile version af Stripe API
- Følg Stripe API bedste praksis for paginering, fejlhåndtering og idempotens
- Overskrid ikke rate-grænser, implementer eksponentiel tilbagefald til genforsøg
- Brug webhooks til hændelsesdrevne opdateringer i stedet for polling
Kodekvalitet
- Ingen konsolfejl eller advarsler i produktionsbygninger
- Fjern al fejlretningslogning inden indsendelse
- Håndter alle kanttilfælde (tomme tilstande, manglende data, netværksfejl)
- Følg Stripes komponentbiblioteksmønstre for konsistent UI
UX-kvalitet
Sprog og indhold
- Konsistent sprog: Brug konsistent terminologi i hele appen
- Professionel tone: Match Stripe Dashboards professionelle, præcise kommunikationsstil
- Ingen jargon: Undgå teknisk jargon som sælgere måske ikke forstår
- Stavekontrol: Sikr at al tekst er fri for stave- og grammatikfejl
- Kun engelsk: Al brugervendt tekst skal være på engelsk til marketplace-apps
Bekræftelsesdialoger
Kræv brugerbekræftelse for destruktive eller betydningsfulde handlinger:
const handleDisconnect = async () => { const confirmed = await showConfirmation({ title: 'Disconnect Brevo Integration', message: 'This will stop syncing customer data to Brevo. You can reconnect at any time.', confirmLabel: 'Disconnect', cancelLabel: 'Cancel', destructive: true, });
if (confirmed) { await disconnectIntegration(); }};Indlæsningstilstande
Vis altid indlæsningsindikatorer til asynkrone operationer:
- Vis spinnere eller skeletskærme under dataindlæsning
- Deaktiver knapper under formularindsendelse
- Vis fremgangsindikatorer til langvarige operationer
- Vis aldrig en blank skærm under indlæsning
Fejlbeskeder
Giv klare, handlingsorienterede fejlbeskeder:
// Dårligt: Generisk fejl"Something went wrong"
// Godt: Specifik og handlingsorienteret"Unable to sync customer data to Brevo. Please verify your Brevo API keyin Settings and try again."Sikkerhed
Secret Store API
Brug Stripes Secret Store API til al følsom dataopbevaring:
import { createHttpClient, STRIPE_API_KEY } from '@stripe/ui-extension-sdk/http_client';
const storeBrevoApiKey = async (apiKey: string) => { const stripe = createHttpClient(STRIPE_API_KEY); await stripe.apps.secrets.create({ name: 'brevo_api_key', payload: apiKey, scope: { type: 'account' }, });};Gem aldrig følsomme data i:
- Lokal lagring eller sessionlagring
- Cookies
- URL-parametre
- Hardkodede værdier i kildekode
- Klartekstkonfigurationsfiler
Juridisk overholdelse
Fortrolighedspolitik
Din app skal have en offentligt tilgængelig fortrolighedspolitik der dækker:
- Hvilke data din app indsamler fra Stripe
- Hvordan data gemmes, behandles og deles
- Politikker for dataopbevaring og -sletning
- Brugerrettigheder vedrørende deres data
- Kontaktoplysninger til fortrolighedsforespørgsler
- Overholdelse af gældende forordninger (GDPR, CCPA osv.)
Tidsplan for gennemgangsproces
| Fase | Varighed |
|---|---|
| Indledende indsendelse | 5-10 arbejdsdage |
| Revisionsgennemgang | 3-7 arbejdsdage |
| Endelig godkendelse | 1-2 arbejdsdage |
| Publikation | Øjeblikkelig efter godkendelse |
Tip
Adresser al gennemgangsfeedback i en enkelt revision for at undgå flere gennemgangscyklusser. Stripe-teamet giver specifik, handlingsorienteret feedback for hvert fundet problem.
Almindelige afvisningsårsager
- Manglende fejlhåndtering, App crasher ved netværksfejl eller uventede data
- Utilstrækkelige indlæsningstilstande, Blanke skærme under datahentning
- Uklar prissætning, Prissætning ikke fuldt oplyst i listen
- Overdrevne tilladelser, Anmodning om tilladelser ikke nødvendige for appen
- Ødelagt sandbox-modus, App fungerer ikke i testmodus
- Sikkerhedsproblemer, Gemmer hemmeligheder uden for Secret Store API
- Manglende fortrolighedspolitik, Ingen tilgængelig fortrolighedspolitik-URL
- Ufuldstændig funktionalitet, “Coming soon”-funktioner eller pladsholderindhold