Zatražite rani pristup

Unesite ime te adresu e-pošte ili telefonski broj. Poslat ćemo vam pojedinosti o pristupu platformi Tajo.

Zahtjevi kvalitete za pregled aplikacije

Stripe pregledava svaku aplikaciju poslanu na marketplace prema sveobuhvatnom skupu zahtjeva kvalitete. Razumijevanje tih standarda prije razvoja štedi vrijeme i smanjuje broj krugova pregleda.

Pregled

Pregled Stripe aplikacije ocjenjuje vašu aplikaciju kroz šest ključnih područja:

  1. Transparentne cijene, jasna komunikacija troškova
  2. Funkcionalnost aplikacije, pouzdanost i potpunost
  3. Standardi za razvojne programere, kvaliteta koda i korištenje API-ja
  4. Kvaliteta korisničkog iskustva, standardi korisničkog sučelja i iskustva
  5. Sigurnost, zaštita podataka i sigurne prakse
  6. Pravna usklađenost, zahtjevi privatnosti i regulative

Transparentne cijene

Vaša aplikacija mora jasno komunicirati sve troškove korisnicima:

  • Objava cijena: sve cijene moraju biti unaprijed navedene u oglasu na marketplaceu
  • Bez skrivenih naknada: korisnici ne smiju naići na neočekivane troškove nakon instalacije
  • Uvjeti probnog razdoblja: ako nudite probno razdoblje, jasno navedite njegovo trajanje i što se događa kada završi
  • Tijekovi nadogradnje: svaki poticaj na nadogradnju ili dodatnu prodaju mora biti nenametljiv i jasno neobavezan
  • Valuta: prikazujte cijene u lokalnoj valuti korisnika kad god je to moguće

Caution

Aplikacije koje zamagljuju cijene ili naplaćuju korisnicima bez jasnog pristanka bit će odmah odbijene.

Oblikovanje datuma i vremena

Svi datumi i vremena prikazani u vašoj aplikaciji moraju slijediti konvencije sučelja Stripe Dashboard:

  • Koristite lokalizaciju korisnika za oblikovanje datuma kada je dostupna
  • Prikazujte vremena u lokalnoj vremenskoj zoni korisnika
  • Koristite relativne vremenske oznake za nedavne događaje (npr. „prije 2 sata“)
  • Koristite apsolutne vremenske oznake za starije događaje, s punim datumom i vremenom
  • Slijedite ISO 8601 za sva polja s datumima okrenuta prema API-ju
// Good: Use Stripe's date formatting utilities
import { formatDate, formatRelativeTime } from '@stripe/ui-extension-sdk/utils';
const formattedDate = formatDate(timestamp); // Locale-aware
const relativeTime = formatRelativeTime(timestamp); // "2 hours ago"

Postavke aplikacije

Ako vaša aplikacija zahtijeva konfiguraciju:

  • Osigurajte namjenski prikaz postavki dostupan iz prozora aplikacije
  • Unaprijed popunite razumne zadane vrijednosti gdje je to moguće
  • Provjerite valjanost svih korisničkih unosa uz jasne poruke o pogreškama
  • Dopustite korisnicima da ažuriraju postavke bez ponovne instalacije aplikacije
  • Trajno pohranite postavke između sesija pomoću Stripe Secret Store API-ja

Podrška za sandbox

Vaša aplikacija mora ispravno raditi u Stripe sandboxu (testnom načinu rada):

  • Kompatibilnost s testnim načinom rada: sve značajke moraju raditi u testnom načinu rada
  • Testni podaci: koristite realistične testne podatke koji pokazuju funkcionalnost aplikacije
  • Bez stvarnih podataka u sandboxu: nikada ne izlažite produkcijske podatke u testnom načinu rada
  • Elegantno rukovanje: ako značajka nije dostupna u sandboxu, prikažite jasnu poruku s objašnjenjem zašto
  • Postavite sandbox_install_compatible: true u svom manifestu
{
"sandbox_install_compatible": true
}

Funkcionalnost aplikacije

Pouzdanost

  • Aplikacija se ne smije rušiti ni zamrzavati tijekom uobičajenog korištenja
  • Sve oglašene značajke moraju raditi kako je opisano
  • Mrežnim pogreškama mora se elegantno rukovati uz mogućnost ponovnog pokušaja
  • Aplikacija mora ostati odzivna tijekom pozadinskih operacija

