Χρησιμοποιήστε το χωρίς το κουμπί αγοράς
Το κουμπί αγοράς είναι ένα επίπεδο ευκολίας. Από κάτω, το Coin Moebius είναι ένα ενοικιαζόμενο webhook συν μερικά JSON endpoints. Αν προτιμάτε να χτίσετε το δικό σας UI, να τρέξετε τη δική σας ροή checkout, ή να συνδέσετε το Coin Moebius σε κάτι που το κουμπί δεν μπορεί να χειριστεί (συνδρομές Square ή Authorize.Net, μια προσαρμοσμένη φόρμα πληρωμής, ένα server-side script, μια εφαρμογή κινητού), κάθε endpoint που χρησιμοποιεί το κουμπί καλείται επίσης από οτιδήποτε. Χωρίς αλλαγές κώδικα από την πλευρά μας.
Πιστοποίηση κλήσεων από το backend
Οι κλήσεις που κάνετε από τον δικό σας διακομιστή μπορούν να φέρουν το API key του έργου σας ως bearer token. Δημιουργήστε ένα κλειδί στον πίνακα ελέγχου, κάτω από τα API keys του έργου σας (ξεκινά με cmk_), και στείλτε το στην κεφαλίδα Authorization:
Authorization: Bearer cmk_live_xxxxxxxxxxxxxxxxxxxxxxxxΤο κλειδί είναι δεμένο σε ένα έργο, και οι πιστοποιημένες κλήσεις λαμβάνουν υψηλότερο όριο ρυθμού από τις ανώνυμες. Το ίδιο το κουμπί αγοράς είναι δημόσιο και δεν χρειάζεται κλειδί. Κρατήστε το κλειδί σας στον διακομιστή σας. Ποτέ μην το βάζετε σε κώδικα προγράμματος περιήγησης ή άλλο κώδικα πλευράς πελάτη.
Όλα αυτά τα endpoints ζουν κάτω από τη URL του έργου σας. Στην παραγωγή αυτή η βάση είναι https://api.coinmoebius.com. Η πλήρης URL για το καθένα φαίνεται παρακάτω (αντικαταστήστε τα μέρη {…} με τις δικές σας τιμές).
| Endpoint | Τι κάνει |
|---|---|
POST https://api.coinmoebius.com/api/checkout/{provider}/{projectId} | Ξεκινήστε ένα checkout. POST { productId, metadata }· λάβετε πίσω ό,τι χρειάζεται ο πάροχος (μια URL ανακατεύθυνσης για Stripe, μια URL έγκρισης για PayPal, ένα token για Authorize.Net Accept Hosted). Αποδώστε το όπως θέλετε. |
POST https://api.coinmoebius.com/webhook/{provider}/{projectId} | Ο πάροχος δημοσιεύει εδώ. Επαληθεύουμε την υπογραφή, κανονικοποιούμε το συμβάν, το αποθηκεύουμε, μετράμε το όριο. Στρέψτε το webhook του παρόχου σε αυτή τη URL είτε το αρχικό checkout ήρθε από το κουμπί μας είτε από τη δική σας ενσωμάτωση. |
GET https://api.coinmoebius.com/status/{projectId}/{txId} | Αντλήστε την τρέχουσα κατάσταση μιας πληρωμής ή συνδρομής. Επιστρέφει την ίδια κανονικοποιημένη μορφή που λαμβάνει το κουμπί αγοράς. |
POST https://api.coinmoebius.com/api/subscriptions/{projectId}/{subscriptionId}/portal-url | Δημιουργήστε μια URL portal φιλοξενούμενου από τον πάροχο για να διαχειρίζεται ο αγοραστής τη συνδρομή του. Λειτουργεί για κάθε πάροχο που έχει portal. |
Ταυτοποιήστε τον αγοραστή στο δικό σας σύστημα περνώντας το metadata.customerRef στην κλήση checkout. Περνά μέσα από τον πάροχο και πίσω σε κάθε συμβάν webhook, ώστε να μπορείτε να συνδέσετε τις εγγραφές του Coin Moebius με τη δική σας βάση δεδομένων χρηστών χωρίς να αποθηκεύουμε εμείς τίποτα για τον αγοραστή.
Γιατί κάποιος χρησιμοποιεί αυτή τη διαδρομή: ένας δομητής στατικών ιστότοπων που θέλει να γράψει το δικό του κουμπί για να ταιριάζει με τη σχεδίαση του ιστότοπού του και απλώς χρειάζεται να χειριστεί το webhook. Ένας προγραμματιστής που θέλει να παρακάμψει εντελώς το κουμπί και να καλέσει το API από τον δικό του διακομιστή. Ένας έμπορος που θέλει να τρέξει συνδρομές Square ή Authorize.Net και δεν τον πειράζει να συνδέσει μόνος του τη συλλογή κάρτας. Το κουμπί είναι ένα σημείο εκκίνησης. Το API είναι το πραγματικό προϊόν.
Ακρόαση συμβάντων αγοραστή
Το στοιχείο ενεργοποιεί τρία συμβάντα προγράμματος περιήγησης. Ακούστε με addEventListener στο στοιχείο (ή στο document, τα συμβάντα κάνουν bubble). Όλα τα συμβάντα είναι ακυρώσιμα, η κλήση event.preventDefault() σταματά την προεπιλεγμένη ροή.
| Συμβάν | Πότε ενεργοποιείται | Φορτίο λεπτομερειών |
|---|---|---|
cm-load-providers | Το modal του επιλογέα πρόκειται να ζητήσει από το API τη λίστα των παρόχων που έχουν διαμορφωθεί σε αυτό το έργο. | Κενό. |
cm-checkout-started | Ο αγοραστής επέλεξε έναν πάροχο και το Coin Moebius πρόκειται να δημιουργήσει μια συνεδρία checkout (Stripe / NOWPayments) ή να δημιουργήσει έναν κωδικό αναφοράς (manual). | { provider: 'stripe' | 'nowpayments' | 'manual', ... } |
cm-error | Κάτι απέτυχε: σφάλμα δικτύου, αποτυχία υπογραφής, κανένας πάροχος δεν διαμορφώθηκε. | { error: Error } |
document.addEventListener('cm-error', (event) => {
console.error('Coin Moebius:', event.detail.error);
// Show your own error UI, send to your analytics, etc.
});Δεν υπάρχει συμβάν cm-success στο πρόγραμμα περιήγησης του αγοραστή. Μέχρι να ολοκληρωθεί πραγματικά η πληρωμή, ο αγοραστής έχει ανακατευθυνθεί στο φιλοξενούμενο checkout του παρόχου πληρωμής (Stripe Checkout, σελίδα τιμολογίου NOWPayments). Επιστρέφουν στον ιστότοπό σας μέσω του success_url που διαμορφώσατε (δείτε την επόμενη ενότητα), και ο διακομιστής σας μαθαίνει για την πληρωμή μέσω του πίνακα ελέγχου ή αντλώντας το /status endpoint.
Άντληση από το backend σας
Για μια πηγή αλήθειας από την πλευρά του διακομιστή, αντλήστε το GET /status/:projectId/:txId από το backend σας. Η μορφή της απόκρισης:
{
"status": "succeeded",
"amount": 29.99,
"currency": "USD",
"isTest": false,
"createdAt": "2026-05-14T01:04:21.000Z",
"updatedAt": "2026-05-14T01:04:21.000Z"
}Οι τιμές κατάστασης ακολουθούν το ίδιο enum με τον πίνακα ελέγχου (δείτε Καταστάσεις συναλλαγής). Το endpoint δεν απαιτεί πιστοποίηση αλλά έχει όριο ρυθμού 60 αιτημάτων / λεπτό ανά IP. Το id συναλλαγής που περνάτε είναι ό,τι επέστρεψε το SDK στο συμβάν cm-checkout-started ή ό,τι εμφανίζεται στη στήλη Αναφορά του πίνακα ελέγχου.
Ένα τυπικό μοτίβο: όταν φορτώνει η σελίδα σας success_url, ξεκινήστε μια εργασία backend που αντλεί το /status/:projectId/:txId κάθε 15 δευτερόλεπτα μέχρι να δει succeeded (ή failed / ένα timeout), και μετά εκπληρώστε την παραγγελία.