3.1.1. Εννοιολογική επισκόπηση#

3.1.1.1. Σχετικά με αυτό το σεμινάριο#

Αυτό το σεμινάριο ασχολείται με τον τρόπο επεξεργασίας πληρωμών χρησιμοποιώντας το εμπορικό Backend του GNU Taler. Το κοινό για αυτό το σεμινάριο είναι οι προγραμματιστές των εμπόρων (όπως είναι τα διαδικτυακά καταστήματα) που εργάζονται για την ενσωμάτωση του GNU Taler με το Frontend που είναι στραμμένο προς τον πελάτη και το Backoffice που είναι στραμμένο προς το προσωπικό.

Αυτό το κεφάλαιο εξηγεί ορισμένες βασικές έννοιες. Στο δεύτερο κεφάλαιο, θα μάθετε πώς να κάνετε βασικές πληρωμές.

Αυτή η έκδοση του σεμιναρίου έχει παραδείγματα για την Python3. Χρησιμοποιεί τη βιβλιοθήκη requests για αιτήσεις HTTP. Διατίθενται επίσης εκδόσεις για άλλες γλώσσες/περιβάλλοντα.

Αν θέλετε να δείτε μερικά απλά, λειτουργικά παραδείγματα, δείτε αυτά:

3.1.1.2. Επισκόπηση αρχιτεκτονικής#

Η στοίβα λογισμικού Taler για έναν έμπορο αποτελείται από τα ακόλουθα κύρια στοιχεία:

  • Ένα frontend που αλληλεπιδρά με το πρόγραμμα περιήγησης του πελάτη. Το frontend επιτρέπει στον πελάτη να δημιουργήσει ένα καλάθι αγορών και να κάνει μια παραγγελία. Μετά την πληρωμή, ενεργοποιεί την αντίστοιχη επιχειρησιακή λογική για την ικανοποίηση της παραγγελίας. Αυτό το στοιχείο δεν περιλαμβάνεται στο Taler, αλλά θεωρείται ότι υπάρχει στον έμπορο. Αυτό το σεμινάριο περιγράφει τον τρόπο ανάπτυξης ενός frontend του Taler.

  • Ένα backend πληρωμών ειδικά για το Taler, το οποίο διευκολύνει το frontend να επεξεργάζεται οικονομικές συναλλαγές με το Taler. Για αυτό το σεμινάριο, θα χρησιμοποιήσετε ένα δημόσιο backend sandbox. Για παραγωγική χρήση, θα πρέπει είτε να δημιουργήσετε το δικό σας backend είτε να ζητήσετε από κάποιο άλλο άτομο να το κάνει για εσάς.

Η ακόλουθη εικόνα απεικονίζει τις διάφορες αλληλεπιδράσεις αυτών των βασικών στοιχείων:

../../_images/arch-api.png

Το backend παρέχει την υποστήριξη κρυπτογραφικών πρωτοκόλλων, αποθηκεύει οικονομικές πληροφορίες ειδικά για το Taler και επικοινωνεί με το ανταλλακτήριο GNU Taler μέσω του Διαδικτύου. Το frontend έχει πρόσβαση στο backend μέσω ενός RESTful API. Ως αποτέλεσμα, το frontend δεν χρειάζεται ποτέ να επικοινωνεί απευθείας με το ανταλλακτήριο και επίσης δεν ασχολείται με ευαίσθητα δεδομένα. Ειδικότερα, τα κλειδιά υπογραφής του εμπόρου και οι πληροφορίες τραπεζικού λογαριασμού είναι ενθυλακωμένα στο backend του Taler.

Ορισμένες λειτουργίες του backend (η «δημόσια διεπαφή») εκτίθενται απευθείας στο πρόγραμμα περιήγησης του πελάτη. Στο API HTTP, όλα τα ιδιωτικά τελικά σημεία (για το Backoffice) έχουν πρόθεμα /private/. Αυτό το σεμινάριο επικεντρώνεται στα τελικά σημεία /private/. Η δημόσια διεπαφή χρησιμοποιείται άμεσα από το πορτοφόλι και δεν έχει σημασία για τον έμπορο (εκτός του ότι το API πρέπει να είναι εκτεθειμένο).

3.1.1.3. Δημόσιο Sandbox Backend και πιστοποίηση ταυτότητας#

Ο τρόπος με τον οποίο το frontend πιστοποιείται στο backend του Taler εξαρτάται από τη διαμόρφωση. Ανατρέξτε στην ενότητα Εγχειρίδιο χειριστή του backend του Merchant.

Το δημόσιο sandbox backend https://backend.demo.taler.net/instances/sandbox/ χρησιμοποιεί ένα κλειδί API στην επικεφαλίδα Authorization. Η τιμή αυτής της επικεφαλίδας πρέπει να είναι Bearer secret-token:sandbox για το public sandbox backend.

>>> import requests
>>> requests.get("https://backend.demo.taler.net/instances/sandbox/private/orders",
...              headers={"Authorization": "Bearer secret-token:sandbox"})
<Response [200]>

