Παραγγελία από πρόθεμα
Χρησιμοποιήστε αυτή τη λειτουργία όταν ο κατάλογος προθεμάτων σάς κατευθύνει να παραγγείλετε μια ποσότητα από ένα πρόθεμα αντί να επιλέξετε μεμονωμένους διαθέσιμους αριθμούς. Ξεκινήστε με χώρες, περιοχές ή πολιτείες και προθέματα. Κρατήστε το αναγνωριστικό προθέματος και το τιμολογιακό πρόγραμμα από το ίδιο πρόσφατο αποτέλεσμα. Για έναν συγκεκριμένο αριθμό που επιλέγεται από λίστα διαθέσιμων αριθμών, χρησιμοποιήστε τη λειτουργία Αγορά επιλεγμένου τηλεφωνικού αριθμού.
Αυτό το αίτημα μπορεί να αγοράσει αριθμούς και να επιφέρει χρεώσεις. Δεν αποτελεί προσφορά τιμής, κράτηση ή δοκιμαστική εκτέλεση. Ελέγξτε τις χρεώσεις εγκατάστασης και τις μηνιαίες χρεώσεις, τις τιμές ανά λεπτό εισερχόμενων κλήσεων, τα συμπεριλαμβανόμενα λεπτά, τα κανάλια, τις απαιτήσεις καταχώρισης στοιχείων και τα όρια αγορών του λογαριασμού πριν από την υποβολή. Ένα αποτέλεσμα καταλόγου δεν δεσμεύει απόθεμα ούτε κλειδώνει τιμές. Έλεγχοι χρηματοδότησης του λογαριασμού μπορούν να πραγματοποιηθούν πριν από την εκτέλεση της παραγγελίας· ένα σφάλμα δεν αποδεικνύει από μόνο του ότι δεν έγινε αγορά ή χρηματοδότηση του λογαριασμού.
Υποβολή της αγοράς
Χρησιμοποιήστε ενεργοποιημένο λογαριασμό API μέσω HTTPS από επιτρεπόμενη διεύθυνση IP προέλευσης. Ορίστε τις μεταβλητές βάσει της τρέχουσας επιλογής σας από τον κατάλογο και της εγκεκριμένης διαμόρφωσης παράδοσης. Η ακόλουθη εντολή αγοράζει έναν αριθμό.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--data-urlencode 'quantity=1' \
--data-urlencode "price_id=$PRICE_ID" \
--data-urlencode "channels=$CHANNELS" \
--data-urlencode "reference=$ORDER_REFERENCE" \
--data-urlencode "uri=$VOICE_URI" \
"https://api.multitel.net/v3/order/$PREFIX_ID"Παραπάνω εμφανίζεται αίτημα POST με δεδομένα φόρμας. Ο συντονιστής διαβάζει επίσης ένα αντικείμενο JSON όταν το Content-Type είναι application/json. Τα πεδία JSON υπερισχύουν των αντίστοιχων πεδίων φόρμας/αιτήματος. Χρησιμοποιήστε με συνέπεια μία κωδικοποίηση· μην αποστέλλετε αντικρουόμενες τιμές στο ερώτημα και στο σώμα του αιτήματος.
| Παράμετρος | Σημασία |
|---|---|
| αναγνωριστικό προθέματος στη διαδρομή | Το UUID προθέματος που επιστρέφεται από τον κατάλογο. Ένα αναγνωριστικό χώρας, περιοχής, τιμής ή μεμονωμένου αριθμού δεν το υποκαθιστά. |
| quantity | Στείλτε έναν ακέραιο από 1 έως 100. Προεπιλογή: 1. Οι τιμές κάτω από 1 μετατρέπονται σε 1· αυτό δεν είναι αίτημα μόνο για επικύρωση. Οι τιμές πάνω από 100 προκαλούν εξαίρεση πριν από τον κανονικό χειρισμό απόκρισης αυτού του συντονιστή, επομένως μην βασίζεστε στη συνήθη δομή JSON του για αυτή τη μη έγκυρη είσοδο. |
| price_id | Το δημόσιο αναγνωριστικό τιμής του επιλεγμένου προγράμματος. Το priceid είναι παλαιό εναλλακτικό όνομα. Ένα αναγνωριστικό που δεν αντιστοιχεί μπορεί να οδηγήσει σιωπηρά σε επιλογή διαφορετικού προγράμματος· αυτό το πεδίο δεν κλειδώνει αυστηρά την τιμή. Επιβεβαιώστε τα ανώτατα όρια τιμών του λογαριασμού πριν από την αγορά και ελέγξτε την επιστρεφόμενη τιμή μετά την αγορά. |
| channels | Το πλήθος καναλιών του επιλεγμένου προγράμματος. Όταν δεν χρησιμοποιείται ακριβής αντιστοίχιση τιμής, ένα αντίστοιχο πλήθος καναλιών μπορεί να επηρεάσει την εναλλακτική επιλογή. Δεν εγγυάται από μόνο του ότι αγοράζεται ένα συγκεκριμένο πρόγραμμα. |
| reference | Η ετικέτα σας για την αγορά ή την παρτίδα. Χρησιμοποιήστε μια σύντομη τιμή ASCII, το πολύ 255 byte· οι μεγαλύτερες τιμές περικόπτονται. Διατηρείται μαζί με τις επιτυχημένες αγορές και περιλαμβάνεται στις ειδοποιήσεις επανάκλησης όταν παρέχεται. Διαφορετικές παραγγελίες μπορούν να έχουν την ίδια αναφορά. Δεν είναι κλειδί ιδιοδυναμίας: η επανυποβολή αυτής της λειτουργίας μπορεί να αγοράσει και να χρεώσει πρόσθετους αριθμούς, ακόμη και με την ίδια αναφορά και πανομοιότυπα πεδία. |
| webhook_url | Προαιρετική διεύθυνση URL επανάκλησης. Χρησιμοποιήστε ένα τελικό σημείο HTTPS που ελέγχετε. Οι διευθύνσεις URL HTTP και HTTPS περνούν τον τρέχοντα βασικό έλεγχο εγκυρότητας· μια μη έγκυρη διεύθυνση URL αγνοείται αντί να απορρίπτεται η αγορά. Μια ειδοποίηση επανάκλησης είναι πρόσθετη ειδοποίηση, όχι απόδειξη ότι ένα αίτημα μπορεί να επαναληφθεί με ασφάλεια. |
Ρυθμίσεις παράδοσης και ανανέωσης
Επιλέξτε τις ίδιες ρυθμίσεις παράδοσης που θα χρησιμοποιούσατε για τον αριθμό στην πύλη. Πρόκειται για τιμές σύνθετης διαμόρφωσης, όχι για οδηγίες δημιουργίας φιλοξενούμενου τηλεφωνικού κέντρου ή κορμού προέλευσης κλήσεων. Χρησιμοποιήστε ξανά μια διαμόρφωση λογαριασμού που γνωρίζετε ότι λειτουργεί και ελέγξτε τον αποθηκευμένο αριθμό μετά την αγορά. Η αποδοχή μιας αγοράς από μόνη της δεν επιβεβαιώνει ότι η παράδοση φωνής ή SMS λειτουργεί.
| Πεδίο | Χρήση και συμβατότητα |
|---|---|
| uri, uri2, uri3 | Κύριος και πρόσθετοι προορισμοί φωνής. Δώστε προορισμούς κατάλληλους για τους επιλεγμένους τρόπους προώθησης και κουδουνίσματος. |
| forward_destination | Τρόπος προώθησης φωνής. Τα forwarding_destination και type είναι παλαιά εναλλακτικά ονόματα. Αν παραλειφθεί, χρησιμοποιείται η προεπιλογή της διαδρομής ολοκλήρωσης αγοράς· ένα κενό πεδίο δεν είναι αξιόπιστος τρόπος διαγραφής μιας υπάρχουσας προτίμησης. |
| ring_type | Τρόπος κουδουνίσματος φωνής· το ringtype είναι εναλλακτικό όνομα. Χρησιμοποιήστε μια υποστηριζόμενη τιμή από τη διαμόρφωση αριθμών του λογαριασμού σας. |
| sms_forward_destination, sms_uri | Τρόπος και προορισμός παράδοσης SMS. Τα παλαιά εναλλακτικά ονόματα είναι smsringtype και smsuri. Ορισμένες διαδρομές ολοκλήρωσης αγοράς εφαρμόζουν τον προεπιλεγμένο προορισμό SMS του λογαριασμού όταν αυτό είναι κενό. Η διαθεσιμότητα SMS εξαρτάται από τον επιλεγμένο αριθμό και την ενεργοποίηση/καταχώριση των στοιχείων του. |
| overflow | Ζητούμενη ρύθμιση υπερχείλισης. Η διαθεσιμότητα του προγράμματος και η διαδρομή ολοκλήρωσης αγοράς επηρεάζουν το αν υποστηρίζεται. |
| force_codec, force_dtmf | Ζητούμενες ρυθμίσεις κωδικοποιητή και DTMF. Τα παλαιά εναλλακτικά ονόματα είναι forcecodec και forcedtmf. Ελέγξτε την αποθηκευμένη διαμόρφωση για το επιλεγμένο απόθεμα. |
| origination_trunk_id | Αναγνωριστικό υπάρχουσας διαμόρφωσης κορμού, όπου εφαρμόζεται. Αυτό δεν δημιουργεί κορμό. Αν παραλειφθεί, χρησιμοποιείται η προεπιλογή ολοκλήρωσης αγοράς. |
| autorenew | Ζητούμενη ρύθμιση ανανέωσης. Μην θεωρείτε ότι το 0 απενεργοποιεί την ανανέωση: ορισμένες διαδρομές ολοκλήρωσης αγοράς αντιμετωπίζουν μια τιμή που εκλαμβάνεται ως κενή, συμπεριλαμβανομένου του 0, ως την προεπιλεγμένη ενεργοποιημένη ρύθμιση. Ελέγξτε και, όταν χρειάζεται, αλλάξτε την ανανέωση στον αγορασμένο αριθμό μέσα από την πύλη. |
Αυτά τα πεδία κανονικοποιούνται και μεταβιβάζονται στην ολοκλήρωση αγοράς, αλλά η αποθήκευσή τους διαφέρει μεταξύ των διαδρομών αποθέματος. Η τρέχουσα διαδρομή παραγγελίας δεν παρέχει τα πεδία αυστηρού ανώτατου ορίου προσφοράς του οδηγού αγοράς επιλεγμένου αριθμού ως ισοδύναμες δικλίδες προστασίας. Χρησιμοποιήστε τα δικαιώματα αγορών και τα όρια τιμών του λογαριασμού και ελέγξτε τη διαμόρφωση αριθμού που προκύπτει.
Ανάγνωση του πλήρους αποτελέσματος
Αναλύστε το σώμα JSON και ελέγξτε τα status.code και status.msg ακόμη και όταν το αίτημα HTTP επιτυγχάνει. Αυτή η διαδρομή συντάσσει τη δική της απόκριση JSON, ενώ και η κοινόχρηστη βοηθητική λειτουργία απόκρισης δεν αντιστοιχίζει απαραίτητα τον κωδικό εφαρμογής στην κατάσταση HTTP. Οι κωδικοί εφαρμογής μπορεί να είναι αριθμοί JSON ή αριθμητικές συμβολοσειρές. Μην απαιτείτε το status.results· δεν υπάρχει στο κανονικό αποτέλεσμα παραγγελίας.
{
"status": {"code": "200", "msg": ""},
"response": {
"id": "o_fictional_example",
"numbers": ["12025550123"],
"price": {
"per_minute": "0.01",
"free_minutes": 0,
"setup_price": "1.25",
"monthly_price": "2.50",
"channels": 2
},
"features": ["voice"],
"needs_registration": 0,
"restrictions": "",
"registration_requirements": null
}
}Το αναγνωριστικό, ο αριθμός και οι παραπάνω τιμές είναι πλασματικά. Αντιμετωπίστε το αναγνωριστικό παραγγελίας ως αδιαφανές. Το numbers παραθέτει τους αριθμούς που αυτή η απόκριση αναφέρει ως αγορασμένους· συγκρίνετε το πλήθος τους με την ποσότητα που ζητήσατε. Τα ποσά των τιμών είναι συμβολοσειρές και αυτή η απόκριση στρογγυλοποιεί τις χρηματικές τιμές σε δύο δεκαδικά ψηφία, συμπεριλαμβανομένου του per_minute· χρησιμοποιήστε τον πρόσφατο κατάλογο για την αρχική ακρίβεια των τιμών. Τα συμπεριλαμβανόμενα λεπτά και τα κανάλια μπορούν να ληφθούν ως αριθμητικές τιμές ή αριθμητικές συμβολοσειρές.
Η ενότητα τιμής περιγράφει το επιλεγμένο πρόγραμμα που χρησιμοποιήθηκε για τη δημιουργία της απόκρισης, όχι ένα αναλυτικό τιμολόγιο για κάθε αριθμό ή το σύνολο της παραγγελίας. Διαφορετικοί υποψήφιοι αριθμοί του αποθέματος μπορούν να έχουν διαφορετικά προγράμματα. Διασταυρώστε τους μεμονωμένους αγορασμένους αριθμούς και τις συναλλαγές του λογαριασμού αντί να πολλαπλασιάζετε τα ποσά αυτής της ενότητας και να θεωρείτε ότι αποδεικνύουν το τελικό σύνολο.
Μερικές αγορές και αβέβαιες εκβάσεις
Ένας κωδικός εφαρμογής 200 μπορεί να συνοδεύεται από προειδοποίηση και λιγότερους αριθμούς από όσους ζητήθηκαν. Μια μεταγενέστερη αποτυχία δεν αναιρεί την αγορά αριθμών που έχουν ήδη αγοραστεί. Διατηρήστε το επιστρεφόμενο αναγνωριστικό παραγγελίας, τους αριθμούς και το μήνυμα. Διασταυρώστε αυτούς τους αριθμούς στο απόθεμά σας και στις συναλλαγές του λογαριασμού πριν αποφασίσετε αν θα παραγγείλετε την υπόλοιπη ποσότητα.
Η λήξη χρονικού ορίου, η αποσύνδεση αιτήματος, μια κακοσχηματισμένη απόκριση ή ένα σφάλμα μετά την υποβολή δεν αποτελούν απόδειξη ότι δεν συνέβη τίποτα. Μην υποβάλλετε αυτόματα άλλη αγορά, ακόμη και με την ίδια αναφορά. Διατηρήστε το αρχικό αίτημα, την αναφορά και κάθε επιστρεφόμενο αναγνωριστικό παραγγελίας, ελέγξτε το απόθεμα και τις συναλλαγές του λογαριασμού και επικοινωνήστε με την υποστήριξη όταν η έκβαση παραμένει αβέβαιη.
Μια μη επιβεβαιωμένη παραγγελία μπορεί να επιστρέψει κωδικό εφαρμογής 400 με διατύπωση ότι η επιβεβαίωσή της βρίσκεται ακόμη σε εξέλιξη. Διατηρήστε το επιστρεφόμενο αναγνωριστικό παραγγελίας και διασταυρώστε αυτή την αγορά· αυτό δεν είναι οδηγία για επανυποβολή της. Η ανάκτηση καταγεγραμμένων παραγγελιών παρακολουθεί εσωτερικά την αρχική παραγγελία. Ένα νέο αίτημα προς αυτή τη λειτουργία δημιουργεί ξεχωριστή απόπειρα αγοράς αντί να συνεχίζει μια παραγγελία βάσει της αναφοράς σας, επομένως μπορεί να αγοράσει και να χρεώσει περισσότερους αριθμούς. Μην χρησιμοποιείτε επαναλαμβανόμενα αιτήματα αγοράς για έλεγχο κατάστασης ή αναζήτηση αποθέματος.
Καταχώριση στοιχείων και ενεργοποίηση
Ένας αγορασμένος ή εκχωρημένος αριθμός ενδέχεται να χρειάζεται ακόμη καταχώριση στοιχείων ή ενεργοποίηση. Αν το needs_registration είναι 1, ελέγξτε τα restrictions και registration_requirements. Το τελευταίο μπορεί να υποδεικνύει το v3/get_requirements με τιμές country και number_type. Ολοκληρώστε την ισχύουσα διαδικασία ταυτοποίησης/διεύθυνσης και επιβεβαιώστε την κατάσταση του αριθμού πριν βασιστείτε σε εισερχόμενες κλήσεις ή μηνύματα.
Το features περιγράφει τις διαφημιζόμενες δυνατότητες· δεν επιβεβαιώνει τη δρομολόγηση σε πραγματική λειτουργία, την έγκριση καμπάνιας, την παράδοση SMS ή τη λήψη φαξ. Ελέγξτε τις αποθηκευμένες ρυθμίσεις παράδοσης και πραγματοποιήστε την κατάλληλη δοκιμή υπηρεσίας όταν ο αριθμός είναι ενεργός.
Ειδοποιήσεις επανάκλησης παραγγελιών
Οι ειδοποιήσεις επανάκλησης αποστέλλουν με POST δεδομένα JSON που περιέχουν την κατάσταση και την απόκριση της παραγγελίας, με προσθήκη της αναφοράς σας όταν παρέχεται. Αποστέλλονται για τις αναφερόμενες αγορές, συμπεριλαμβανομένων των μερικών αποτελεσμάτων. Μια αποτυχημένη ειδοποίηση επανάκλησης δεν αναιρεί την αγορά. Η παράδοση μπορεί να επαναληφθεί, επομένως χειριστείτε τα διπλότυπα βάσει αναγνωριστικού παραγγελίας και διασταυρώστε τους αριθμούς αντί να υποβάλετε άλλη αγορά.
Αυτή η διαδρομή δεν προσθέτει κρυπτογραφική υπογραφή στην ειδοποίηση επανάκλησης. Αντιμετωπίστε μια ειδοποίηση επανάκλησης ως ειδοποίηση για διασταύρωση με το απόθεμά σας στο οποίο αποκτάτε πρόσβαση με έλεγχο ταυτότητας, όχι ως ανεξάρτητη εξουσιοδότηση για χρέωση, παροχή υπηρεσιών ή παραχώρηση πρόσβασης. Μην τοποθετείτε διαπιστευτήρια API στη διεύθυνση URL επανάκλησης. Η υποβολή άλλης αγοράς με διαφορετική διεύθυνση URL επανάκλησης δεν ενημερώνει την αρχική παραγγελία· δημιουργεί ξεχωριστή απόπειρα αγοράς. Διατηρήστε το αρχικό αναγνωριστικό παραγγελίας όταν ζητάτε από την υποστήριξη να διερευνήσει την ειδοποίηση επανάκλησής της.
Αποτυχίες που πρέπει να χειριστείτε
| Έκβαση | Ενέργεια |
|---|---|
| 400 και διατύπωση για μη έγκυρο πρόθεμα | Διαβάστε ξανά τον κατάλογο προθεμάτων και χρησιμοποιήστε το τρέχον αναγνωριστικό του προθέματος. Διακρίνετε αυτή την περίπτωση από διατύπωση ότι η επιβεβαίωση μιας αρχικής παραγγελίας βρίσκεται ακόμη σε εξέλιξη. |
| 403 ή αποτυχία λόγω πολιτικής/υπολοίπου λογαριασμού | Ελέγξτε το δικαίωμα αγοράς, τα ανώτατα όρια τιμών του λογαριασμού, τα όρια ποσότητας και τη χρηματοδότηση. Από αυτούς τους ελέγχους μπορούν να προωθηθούν και άλλοι κωδικοί εφαρμογής· διατηρήστε το πραγματικό μήνυμα. |
| 404 ή απουσία διαθέσιμου αποθέματος | Ανανεώστε τα στοιχεία διαθεσιμότητας. Μην υποβάλλετε επανειλημμένα αγορές από πρόθεμα με εξαντλημένο απόθεμα. |
| 409 και διατύπωση για επιβεβαίωση αγοράς, απόρριψη από πάροχο ή ακυρωμένη παραγγελία | Διατηρήστε το επιστρεφόμενο αναγνωριστικό παραγγελίας και το πραγματικό μήνυμα. Διασταυρώστε το αίτημα με το απόθεμα, τις συναλλαγές του λογαριασμού και την υποστήριξη πριν υποβάλετε άλλη αγορά. Η επαναχρησιμοποίηση της ίδιας αναφοράς δεν καθιστά ασφαλές ένα άλλο αίτημα. |
| 200 με προειδοποιήσεις ή λιγότερους αριθμούς | Αγοράστηκαν ορισμένοι αριθμοί. Διασταυρώστε την επιστρεφόμενη εκχώρηση και τις συναλλαγές πριν παραγγείλετε περισσότερους. |
| Αποτυχία διακομιστή/μεταφοράς ή μη αναγνώσιμη απόκριση | Αντιμετωπίστε το αποτέλεσμα ως ενδεχομένως αβέβαιο μέχρι το απόθεμα και οι συναλλαγές να τεκμηριώσουν τι συνέβη. |