Ζητήστε πρώιμη πρόσβαση

Συμπληρώστε το όνομά σας και ένα email ή έναν αριθμό τηλεφώνου. Θα σας στείλουμε πληροφορίες για την πρόσβαση στο Tajo.

Απαιτήσεις ποιότητας για τον έλεγχο εφαρμογών

Το Stripe ελέγχει κάθε εφαρμογή που υποβάλλεται στο marketplace βάσει ενός ολοκληρωμένου συνόλου απαιτήσεων ποιότητας. Η κατανόηση αυτών των προτύπων πριν από την ανάπτυξη εξοικονομεί χρόνο και μειώνει τον αριθμό των επαναλήψεων του ελέγχου.

Επισκόπηση

Ο έλεγχος ενός Stripe App αξιολογεί την εφαρμογή σας σε έξι βασικούς τομείς:

  1. Διαφανής τιμολόγηση, σαφής επικοινωνία του κόστους
  2. Λειτουργικότητα της εφαρμογής, αξιοπιστία και πληρότητα
  3. Πρότυπα προγραμματισμού, ποιότητα κώδικα και χρήση του API
  4. Ποιότητα εμπειρίας χρήστη, πρότυπα διεπαφής και εμπειρίας
  5. Ασφάλεια, προστασία δεδομένων και ασφαλείς πρακτικές
  6. Νομική συμμόρφωση, απαιτήσεις απορρήτου και κανονιστικού πλαισίου

Διαφανής τιμολόγηση

Η εφαρμογή σας πρέπει να επικοινωνεί με σαφήνεια όλα τα κόστη στους χρήστες:

  • Γνωστοποίηση τιμών: Όλες οι τιμές πρέπει να δηλώνονται εκ των προτέρων στην καταχώριση του marketplace
  • Καμία κρυφή χρέωση: Οι χρήστες δεν πρέπει να συναντούν απροσδόκητες χρεώσεις μετά την εγκατάσταση
  • Όροι δοκιμής: Αν προσφέρετε δοκιμαστική περίοδο, δηλώστε με σαφήνεια τη διάρκειά της και τι συμβαίνει μετά τη λήξη της
  • Ροές αναβάθμισης: Κάθε προτροπή για αναβάθμιση ή πρόσθετη αγορά πρέπει να είναι διακριτική και σαφώς προαιρετική
  • Νόμισμα: Εμφανίζετε τις τιμές στο τοπικό νόμισμα του χρήστη όποτε είναι εφικτό

Caution

Οι εφαρμογές που αποκρύπτουν τιμές ή χρεώνουν τους χρήστες χωρίς σαφή συγκατάθεση απορρίπτονται άμεσα.

Μορφοποίηση ημερομηνίας και ώρας

Όλες οι ημερομηνίες και οι ώρες που εμφανίζονται στην εφαρμογή σας πρέπει να ακολουθούν τις συμβάσεις του Stripe Dashboard:

  • Χρησιμοποιείτε τις τοπικές ρυθμίσεις του χρήστη για τη μορφοποίηση ημερομηνιών, όταν είναι διαθέσιμες
  • Εμφανίζετε τις ώρες στην τοπική ζώνη ώρας του χρήστη
  • Χρησιμοποιείτε σχετικές χρονικές σημάνσεις για πρόσφατα συμβάντα (π.χ. «πριν από 2 ώρες»)
  • Χρησιμοποιείτε απόλυτες χρονικές σημάνσεις με πλήρη ημερομηνία και ώρα για παλαιότερα συμβάντα
  • Ακολουθείτε το πρότυπο ISO 8601 για κάθε πεδίο ημερομηνίας που στέλνεται στο API
// 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"

Ρυθμίσεις της εφαρμογής

Αν η εφαρμογή σας απαιτεί διαμόρφωση:

  • Παρέχετε μια αποκλειστική προβολή ρυθμίσεων, προσβάσιμη από το viewport της εφαρμογής
  • Συμπληρώνετε εκ των προτέρων λογικές προεπιλογές όπου είναι δυνατόν
  • Επικυρώνετε όλες τις καταχωρίσεις των χρηστών με σαφή μηνύματα σφάλματος
  • Επιτρέπετε στους χρήστες να ενημερώνουν τις ρυθμίσεις χωρίς να επανεγκαταστήσουν την εφαρμογή
  • Διατηρείτε τις ρυθμίσεις μεταξύ των συνεδριών με το Secret Store API του Stripe

Υποστήριξη sandbox