Εάν επιστραφεί ένας κωδικός κατάστασης HTTP διαφορετικός από 200, κάτι πήγε στραβά. Θα πρέπει να καταλάβετε ποιο είναι το πρόβλημα πριν συνεχίσετε με αυτό το σεμινάριο.

Το sandbox backend https://backend.demo.taler.net/instances/sandbox/ χρησιμοποιεί το KUDOS ως ένα φανταστικό νόμισμα. Νομίσματα σε KUDOS μπορούν να αποσυρθούν από το https://bank.demo.taler.net/.

3.1.1.4. Περιπτώσεις εμπόρων#

Ένας μοναδικός κεντρικός διακομιστής Taler merchant backend μπορεί να χρησιμοποιηθεί από πολλούς εμπόρους που αποτελούν ξεχωριστές επιχειρηματικές οντότητες. Σε κάθε μία από αυτές τις ξεχωριστές επιχειρηματικές οντότητες ανατίθεται μια εμπορική περίπτωση η οποία αναγνωρίζεται από ένα αλφαριθμητικό instance id. Εάν η περίπτωση παραλείπεται, θεωρείται ότι το αναγνωριστικό της περίπτωσης admin.

Οι ακόλουθες περιπτώσεις εμπόρων έχουν ρυθμιστεί στο https://backend.demo.taler.net/:

Σημείωση

Αυτοί είναι φανταστικοί έμποροι που χρησιμοποιούνται για τους διαδηλωτές μας και δεν συνδέονται ή δεν εγκρίνονται επίσημα από τα αντίστοιχα έργα.

Όλα τα τελικά σημεία για τις περιπτώσεις προσφέρουν το ίδιο API. Έτσι, το παράδειγμα που θα χρησιμοποιηθεί περιλαμβάνεται απλώς στη βασική διεύθυνση URL του backend του εμπόρου.

3.1.1.5. Εκπαιδευτικά βίντεο#

Αυτή η σελίδα περιέχει όλη την τεκμηρίωση για το βίντεο-σεμινάριο που παρουσιάζει το εμπορικό API του Taler.

3.1.1.5.1. Βίντεο#

3.1.1.5.2. Απαιτήσεις#

Απαιτείται για αυτή τη σειρά σεμιναρίων:

  • Ένα εμπορικό backend Taler
    Για λόγους ευκολίας, σας συνιστούμε να χρησιμοποιήσετε το https://backend.demo.taler.net/instances/sandbox/.
  • Μια περίπτωση πορτοφολιού Taler
    Οι οδηγίες εγκατάστασης είναι διαθέσιμες στη διεύθυνση https://wallet.taler.net, αν και δεν απαιτούνται για αυτό το σεμινάριο.
  • Λογισμικό διαχείρισης REST API ή σχετικές δεξιότητες προγραμματισμού
    Σε αυτή τη σειρά βίντεο, θα χρησιμοποιήσουμε το δωρεάν λογισμικό Insomnia, το οποίο είναι διαθέσιμο για λήψη από τη διεύθυνση https://insomnia.rest.
    Ως εισαγωγή, αυτό το βίντεο θα δείξει πώς να εξάγετε κώδικα εργασίας από τα προετοιμασμένα ερωτήματα στο Insomnia σε Python (ή σε οποιαδήποτε υποστηριζόμενη γλώσσα) και να τα εκτελείτε, αλλά αυτό δεν θα παρουσιαστεί ξανά στα επόμενα σεμινάρια.

3.1.1.5.3. Demo backend ειδοποίηση#

Συνιστάται έντονα η χρήση της διαδικτυακής υπηρεσίας επίδειξης εμπορικών εφαρμογών Taler https://backend.demo.taler.net/instances/sandbox/ για αυτό το σεμινάριο.

Το κλειδί πρόσβασης είναι: sandbox.

3.1.1.5.4. Πληροφορίες σχετικά με το μυστικό σύμβολο#

Το μυστικό διακριτικό συμμορφώνεται με το έγγραφο RFC 8959. Μπορείτε να μάθετε περισσότερα γι” αυτό εδώ: https://datatracker.ietf.org/doc/html/rfc8959. Λάβετε υπόψη ότι αυτό είναι ένα Bearer token και ότι η επικεφαλίδα authoirization πρέπει να το προσδιορίζει.

Η επικεφαλίδα εξουσιοδότησής σας θα πρέπει να μοιάζει με αυτό:
Εξουσιοδότηση: κλειδί πρόσβασης>

3.1.1.5.5. Περισσότερα σεμινάρια#

Για να δείτε πρόσθετα σεμινάρια, μπορείτε να περιηγηθείτε σε αυτόν τον ιστότοπο ή να επισκεφθείτε τη διεύθυνση https://docs.taler.net για να λάβετε την πιο πρόσφατη τεκμηρίωση σχετικά με τις υπηρεσίες Taler.