3.1.7. Πληρωμές συνδεδεμένες με τη σύνοδο#
Μερικές φορές δεν αρκεί να ελέγξετε αν μια παραγγελία έχει πληρωθεί. Για παράδειγμα, κατά την πώληση πρόσβασης σε διαδικτυακά μέσα ενημέρωσης, ο εκδότης μπορεί να θέλει να πληρωθεί για το ίδιο ακριβώς προϊόν από κάθε πελάτη. Το Taler υποστηρίζει αυτό το μοντέλο, επιτρέποντας στον mechant να ελέγχει αν η «απόδειξη πληρωμής» είναι διαθέσιμη στην τρέχουσα συσκευή του χρήστη. Αυτό αποτρέπει τους χρήστες από το να μοιράζονται εύκολα την πρόσβαση στα μέσα ενημέρωσης μεταδίδοντας έναν σύνδεσμο προς τη σελίδα εκπλήρωσης. Φυσικά, οι εξελιγμένοι χρήστες θα μπορούσαν επίσης να μοιραστούν τις αποδείξεις πληρωμής, αλλά αυτό δεν είναι τόσο εύκολο όσο η κοινή χρήση ενός συνδέσμου και σε αυτή την περίπτωση είναι πιο πιθανό να μοιραστούν απλώς τα μέσα απευθείας.
Για να χρησιμοποιηθεί αυτή η δυνατότητα, ο έμπορος πρέπει πρώτα να εκχωρήσει στο τρέχον πρόγραμμα περιήγησης του χρήστη ένα εφήμερο «session_id», συνήθως μέσω ενός cookie συνεδρίας. Κατά την εκτέλεση ή την αναπαραγωγή μιας πληρωμής, το πορτοφόλι θα λάβει μια πρόσθετη υπογραφή (session_sig). Αυτή η υπογραφή πιστοποιεί ότι το πορτοφόλι έδειξε μια απόδειξη πληρωμής για την αντίστοιχη παραγγελία στην τρέχουσα συνεδρία.
Οι πληρωμές που συνδέονται με τη σύνοδο ενεργοποιούνται περνώντας την παράμετρο session_id στο τελικό σημείο /check-payment. Το πορτοφόλι θα ανακατευθύνει στη συνέχεια στη σελίδα εκπλήρωσης, αλλά θα περιλαμβάνει μια πρόσθετη παράμετρο session_sig. Το frontend μπορεί να κάνει ερώτημα στο /check-payment τόσο με το session_id όσο και με το session_sig για να επαληθεύσει ότι η υπογραφή είναι σωστή.
Το τελευταίο αναγνωριστικό συνεδρίας που χρησιμοποιήθηκε επιτυχώς για να αποδειχθεί ότι η απόδειξη πληρωμής βρίσκεται στο πορτοφόλι του χρήστη είναι επίσης διαθέσιμο ως last_session_id στην απόκριση στο /check-payment.