Η εφαρμογή σας πρέπει να λειτουργεί σωστά στη λειτουργία sandbox (δοκιμής) του Stripe:

  • Συμβατότητα με τη λειτουργία δοκιμής: Όλες οι δυνατότητες πρέπει να λειτουργούν στη λειτουργία δοκιμής
  • Δοκιμαστικά δεδομένα: Χρησιμοποιείτε ρεαλιστικά δοκιμαστικά δεδομένα που παρουσιάζουν τη λειτουργικότητα της εφαρμογής
  • Καθόλου πραγματικά δεδομένα στο sandbox: Μην εκθέτετε ποτέ δεδομένα παραγωγής στη λειτουργία δοκιμής
  • Ομαλή διαχείριση: Αν μια δυνατότητα δεν είναι διαθέσιμη στο sandbox, εμφανίστε ένα σαφές μήνυμα που εξηγεί τον λόγο
  • Ορίστε sandbox_install_compatible: true στο manifest σας
{
"sandbox_install_compatible": true
}

Λειτουργικότητα της εφαρμογής

Αξιοπιστία

  • Η εφαρμογή δεν πρέπει να καταρρέει ή να παγώνει κατά τη φυσιολογική χρήση
  • Όλες οι διαφημιζόμενες δυνατότητες πρέπει να λειτουργούν όπως περιγράφονται
  • Τα σφάλματα δικτύου πρέπει να αντιμετωπίζονται ομαλά, με επιλογές επανάληψης
  • Η εφαρμογή πρέπει να παραμένει αποκρίσιμη κατά τις εργασίες παρασκηνίου

Πληρότητα

  • Καθόλου περιεχόμενο-κράτηση θέσης, δυνατότητες «σύντομα κοντά σας» ή κατεστραμμένοι σύνδεσμοι
  • Όλα τα στοιχεία της διεπαφής πρέπει να λειτουργούν, χωρίς ανενεργά κουμπιά ή αδρανή χειριστήρια
  • Τα κείμενα βοήθειας και οι σύνδεσμοι τεκμηρίωσης πρέπει να οδηγούν σε έγκυρες σελίδες
  • Η απεγκατάσταση πρέπει να αφαιρεί καθαρά όλα τα δεδομένα και τα webhooks της εφαρμογής

Απόδοση

  • Η διεπαφή πρέπει να αποδίδεται εντός 3 δευτερολέπτων σε μια τυπική σύνδεση
  • Οι εργασίες συγχρονισμού στο παρασκήνιο δεν πρέπει να μπλοκάρουν τη διεπαφή
  • Τα μεγάλα σύνολα δεδομένων πρέπει να χρησιμοποιούν σελιδοποίηση ή τεμπέλικη φόρτωση
  • Ελαχιστοποιήστε τις κλήσεις στο API για να αποφύγετε τα όρια ρυθμού

Πρότυπα προγραμματισμού

Χρήση του API

  • Χρησιμοποιείτε την πιο πρόσφατη σταθερή έκδοση του API του Stripe
  • Ακολουθείτε τις βέλτιστες πρακτικές του API του Stripe για σελιδοποίηση, διαχείριση σφαλμάτων και ταυτοδυναμία (idempotency)
  • Μην υπερβαίνετε τα όρια ρυθμού, υλοποιήστε εκθετική αναμονή για τις επαναλήψεις
  • Χρησιμοποιείτε webhooks για ενημερώσεις με βάση συμβάντα, αντί για συνεχή δημοσκόπηση

Ποιότητα κώδικα

  • Καθόλου σφάλματα ή προειδοποιήσεις στην κονσόλα στις εκδόσεις παραγωγής
  • Αφαιρέστε όλες τις καταγραφές αποσφαλμάτωσης πριν από την υποβολή
  • Χειριστείτε όλες τις ακραίες περιπτώσεις (κενές καταστάσεις, δεδομένα που λείπουν, αστοχίες δικτύου)
  • Ακολουθείτε τα μοτίβα της βιβλιοθήκης στοιχείων του Stripe για συνεπή διεπαφή

Διαχείριση εκδόσεων

  • Χρησιμοποιείτε σημασιολογική έκδοση (MAJOR.MINOR.PATCH)
  • Τεκμηριώνετε τις αλλαγές που σπάνε τη συμβατότητα στις ενημερώσεις εκδόσεων
  • Διατηρείτε την προς τα πίσω συμβατότητα όπου είναι δυνατόν

Ποιότητα εμπειρίας χρήστη

