Ηλεκτρονικές και κινητές πληρωμές με χρήση σάρωσης QR Code
Electronic and mobile payments using QR Code scan
Προβολή/ Άνοιγμα
Περίληψη
Το QR Code Services App, είναι μια εφαρμογή Android η οποία αναλαμβάνει να διεκπαιρεώνει on-line, άμεσες συναλλαγές.
Η εφαρμογή, αποτελείται από δύο μέρη. Το ένα μέρος αφορά την android εφαρμογή η οποία εγκαθίσταται στη συσκευή του χρήστη και το δεύτερο μέρος, το λογισμικό που προσομειώνει την πλευρά της τράπεζας. Το τελευταίο, έχει αναπτυχθεί με Java και Spring boot framework. Η τράπεζα, ως είθισται, μετά από ένα αίτημα οικονομικής συναλλαγής, προβαίνει στους απαραίτητους ελέγχους και απαντά με μηνύματα - responses, τα οποία συμπεριλαμβάνουν ως περιεχόμενο την πληροφορία για μια επιτυχημένη είτε μια αποτυχημένη συναλλαγή. Στην περίπτωση της αποτυχημένης συναλλαγής, το response, περιέχει κωδικούς και μηνύματα σφαλμάτων τα οποία περιγράφουν τον λόγο της αποτυχίας.
Στις επιτυχημένες απάντησεις-responses, δεν υπάρχουν κωδικοί σφαλμάτων, αλλά υπάρχουν κωδικοί για την ένδειξη μιας πετυχημένης συναλλαγής που περιέχει περισσότερες πληροφορίες σχετικές με την συναλλαγή όπως είναι ο κωδικός ή το αναγνωριστικό της πληρωμής.
Από την άλλη, το πρώτο μέρος της εφαρμογής (Android εφαρμογή), είναι μια native εφαρμογή, και ο σκοπός ύπαρξής της είναι η απλούστευση της διαδικασίας της αγοράς ενός προϊόντος συγκριτικά με τις υφιστάμενες παραδοσιακές διαδικασίες και τους τρόπους πληρωμής που ήδη γνωρίζουμε. Ο χρήστης της εφαρμογής, απλά σαρώνει ένα QR Code το οποίο φέρει πάνω του κάποιο προϊόν, με ή χωρίς υλική υπόσταση. Για παράδειγμα, ένα τέτοιο προϊόν μπορεί να είναι ένα εμφιαλωμένο μπουκάλι νερό (υλική υπόσταση), είτε η αγορά ενός προϊόντος στο διαδίκτυο (αγορά αεροπορικού εισιτηρίου - άϋλη υπόσταση) και η εφαρμογή αποκωδικοποιεί το QR Code, εξάγει τις πληροφορίες που ενδιαφέρουν, για παράδειγμα πληροφορίες για τον επιτηδευματία, όπως τα καταστήματα Walmart αλλά και του προϊόντος, για παράδειγμα το όνομα του προϊόντος και η τιμή του.
Στη συνέχεια, επεξεργάζεται τα στοιχεία αυτά και ένας συνδυασμός από προεπιλεγμένες πληροφορίες εμφανίζονται στην οθόνη του κινητού του χρήστη. Ο ίδιος, έχει πάντα τον έλεγχο για μια συνέχεια της επικείμενης αγοράς ή ακύρωσής της. Αν επιλεγεί η συνέχεια, ο χρήστης οδηγείται στην επόμενη οθόνη και καλείται να επιλέξει μια από τις χρεωστικές/πιστωτικές κάρτες για παράδειγμα (VISA, MASTER CARD, DISCOVER) ή κάποιο IBAN λογαριασμό του, ανάλογα με ποιές κάρτες και λογαριασμούς έχει εκ των πρωτέρων καταχωρήσει. Πρέπει να τονιστεί ότι η εφαρμογή, για λόγους παρουσίασης και απλούστευσης, θεωρεί ότι ο χρήστης έχει εκ των πρωτέρων δηλώσει μια σειρά από δικές του χρεωστικές/πιστωτικές κάρτες και λογαριασμό(ους) του. Στην παρούσα υλοποίηση, οι πληροφοριες αυτές είναι δηλωμένες σε αρχείο τύπου xml, αλλά σε μια εμπορεύσιμη έκδοση της εφαρμογής, εννοείται πως θα πρέπει η εφαρμογή να επιτρέπει στον χρήστη, να προσθέτει, να αφαιρεί ή να τροποποιεί αυτά τα στοιχεία μέσα από ξεχωριστές οθόνες.
Αφου επιλεγεί και η κάρτα ή ο λογαριασμός, από που θα αφαιρεθεί το χρηματικό ποσό, τότε ο χρήστης προτρέπεται να εισάγει και το pin. Το pin είναι ένα τετραψήφιο αριθμητικό δεδομένο το οποίο υπόκειται σε διάφορους ελέγχους. Σε περίπτωση διαφορετικής εισαγωγής, η εφαρμογή αναρτά σχετικά μηνύματα λάθους σε κόκκινες αποχρώσεις και εστιάζει (focuses) στο πεδίο pin έως ότου ο χρήστης δώσει το σωστό συνδυασμό. Αν και στα πλαίσια της υλοποιημένης εφαρμογής, επειδή πρόκειται για μια demo έκδοσή της, δεν θα αποτελούσε πρόβλημα να επιτρέπονταν οποιοιδήποτε συνδυασμοί, ωστόσο, για να είναι περισσότερο ρεαλιστικό, οι κωδικοί, περιορίζονται σε συγκεκριμένα pins, για κάθε κάρτα ή λογαριασμό. Στη συνέχεια, τα pin κωδικοποιούνται και ενσωματώνεται στο request. Aυτή η πληροφορία αποκρύπτεται και αργότερα αποθηκεύεται. Μπορεί μόνο να προβληθεί ως μέρος της καταγγεγραμμένης ιστορικής πληροφορίας (log) κατ’ απαίτηση του χρήστη σε μια ειδική οθόνη, την server logs (εικ. 19).
Το επόμενο σταδιο, είναι οι έλεγχοι της εφαρμογής για την διαπίστωση την ύπαρξης ή όχι του ασύρματου ή mobile δικτύου. Σε περίπτωση θετικής έκβασης, δηλαδή αν μπορέσει να αποκτήσει πρόσβαση στο δίκτυο και κατόπιν απαιτούμενης έγκρισης (άδειας) του χρήστη, στέλνει ένα request στην τράπεζα (στο δεύτερο μέρος του λογισμικού της εφαρμογής) . Αν εντός δεκαπέντε δευτερολέπτων, ως χρονικό ορίο, δεν πάρει μια απάντηση τότε, η εφαρμογή απαντά με ένα time out response και αντίστοιχο μήνυμα θα προβληθεί στην οθόνη του χρήστη προκειμένου να τον ενημερώνει για το σχετικό γεγονός.
Το λογισμικό το οποίο προσομειώνει την τράπεζα, μπορεί να είναι εγκατεστημένο τοπικά ή απομακρυσμένα. Αυτό ρυθμίζεται απο μια αντίστοιχη οθόνη του χρήστη που διαθέτει η εφαρμογή.
Στη θετική έκβαση της παραπάνω απάντησης, η εφαρμογή στέλνει το request στο url το οποίο καθορίζεται από την εικ.16, 17 και το λογισμικό του δεύτερου μερους της εφαρμογής, αναλαμβάνει τους διάφορους ελέγχους εγκυρότητας των μεταφερόμενων στοιχείων και απαντά αναλόγως. Σε κάθε περίπτωση, είτε αποτυχίας είτε επιτυχίας έκβασης της συναλλαγής, μια αφιερωμένη οθόνη της εφαρμογής για αυτό το λόγο, παρουσιάζεται στον χρήστη ενημερώνοντάς τον για την κατάσταση της έκβασης. Επίσης, το κάθε αποτέλεσμα ξεχωριστά, καταγράφεται σαν log σε μια απομακρυσμένη NO-SQL βάση δεδομένων (firebase) της Google.
Τέλος, υπάρχει μια αντίστοιχη ξεχωριστή σελίδα της εφαρμογής, η οποία σε πραγματικό χρόνο, ανακτά σε μια λίστα, επεξεργάζεται και παρουσιάζει ανά μέρα ομαδοποιημένα και ταξινομημένα από το πιο πρόσφατο σε μορφή πτυσόμενης λίστας, συμπυκνωμένη πληροφορία σχετικά με συνολικά αριθμητικά πόσα, τα οποία δείχνουν των αριθμό των επιτυχημένων και αποτυχημένων συναλλαγών ανα ημέρα.