Potpunost

  • Bez rezerviranog sadržaja, značajki „uskoro“ ili neispravnih poveznica
  • Svi elementi sučelja moraju biti funkcionalni, bez mrtvih gumba ili neaktivnih kontrola
  • Poveznice na tekst pomoći i dokumentaciju moraju voditi na valjane stranice
  • Deinstalacija mora u cijelosti ukloniti sve podatke aplikacije i webhookove

Performanse

  • Sučelje se mora iscrtati unutar 3 sekunde na standardnoj vezi
  • Pozadinske operacije sinkronizacije ne smiju blokirati sučelje
  • Veliki skupovi podataka moraju koristiti straničenje ili odgođeno učitavanje
  • Svedite pozive API-ja na najmanju mjeru kako biste izbjegli ograničenja brzine

Standardi za razvojne programere

Korištenje API-ja

  • Koristite najnoviju stabilnu verziju Stripe API-ja
  • Slijedite najbolje prakse Stripe API-ja za straničenje, rukovanje pogreškama i idempotentnost
  • Ne prekoračujte ograničenja brzine, implementirajte eksponencijalno odgađanje za ponovne pokušaje
  • Koristite webhookove za ažuriranja vođena događajima umjesto stalnog ispitivanja

Kvaliteta koda

  • Bez pogrešaka ili upozorenja u konzoli u produkcijskim izdanjima
  • Uklonite sve zapise za otklanjanje pogrešaka prije slanja
  • Obradite sve rubne slučajeve (prazna stanja, podaci koji nedostaju, mrežni ispadi)
  • Slijedite obrasce biblioteke komponenti platforme Stripe radi dosljednog sučelja

Verzioniranje

  • Koristite semantičko verzioniranje (MAJOR.MINOR.PATCH)
  • Dokumentirajte prekidajuće promjene u ažuriranjima verzija
  • Održavajte kompatibilnost unatrag gdje je to moguće

Kvaliteta korisničkog iskustva

Oglašavanje

  • Bez oglasa: vaša aplikacija ne smije prikazivati oglase bilo koje vrste
  • Bez unakrsne promocije: ne promovirajte druge proizvode ni usluge unutar sučelja aplikacije
  • Brendirani sadržaj: prikazujte samo vlastiti brend, a ne brendove trećih strana (osim partnera za integraciju poput Breva)

Jezik i sadržaj

  • Dosljedan jezik: koristite dosljednu terminologiju kroz cijelu aplikaciju
  • Profesionalan ton: uskladite se s profesionalnim i sažetim stilom komunikacije sučelja Stripe Dashboard
  • Bez žargona: izbjegavajte tehnički žargon koji trgovci možda neće razumjeti
  • Provjera pravopisa: pobrinite se da tekst nema pravopisnih ni gramatičkih pogrešaka
  • Samo engleski: sav tekst vidljiv korisniku mora biti na engleskom za aplikacije na marketplaceu

Dijalozi za potvrdu

Zatražite potvrdu korisnika za destruktivne ili značajne radnje:

// Good: Confirm before destructive actions
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();
}
};

Radnje koje zahtijevaju potvrdu:

  • Prekid veze integracija
  • Brisanje sinkroniziranih podataka
  • Promjena postavki koje utječu na protok podataka
  • Vraćanje konfiguracije na zadane vrijednosti

Stanja učitavanja

Uvijek prikazujte pokazatelje učitavanja za asinkrone operacije:

// Good: Show loading state during data fetch
const CustomerSyncStatus = () => {
const { data, isLoading, error } = useSyncStatus();
if (isLoading) {
return <Spinner label="Loading sync status..." />;
}
if (error) {
return <Banner type="critical" title="Failed to load sync status">
{error.message}
</Banner>;
}
return <SyncStatusDisplay data={data} />;
};

Zahtjevi:

  • Prikažite vrtuljke ili kosturne zaslone tijekom učitavanja podataka
  • Onemogućite gumbe tijekom slanja obrasca
  • Prikažite pokazatelje napretka za dugotrajne operacije
  • Nikada ne prikazujte prazan zaslon tijekom učitavanja

Poruke o pogreškama

Ponudite jasne poruke o pogreškama na koje se može djelovati:

// Bad: Generic error
"Something went wrong"
// Good: Specific and actionable
"Unable to sync customer data to Brevo. Please verify your Brevo API key
in Settings and try again."

Smjernice za poruke o pogreškama:

  • Objasnite što se dogodilo jednostavnim jezikom
  • Predložite konkretnu radnju kojom korisnik može riješiti problem
  • Omogućite način za ponovni pokušaj neuspjele operacije
  • Zabilježite detaljne podatke o pogrešci za otklanjanje problema (koji se ne prikazuju korisnicima)
  • Navedite šifre pogrešaka za potrebe podrške kada je to primjenjivo