Διαφήμιση

  • Καθόλου διαφημίσεις: Η εφαρμογή σας δεν πρέπει να εμφανίζει διαφημίσεις οποιουδήποτε είδους
  • Καθόλου προώθηση άλλων προϊόντων: Μην προωθείτε άλλα προϊόντα ή υπηρεσίες μέσα στη διεπαφή της εφαρμογής
  • Επώνυμο περιεχόμενο: Εμφανίζετε μόνο τη δική σας ταυτότητα μάρκας, όχι μάρκες τρίτων (με εξαίρεση τους συνεργάτες ενσωμάτωσης, όπως το Brevo)

Γλώσσα και περιεχόμενο

  • Συνεπής γλώσσα: Χρησιμοποιείτε συνεπή ορολογία σε ολόκληρη την εφαρμογή
  • Επαγγελματικός τόνος: Ακολουθήστε το επαγγελματικό και περιεκτικό ύφος επικοινωνίας του Stripe Dashboard
  • Καθόλου τεχνική αργκό: Αποφύγετε την τεχνική ορολογία που ίσως δεν καταλαβαίνουν οι έμποροι
  • Ορθογραφικός έλεγχος: Βεβαιωθείτε ότι όλα τα κείμενα δεν έχουν ορθογραφικά και γραμματικά λάθη
  • Μόνο στα αγγλικά: Όλα τα κείμενα που βλέπει ο χρήστης πρέπει να είναι στα αγγλικά για τις εφαρμογές του marketplace

Παράθυρα επιβεβαίωσης

Ζητήστε επιβεβαίωση από τον χρήστη για καταστροφικές ή σημαντικές ενέργειες:

// 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();
}
};

Ενέργειες που απαιτούν επιβεβαίωση:

  • Αποσύνδεση ενσωματώσεων
  • Διαγραφή συγχρονισμένων δεδομένων
  • Αλλαγή ρυθμίσεων που επηρεάζουν τη ροή των δεδομένων
  • Επαναφορά της διαμόρφωσης στις προεπιλογές

Καταστάσεις φόρτωσης

Εμφανίζετε πάντα ενδείξεις φόρτωσης για τις ασύγχρονες εργασίες:

// 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} />;
};

Απαιτήσεις:

  • Εμφανίζετε δείκτες φόρτωσης ή οθόνες σκελετού κατά τη φόρτωση δεδομένων
  • Απενεργοποιείτε τα κουμπιά κατά την υποβολή μιας φόρμας
  • Εμφανίζετε ενδείξεις προόδου για εργασίες μεγάλης διάρκειας
  • Μην εμφανίζετε ποτέ κενή οθόνη κατά τη φόρτωση

Μηνύματα σφάλματος

Παρέχετε σαφή μηνύματα σφάλματος με πρακτική αξία:

// 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."

Οδηγίες για τα μηνύματα σφάλματος:

  • Εξηγήστε τι συνέβη με απλή γλώσσα
  • Προτείνετε μια συγκεκριμένη ενέργεια που μπορεί να κάνει ο χρήστης για να λύσει το πρόβλημα
  • Παρέχετε έναν τρόπο επανάληψης της εργασίας που απέτυχε
  • Καταγράφετε αναλυτικές πληροφορίες σφάλματος για αποσφαλμάτωση (χωρίς να τις βλέπουν οι χρήστες)
  • Συμπεριλαμβάνετε κωδικούς σφάλματος για αναφορά στην υποστήριξη, όπου αυτό ισχύει

Ασφάλεια

Secret Store API

Χρησιμοποιήστε το Secret Store API του Stripe για την αποθήκευση όλων των ευαίσθητων δεδομένων:

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;
};

Ποτέ μην αποθηκεύετε ευαίσθητα δεδομένα σε:

  • Τοπική αποθήκευση ή αποθήκευση συνεδρίας
  • Cookies
  • Παραμέτρους URL
  • Τιμές γραμμένες σταθερά μέσα στον πηγαίο κώδικα
  • Αρχεία διαμόρφωσης σε απλό κείμενο

Κρυπτογραφία

  • Καθόλου προσαρμοσμένη κρυπτογραφία: Μην υλοποιείτε δικούς σας αλγορίθμους κρυπτογράφησης
  • Χρησιμοποιείτε τα ενσωματωμένα μέσα ασφάλειας του Stripe (Secret Store, μυστικά υπογραφής)
  • Χρησιμοποιείτε HTTPS για όλες τις κλήσεις σε εξωτερικά API
  • Επικυρώνετε όλες τις υπογραφές των webhook πριν από την επεξεργασία

Διαχείριση δεδομένων

  • Ζητήστε μόνο τα δικαιώματα που πραγματικά χρειάζεται η εφαρμογή σας
  • Μην αποθηκεύετε δεδομένα του Stripe πέρα από όσα είναι απαραίτητα για τη λειτουργικότητα
  • Εφαρμόστε πολιτικές διατήρησης δεδομένων ευθυγραμμισμένες με την πολιτική απορρήτου σας
  • Παρέχετε έναν μηχανισμό ώστε οι χρήστες να ζητούν τη διαγραφή των δεδομένων τους

Νομική συμμόρφωση

Πολιτική απορρήτου

Η εφαρμογή σας πρέπει να διαθέτει δημόσια προσβάσιμη πολιτική απορρήτου, η οποία καλύπτει:

  • Ποια δεδομένα συλλέγει η εφαρμογή σας από το Stripe
  • Πώς αποθηκεύονται, επεξεργάζονται και κοινοποιούνται τα δεδομένα
  • Πολιτικές διατήρησης και διαγραφής δεδομένων
  • Τα δικαιώματα των χρηστών σχετικά με τα δεδομένα τους
  • Στοιχεία επικοινωνίας για ερωτήματα σχετικά με το απόρρητο
  • Συμμόρφωση με τους ισχύοντες κανονισμούς (GDPR, CCPA κ.λπ.)

Όροι χρήσης

  • Παρέχετε σαφείς όρους χρήσης για την εφαρμογή σας
  • Μην συμπεριλαμβάνετε όρους που έρχονται σε σύγκρουση με τους Όρους Χρήσης του Stripe
  • Δηλώστε με σαφήνεια τυχόν περιορισμούς ή δεσμεύσεις στη χρήση

Κανονιστική συμμόρφωση

  • Συμμορφωθείτε με όλους τους ισχύοντες κανονισμούς προστασίας δεδομένων
  • Εφαρμόστε κατάλληλες συμβάσεις επεξεργασίας δεδομένων
  • Υποστηρίξτε τα αιτήματα φορητότητας και διαγραφής δεδομένων
  • Διατηρήστε αρχεία ελέγχου για την πρόσβαση και την επεξεργασία των δεδομένων

Χρονοδιάγραμμα της διαδικασίας ελέγχου

ΣτάδιοΔιάρκεια
Αρχική υποβολή5-10 εργάσιμες ημέρες
Έλεγχος αναθεώρησης3-7 εργάσιμες ημέρες
Τελική έγκριση1-2 εργάσιμες ημέρες
ΔημοσίευσηΆμεσα μετά την έγκριση

Tip

Αντιμετωπίστε όλα τα σχόλια του ελέγχου σε μία μόνο αναθεώρηση, ώστε να αποφύγετε πολλαπλούς κύκλους ελέγχου. Η ομάδα του Stripe παρέχει συγκεκριμένα και πρακτικά σχόλια για κάθε ζήτημα που εντοπίζει.

Συνήθεις λόγοι απόρριψης

  1. Ελλιπής διαχείριση σφαλμάτων, η εφαρμογή καταρρέει σε σφάλματα δικτύου ή σε απροσδόκητα δεδομένα
  2. Ανεπαρκείς καταστάσεις φόρτωσης, κενές οθόνες κατά τη φόρτωση δεδομένων
  3. Ασαφής τιμολόγηση, οι τιμές δεν γνωστοποιούνται πλήρως στην καταχώριση
  4. Υπερβολικά δικαιώματα, αίτηση δικαιωμάτων που δεν χρειάζεται η εφαρμογή
  5. Προβληματική λειτουργία sandbox, η εφαρμογή δεν λειτουργεί στη λειτουργία δοκιμής
  6. Ζητήματα ασφάλειας, αποθήκευση μυστικών εκτός του Secret Store API
  7. Απούσα πολιτική απορρήτου, δεν υπάρχει προσβάσιμη διεύθυνση URL πολιτικής απορρήτου
  8. Ελλιπής λειτουργικότητα, δυνατότητες «σύντομα κοντά σας» ή περιεχόμενο-κράτηση θέσης

Ζητήστε πρώιμη πρόσβαση

Συμπληρώστε το όνομά σας και ένα email ή έναν αριθμό τηλεφώνου. Θα σας στείλουμε πληροφορίες για την πρόσβαση στο Tajo.

αυτόματη αναγνώριση
AI Βοηθός

Γεια! Ρωτήστε με οτιδήποτε για την τεκμηρίωση.