Sigurnost

Secret Store API

Koristite Secret Store API platforme Stripe za pohranu svih osjetljivih podataka:

import { createHttpClient, STRIPE_API_KEY } from '@stripe/ui-extension-sdk/http_client';
// Good: Store secrets using the Secret Store API
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' },
});
};
// Good: Retrieve secrets from the Secret Store
const getBrevoApiKey = async () => {
const stripe = createHttpClient(STRIPE_API_KEY);
const secret = await stripe.apps.secrets.find({
name: 'brevo_api_key',
scope: { type: 'account' },
});
return secret.payload;
};

Nikada ne pohranjujte osjetljive podatke u:

  • Lokalnu pohranu ili pohranu sesije
  • Kolačiće
  • Parametre URL-a
  • Vrijednosti tvrdo kodirane u izvornom kodu
  • Konfiguracijske datoteke u čistom tekstu

Kriptografija

  • Bez vlastite kriptografije: ne implementirajte vlastite algoritme za šifriranje
  • Koristite ugrađene sigurnosne primitive platforme Stripe (Secret Store, tajne za potpisivanje)
  • Koristite HTTPS za sve vanjske pozive API-ja
  • Provjerite valjanost svih potpisa webhookova prije obrade

Rukovanje podacima

  • Tražite samo dopuštenja koja vaša aplikacija stvarno treba
  • Ne pohranjujte Stripe podatke izvan onoga što je nužno za funkcionalnost
  • Uvedite pravila zadržavanja podataka usklađena s vašim pravilima privatnosti
  • Osigurajte mehanizam kojim korisnici mogu zatražiti brisanje podataka

Pravna usklađenost

Pravila privatnosti

Vaša aplikacija mora imati javno dostupna pravila privatnosti koja pokrivaju:

  • Koje podatke vaša aplikacija prikuplja iz platforme Stripe
  • Kako se podaci pohranjuju, obrađuju i dijele
  • Pravila zadržavanja i brisanja podataka
  • Prava korisnika u vezi s njihovim podacima
  • Kontaktne podatke za upite o privatnosti
  • Usklađenost s primjenjivim propisima (GDPR, CCPA itd.)

Uvjeti pružanja usluge

  • Osigurajte jasne uvjete pružanja usluge za svoju aplikaciju
  • Ne uključujte uvjete koji su u sukobu s uvjetima pružanja usluge platforme Stripe
  • Jasno navedite sva ograničenja korištenja

Regulatorna usklađenost

  • Uskladite se sa svim primjenjivim propisima o zaštiti podataka
  • Sklopite odgovarajuće ugovore o obradi podataka
  • Podržite zahtjeve za prenosivost i brisanje podataka
  • Vodite revizijske zapise o pristupu podacima i njihovoj obradi

Vremenski okvir procesa pregleda

FazaTrajanje
Početno slanje5-10 radnih dana
Pregled izmjena3-7 radnih dana
Konačno odobrenje1-2 radna dana
ObjavaOdmah nakon odobrenja

Tip

Riješite sve povratne informacije iz pregleda u jednoj izmjeni kako biste izbjegli višestruke krugove pregleda. Tim platforme Stripe daje konkretne povratne informacije na koje se može djelovati za svaki pronađeni problem.

Česti razlozi odbijanja

  1. Nedostatak rukovanja pogreškama, aplikacija se ruši pri mrežnim pogreškama ili neočekivanim podacima
  2. Nedostatna stanja učitavanja, prazni zasloni tijekom dohvaćanja podataka
  3. Nejasne cijene, cijene nisu u potpunosti objavljene u oglasu
  4. Prekomjerna dopuštenja, traženje dopuštenja koja aplikaciji nisu potrebna
  5. Neispravan sandbox način rada, aplikacija ne radi u testnom načinu rada
  6. Sigurnosni problemi, pohrana tajni izvan Secret Store API-ja
  7. Nedostatak pravila privatnosti, nema dostupnog URL-a s pravilima privatnosti
  8. Nepotpuna funkcionalnost, značajke „uskoro“ ili rezervirani sadržaj

Zatražite rani pristup

Unesite ime te adresu e-pošte ili telefonski broj. Poslat ćemo vam pojedinosti o pristupu platformi Tajo.

automatsko prepoznavanje
AI asistent

Bok! Pitajte me o dokumentaciji.