Ταυτοποίηση 3D Secure
Το 3-Domain Secure™ (3-D Secure ή 3DS) είναι ένα πρωτόκολλο ασφαλείας που προσθέτει ένα επιπλέον επίπεδο ασφάλειας στις ηλεκτρονικές αγορές ζητώντας από τους κατόχους καρτών να ταυτοποιούνται με τον εκδότη της κάρτας κατά την πραγματοποίηση πληρωμών. Βοηθά στην αποτροπή μη εξουσιοδοτημένων ηλεκτρονικών συναλλαγών, μειώνοντας τον κίνδυνο απάτης και μπορεί να προστατεύσει τον έμπορο από αντιστροφές χρέωσης (chargeback) αν η συναλλαγή ταυτοποιηθεί με επιτυχία. Όταν ένας κάτοχος κάρτας πραγματοποιεί μια ηλεκτρονική αγορά, ο εκδότης χρησιμοποιεί τον δικό του διακομιστή ελέγχου πρόσβασης (ACS) για να επικυρώσει την ταυτότητα του κατόχου της κάρτας.
Το 3DS, γνωστό και ως 3DS2 στο American Express Payment Gateway, είναι η πιο πρόσφατη έκδοση του πρωτοκόλλου ασφαλείας, που έχει σχεδιαστεί για να βελτιώνει την ασφάλεια στις ηλεκτρονικές αγορές, παρέχοντας παράλληλα frictionless checkout σε πληρωτές που θεωρούνται χαμηλού κινδύνου από τον ACS. Ο ACS καθορίζει τον κίνδυνο χρησιμοποιώντας τις πληροφορίες που παρέχει ο έμπορος, τα αποτυπώματα του browser και προηγούμενες αλληλεπιδράσεις με τον πληρωτή. Ο ACS υποβάλει τον πληρωτή σε μια πρόκληση (για παράδειγμα, να εισάγει έναν κωδικό PIN) μόνο όταν απαιτείται συμπληρωματική επαλήθευση για την ταυτοποίηση του πληρωτή, παρέχοντας έτσι αυξημένα ποσοστά μετατροπής. Τα υποστηριζόμενα προγράμματα ταυτοποίησης περιλαμβάνουν τα Mastercard SecureCode™, Verified by Visa™, American Express SafeKey™, Diners Club/Discover ProtectBuy, JCB J/Secure, ITMX Local Switch EMVCo και mada secure.
Ορολογία
Ο παρακάτω πίνακας παραθέτει τους βασικούς όρους που αναφέρονται στην τεκμηρίωση ενοποίησης του 3DS.
Όρος | Περιγραφή |
---|---|
3DS JavaScript API | Ένα JavaScript API client που σας επιτρέπει να προετοιμάζετε την ταυτοποίηση 3DS από τον browser του πληρωτή χρησιμοποιώντας ταυτοποίηση βάσει περιόδου λειτουργίας.
Αυτό το API χρησιμοποιείται με τη μέθοδο ενοποίησης Hosted Session. |
Διακομιστής ελέγχου πρόσβασης (ACS) | Ένα στοιχείο που λειτουργεί στον τομέα του εκδότη, το οποίο επαληθεύει αν είναι διαθέσιμη η ταυτοποίηση για έναν αριθμό κάρτας και τύπο συσκευής και ταυτοποιεί τις συγκεκριμένες συναλλαγές. |
Κλήση ACS Method | Μια κλήση που επιτρέπει στο ACS να συλλέξει πρόσθετα δεδομένα για να καθορίσει τη βαθμολογία κινδύνου για τον πληρωτή. Όταν το 3DS2 είναι διαθέσιμο και όταν οι λεπτομέρειες κλήσης του ACS επιστρέφονται στην απόκριση μετά την έναρξη της ταυτοποίησης, αυτές οι λεπτομέρειες διαβιβάζονται στον browser του πληρωτή και υποβάλλονται ως πεδίο post φόρμας σε ένα κρυφό iframe, έτσι ώστε ο ACS να μπορεί να συλλέξει πρόσθετα δεδομένα. |
Κανάλι ταυτοποίησης | Πού λαμβάνει χώρα η ταυτοποίηση 3DS: στον browser του πληρωτή, σε μια εφαρμογή στην κινητή συσκευή του πληρωτή ή στο σύστημά σας χωρίς την παρουσία πληρωτή για αλληλεπίδραση. |
Σκοπός ταυτοποίησης | Σκοπός της ενέργειας ταυτοποίησης 3DS. Συνήθως είτε θα ταυτοποιήσετε τον πληρωτή για να διεκπεραιωθεί μια πληρωμή για συγκεκριμένη κάρτα είτε θα διεκπεραιώσετε μια ταυτοποίηση μη πληρωμής όπου απλώς επαληθεύετε μια νέα κάρτα που θέλει να αποθηκεύσει ο πληρωτής στην εφαρμογή ή στον ιστότοπό σας για μελλοντικές πληρωμές. |
Ροή Challenge | Μια ροή ταυτοποίησης όπου ο πληρωτής ανακατευθύνεται στον και απαιτείται να αποκριθεί σε μια πρόκληση για να αναγνωριστεί, επειδή το ACS δεν διαθέτει επαρκείς πληροφορίες για τον πληρωτή ώστε να θεωρήσει τον πληρωτή ως χαμηλού κινδύνου. |
Ροή Frictionless | Μια ροή ταυτοποίησης όπου ο πληρωτής δεν απαιτείται να αποκριθεί σε μια πρόκληση, επειδή ο ACS θεωρεί τον πληρωτή ως χαμηλού κινδύνου. |
Ταυτοποίηση εμπόρου | Ένας μηχανισμός που επιτρέπει στον έμπορο να ταυτοποιεί τα αιτήματα API στην πύλη, για παράδειγμα κωδικός πρόσβασης/πιστοποιητικό/ταυτοποίηση περιόδου λειτουργίας. |
API ταυτοποίησης πληρωτή | Ένα API διακομιστή που αποτελείται από δύο πράξεις, το Initiate Authentication και το Authenticate Payer, που πρέπει να υποβληθεί από τον διακομιστή σας στον διακομιστή πύλης. Μπορεί επίσης να χρησιμοποιηθεί ως API client χρησιμοποιώντας ταυτοποίηση βάσει περιόδου λειτουργίας. Αυτό το API χρησιμοποιείται με τη μέθοδο ενοποίησης Web-Services API. |
Session πληρωμής (payment session) | Ένα session πληρωμής (payment session) ή απλά περίοδος λειτουργίας είναι ένα προσωρινό κοντέινερ πεδίων αιτήματος και τιμών πράξεων που κάνουν αναφορά σε μια περίοδο λειτουργίας. Μπορείτε να το χρησιμοποιήσετε σε μια πράξη για να γίνει αναφορά στα πεδία και τις τιμές αιτήματος, αντί να τα παρέχετε απευθείας στο αίτημα πράξης. Όταν η πύλη λαμβάνει μια πράξη που κάνει αναφορά σε μια περίοδο λειτουργίας διαμορφώνει το τελικό αίτημα συνδυάζοντας τα πεδία αιτήματος στην περίοδο λειτουργίας και αυτά που εφαρμόζονται απευθείας στο αίτημα. Για περισσότερες πληροφορίες, βλ. Βασικές αρχές της περιόδου λειτουργίας. |
Ταυτοποίηση περιόδου λειτουργίας | Η ταυτοποίηση χρησιμοποιεί ένα session πληρωμής (payment session). Αυτή η μέθοδος ταυτοποίησης επιτρέπει στους πληρωτές να παρέχουν τις λεπτομέρειες πληρωμής τους απευθείας στην πύλη μέσω αλληλεπίδρασης του client με την πύλη, είτε μέσω του browser ενός πληρωτή είτε μέσω μιας εφαρμογής στην κινητή συσκευή του πληρωτή. Χρησιμοποιεί έναν βασικό μηχανισμό ταυτοποίησης HTTP (παρόμοιο με την ταυτοποίηση χρησιμοποιώντας κωδικό πρόσβασης), όπου θα πρέπει να δώσετε το 'merchant.<your gateway merchant ID>' στην ενότητα userid και το session Id στην ενότητα password. Για να χρησιμοποιήσετε αυτόν τον τύπο ταυτοποίησης, πρέπει πρώτα να δημιουργήσετε μια περίοδο λειτουργίας υποβάλλοντας ένα αίτημα περιόδου λειτουργίας (βλ. Create session) από τον διακομιστή σας στον διακομιστή πύλης. |
Ροή ταυτοποίησης 3DS
Το παρακάτω διάγραμμα απεικονίζει τη ροή ταυτοποίησης για μια πληρωμή όπου ο πληρωτής ταυτοποιείται χρησιμοποιώντας 3DS.
Η ροή ταυτοποίησης για μια επιτυχή ταυτοποίηση είναι ως εξής:
- Ένας πληρωτής περιηγείται στον ιστότοπό σας, επιλέγει ένα ή περισσότερα προϊόντα, μεταβαίνει στη σελίδα πληρωμής και επιλέγει να πληρώσει με μια κάρτα που υποστηρίζεται από το 3DS.
- Στείλτε το αίτημα INITIATE AUTHENTICATION για να ζητήσετε από την πύλη να ελέγξει το πρόγραμμα κάρτας προκειμένου να διαπιστωθεί αν η κάρτα είναι εγγεγραμμένη για 3DS.
- Αν είναι διαθέσιμη η ταυτοποίηση 3DS του πληρωτή, η πύλη επιστρέφει τις λεπτομέρειες ταυτοποίησης της υποστηριζόμενης κλήσης μεθόδου ACS στην απόκριση.
- Υποβάλετε τις λεπτομέρειες κλήσης της μεθόδου ACS ως POST φόρμας σε ένα κρυφό iframe, έτσι ώστε ο ACS να μπορεί να ξεκινήσει την ταυτοποίηση και να συλλέξει πρόσθετα δεδομένα σχετικά με τον πληρωτή.
- Στείλτε το αίτημα AUTHENTICATE PAYER για να ζητήσετε από την πύλη να εκτελέσει την ταυτοποίηση.
- Η πύλη σάς παρέχει τις λεπτομέρειες ταυτοποίησης με βάση τη ροή ταυτοποίησης:
- Ροή frictionless όπου έχει ολοκληρωθεί η ταυτοποίηση: Η πύλη ανακατευθύνει τον πληρωτή στον ιστότοπό σας.
- Ροή challenge όπου απαιτείται αλληλεπίδραση πληρωτή για την ολοκλήρωση της ταυτοποίησης: Αν ο εκδότης απαιτεί από τον πληρωτή να απαντήσει σε μια πρόκληση, η εφαρμογή σας ανακατευθύνει τον web browser του πληρωτή στον ACS, όπου παρουσιάζεται το περιβάλλον εργασίας (UI) για την ταυτοποίηση. Ο εκδότης επιστρέφει στην πύλη το αποτέλεσμα ταυτοποίησης. Η πύλη ανακατευθύνει τον πληρωτή απευθείας στον ιστότοπό σας.
- Υποβάλετε την πληρωμή για διεκπεραίωση χρησιμοποιώντας το αίτημα AUTHORIZE ή το αίτημα PAY, και συμπεριλάβετε το αναγνωριστικό ταυτοποίησης συναλλαγής 3DS στο αίτημα.
- Εμφανίστε τη σελίδα επιβεβαίωσης παραγγελίας στον πληρωτή.
authentication.redirect.html
που πρέπει να συμπεριληφθεί στον browser του πληρωτή μέσω ενός κρυφού iframe. Αυτό βοηθά στην ελαχιστοποίηση του χρόνου αναμονής για τους πληρωτές όταν λαμβάνουν ένα σφάλμα "SERVER_BUSY". Προσθήκη 3DS στην ενοποίησή σας
Προαπαιτούμενα
- Για να χρησιμοποιήσετε την υπηρεσία ταυτοποίησης 3DS της πύλης:
- Πρέπει να έχετε εγγραφεί με την τράπεζα εμπόρου για να χρησιμοποιήσετε το 3DS.
- Το προφίλ εμπόρου σας στην πύλη πρέπει να είναι ενεργοποιημένο για τουλάχιστον ένα πρόγραμμα 3DS για μια υποστηριζόμενη έκδοση 3DS.
- Πρέπει να χρησιμοποιήσετε το API v57 ή νεότερη έκδοση.
Πράξεις ταυτοποίησης 3DS
- Η πύλη υποστηρίζει τους ακόλουθους τρόπους ταυτοποίησης 3DS:
- Ταυτοποίηση μόνο: Πραγματοποιείτε την ταυτοποίηση 3DS χρησιμοποιώντας την πύλη. Μπορείτε να επιλέξετε να υποβάλετε την πληρωμή (χρησιμοποιώντας τις λεπτομέρειες ταυτοποίησης) σε μεταγενέστερο στάδιο μέσω αυτής της πύλης ή άλλης πύλης.
- Ταυτοποίηση και συναλλαγή πληρωμής: Πραγματοποιήστε ταυτοποίηση 3DS χρησιμοποιώντας αυτή την πύλη και συνεχίστε με την υποβολή της πληρωμής (χρησιμοποιώντας τις λεπτομέρειες ταυτοποίησης) μέσω αυτής της πύλης.
- Προταυτοποιημένη συναλλαγή πληρωμής: Πραγματοποιήστε ταυτοποίηση 3DS χρησιμοποιώντας έναν εξωτερικό πάροχο και δώστε τις λεπτομέρειες ταυτοποίησης όταν υποβάλετε μια πληρωμή μέσω αυτής της πύλης.
Επιλογές ενοποίησης 3DS
Η πύλη υποστηρίζει τις παρακάτω επιλογές ενοποίησης για 3DS.
Μέθοδος ενοποίησης | Ενοποίηση 3DS | Πότε να χρησιμοποιηθεί | Υποστηριζόμενη λειτουργία ταυτοποίησης |
---|---|---|---|
Hosted Checkout | 3DS με Hosted Checkout | Αυτή είναι η ευκολότερη επιλογή ενοποίησης. Αν υποστηρίζετε 3DS, η ταυτοποίηση 3DS διαχειρίζεται αυτόματα τη Hosted Payment Page στην ενοποίηση του Hosted Checkout. |
|
Hosted Session | 3DS JavaScript API | Αυτή είναι μια ενοποίηση JavaScript με την οποία μπορείτε να ξεκινήσετε την ταυτοποίηση 3DS από τη σελίδα πληρωμής του ιστότοπού σας. Χρησιμοποιήστε αυτή την επιλογή αν θέλετε να επιτρέψετε στον πληρωτή να υποβάλει τις λεπτομέρειες πληρωμής του απευθείας στην πύλη από τον browser. Για να ξεκινήσετε την ταυτοποίηση 3DS και άλλες πράξεις 3DS απευθείας από τον browser του πληρωτή, πρέπει πρώτα να δημιουργήσετε το κανάλι ταυτοποίησης όπου ο διακομιστής εμπόρου σας πρέπει να επικοινωνεί με τον διακομιστή πύλης για τη δημιουργία μιας περιόδου λειτουργίας (session) στην πύλη. Το ID περιόδου λειτουργίας που δημιουργείται από την πύλη περιλαμβάνεται στη συνέχεια σε όλα τα αιτήματα ταυτοποίησης που εκκινούνται από τον browser ως πεδίο κωδικού πρόσβασης (βλ. Επιλογές ταυτοποίησης). |
|
Web-Services API | API ταυτοποίησης πληρωτή | Αυτή είναι μια επιλογή ενοποίησης από τον διακομιστή που σας δίνει πλήρη έλεγχο της ενοποίησης, αλλά απαιτεί μεγαλύτερο βαθμό προσπάθειας για την ενοποίηση. Χρησιμοποιήστε αυτήν την επιλογή αν απαιτείται να προσαρμόσετε τις αλληλεπιδράσεις API μεταξύ του browser του πληρωτή και της πύλης Πρέπει να εκτελέσετε τις πράξεις που απαιτούνται για τη διαχείριση των ροών ενοποίησης 3DS απευθείας από τον διακομιστή εμπόρου σας στον διακομιστή πύλης. Το API ταυτοποίησης πληρωτή υποστηρίζει επίσης session πληρωμής (payment session) (βλ. Βασικές αρχές της περιόδου λειτουργίας). |
|
Ενοποίηση για κινητές συσκευές | Ενσωματωμένο στο SDK | Αν υποστηρίζετε 3DS, μπορείτε να ξεκινήσετε την ταυτοποίηση με μια κλήση συνάρτησης και το SDK θα διαχειριστεί αυτόματα το υπόλοιπο της διαδικασίας. |
|
Συχνές ερωτήσεις
Πώς μπορώ να δω τις λεπτομέρειες ταυτοποίησης στο Merchant Administration;
Μπορείτε να προβάλετε λεπτομέρειες ταυτοποίησης για μεμονωμένες ταυτοποιήσεις και για ταυτοποιήσεις μετά τις οποίες συνεχίστηκε η πληρωμή στο Merchant Administration. Πραγματοποιήστε αναζήτηση για την παραγγελία ή τη συναλλαγή στη σελίδα αναζήτηση και προβάλετε τις λεπτομέρειες ταυτοποίησης.
Πώς μπορώ να ανακτήσω τα αποτελέσματα ταυτοποίησης 3DS;
Αν θέλετε να ανακτήσετε τα αποτελέσματα ταυτοποίησης σε οποιοδήποτε στάδιο, χρησιμοποιήστε την πράξη RETRIEVE TRANSACTION. Τα πεδία που χρησιμοποιούνται μόνο στην ταυτοποίηση, για παράδειγμα, authentication.redirect.html
, δεν παραμένουν στην πύλη και, επομένως, δεν επιστρέφονται.
Πώς μπορώ να υποβάλω ένα αίτημα προταυτοποιημένης πληρωμής;
Αν έχετε χρησιμοποιήσει ένα εξωτερικό 3DS MPI (πρόσθετο εμπόρου) για την ταυτοποίηση του πληρωτή, πρέπει να διαβιβάσετε πληροφορίες σχετικά με το αποτέλεσμα της ταυτοποίησης στο αντικείμενο ταυτοποίησης της πράξης AUTHORIZE ή PAY.
Καθώς η κατάσταση της συναλλαγής καθορίζει αν σας δόθηκαν συγκεκριμένα πεδία από το εξωτερικό 3DS MPI, όλα τα πεδία είναι προαιρετικά. Ωστόσο, αν έχετε τα δεδομένα, δώστε τα:
authentication.3ds.acsEci
Το Electronic Commerce Indicator που σας επιστρέφεται στο μήνυμα απόκρισης ταυτοποίησης.
-
authentication.3ds.authenticationToken
Η κωδικοποιημένη τιμή base64 που δημιουργείται από τον εκδότη της κάρτας που σας επιστρέφεται στο μήνυμα απόκρισης ταυτοποίησης.
Το αποτέλεσμα για την κλήση της μεθόδου ACS που ξεκίνησε μέσω του POST φόρμας δεν παρέχεται αυτόματα και η εφαρμογή σας πρέπει να στείλει το αίτημα AUTHENTICATE PAYER για να λάβει απόκριση. -
authentication.3ds.transactionId
Ένα μοναδικό αναγνωριστικό συναλλαγής που παράγεται από την πύλη για την ταυτοποίηση 3DS. Το πεδίο αντιστοιχεί στο αναγνωριστικό που ανατίθεται από τον διακομιστή καταλόγου προγραμμάτων.
-
authentication.3ds2.protocolVersion
Έκδοση του πρωτοκόλλου 3DS που χρησιμοποιείται για την εκτέλεση ταυτοποίησης 3DS, στη μορφή που καθορίζεται από την EMVCo. Για παράδειγμα, 2.1.0.
-
authentication.3ds2.transactionStatus
Αποτέλεσμα της ταυτοποίησης πληρωτή με τον εκδότη.
-
authentication.3ds2.statusReasonCode
Κωδικός που υποδεικνύει τον λόγο για την κατάσταση συναλλαγής που επιστράφηκε στο
authentication.3ds2.transactionStatus
. Πρέπει να τον δώσετε όταν τοauthentication.3ds2.transactionStatus
επιστρέφειN
,U
ήR
. -
authentication.amount
Ποσό ταυτοποίησης. Πρέπει να δώσετε τιμές σε αυτό το πεδίο όταν το ποσό ταυτοποίησης διαφέρει από το
order.amount
. Ελέγξτε με τον Your payment service provider (PSP) πριν χρησιμοποιήσετε αυτό το πεδίο. -
authentication.time
Ημερομηνία και ώρα ταυτοποίησης του πληρωτή. Ελέγξτε με τον PSP σας πριν χρησιμοποιήσετε αυτό το πεδίο.
Αν είστε έμπορος eCommerce με σύνδεσμο σε τράπεζα εμπόρου mada στο Βασίλειο της Σαουδικής Αραβίας και πληρωτής πλήρους ταυτοποίησης 3DS εκτός της πύλης, πρέπει να γίνει ενοποίησή σας στο API v76 ή νεότερη έκδοση και να δοθούν οι ακόλουθες λεπτομέρειες ταυτοποίησης στην πράξη AUTHORIZE ή PAY για την επιτυχή υποβολή μιας συναλλαγής mada με κοινή εμπορική επωνυμία, μιας συναλλαγής mada μονής επωνυμίας ή μιας διεθνούς συναλλαγής με κάρτα:
-
authentication.3ds2.acsReference
Αριθμός αναφοράς που εκχωρεί η EMVCo στον ACS του εκδότη κατόπιν έγκρισης του ACS. Αυτό το πεδίο αντιστοιχεί στο πεδίο EMVCo
acsReferenceNumber
. -
authentication.3ds2.dsReference
Αριθμός αναφοράς που εκχωρεί η EMVCo στον διακομιστή καταλόγου (DS) μετά την έγκριση του DS. Αυτό το πεδίο αντιστοιχεί στο πεδίο EMVCo dsReferenceNumber.
-
authentication.3ds2.acsTransactionId
Μοναδικό αναγνωριστικό συναλλαγής που εκχωρεί το ACS για την αναγνώριση της συναλλαγής 3DS.
-
authentication.time
Ημερομηνία και ώρα ταυτοποίησης του πληρωτή. Αυτό το πεδίο αντιστοιχεί στο πεδίο EMVCo
purchaseDate
. -
authentication.3ds.acsEci
Η τιμή του δείκτη ηλεκτρονικού εμπορίου (Electronic Commerce Indicator, ECI) που παρέχει ο ACS του εκδότη για να υποδείξει τα αποτελέσματα της προσπάθειας ταυτοποίησης του πληρωτή.
-
authentication.3ds.authenticationToken
Τιμή με κωδικοποίηση Base64 που δημιουργεί ο εκδότης. Αυτό το πεδίο αντιστοιχεί στην τιμή ταυτοποίησης.
-
authentication.3ds.transactionId
ID συναλλαγής. Αυτό το πεδίο αντιστοιχεί στο ID συναλλαγής DS.
-
authentication.3ds2.protocolVersion
Έκδοση του πρωτοκόλλου 3DS που χρησιμοποιείται για την ταυτοποίηση 3DS. Για παράδειγμα, 2.1.0.
-
authentication.3ds2.transactionStatus
Κατάσταση συναλλαγής. Αυτό το πεδίο αντιστοιχεί στο πεδίο EMVCo
transStatus
. -
authentication.3ds2.authenticationScheme
Πρόγραμμα ταυτοποίησης. Για εξωτερικά ταυτοποιημένες συναλλαγές mada κοινής εμπορικής επωνυμίας, πρέπει να δώσετε την τιμή
MADA
,MASTERCARD
ήVISA
για να καθορίσετε το 3DS DS μέσω του οποίου ταυτοποιήθηκε η συναλλαγή. Για εξωτερικά ταυτοποιημένες συναλλαγές mada μίας επωνυμίας μόνο, μπορείτε να δώσετε την τιμήMADA
ή να μην υποβάλετε αυτό το πεδίο. Για άλλες κάρτες, μπορείτε να δώσετε το αντίστοιχο πρόγραμμα ταυτοποίησης ή να μην υποβάλετε αυτό το πεδίο.
Πώς μπορώ να υποβάλω αίτημα ταυτοποίησης μη πληρωμής;
Αν θέλετε να πραγματοποιήσετε ταυτοποίηση για να επαληθεύσετε μόνο την ταυτότητα του πληρωτή χωρίς να προχωρήσετε στην πληρωμή, πρέπει να υποδείξετε τον σκοπό της ταυτοποίησης στο αίτημα INITIATE AUTHENTICATION. Για παράδειγμα, αν θέλετε να ταυτοποιήσετε τον πληρωτή όταν ο πληρωτής εισάγει τα στοιχεία της κάρτας του για μελλοντική χρήση κατά την εγγραφή πελάτη ή τη δημιουργία λογαριασμού στον ιστότοπό σας. Η δυνατότητα ολοκλήρωσης της διαδικασίας ταυτοποίησης σε περιβάλλον μη πληρωμής βελτιώνει την εμπειρία των πληρωτών και μειώνει τα ποσοστά αποχώρησης πληρωτών.
- Για να εκτελέσετε ταυτοποίηση μη πληρωμής, δώστε τα ακόλουθα πεδία στο αίτημα INITIATE AUTHENTICATION:
order.currency
Οποιοδήποτε νόμισμα που υποστηρίζεται για τους συνδέσμους σε τράπεζα εμπόρου.authentication.purpose
- Πλαίσιο στο οποίο ζητείται ταυτοποίηση του πληρωτή. Μπορείτε να καθορίσετε μία από τις ακόλουθες τιμές:
- ADD_CARD: Ταυτοποίηση που πραγματοποιείται πριν από την αποθήκευση της κάρτας του πληρωτή σε αρχείο είτε απευθείας από εσάς είτε χρησιμοποιώντας τη δυνατότητα Tokenisation της πύλης. Δεν γίνεται διεκπεραίωση πληρωμής.
- MAINTAIN_CARD: Ταυτοποίηση που πραγματοποιείται πριν από την ενημέρωση των λεπτομερειών μιας κάρτας του πληρωτή σε αρχείο είτε απευθείας από εσάς είτε χρησιμοποιώντας τη δυνατότητα Tokenisation της πύλης. Δεν γίνεται διεκπεραίωση πληρωμής.
Αν το πρόγραμμα ταυτοποίησης δεν υποστηρίζει τον σκοπό που έχετε ζητήσει, η πύλη επιστρέφει το AUTHENTICATION_NOT_SUPPORTED στο πεδίο απόκρισης authenticationStatus. Από προεπιλογή, η πύλη ορίζει αυτό το πεδίο σε PAYMENT_TRANSACTION για να επιτρέψει τη χρήση της ταυτοποίησης για μια συναλλαγή πληρωμής.
Πώς να χρησιμοποιήσετε το 3DS ως έμπορος με ρόλο διευκολυντή (aggregator);
Οι έμποροι διευκολυντές (aggregator) μπορούν να δώσουν τη δυνατότητα στους δευτερεύοντες εμπόρους να χρησιμοποιήσουν το API ταυτοποίησης πληρωτή στην πύλη. Οι δευτερεύοντες έμποροι δεν χρειάζεται να έχουν συμβατική σχέση με την τράπεζα εμπόρου, ούτε με την πύλη. Ο έμπορος διευκολυντής (aggregator) μπορεί να υποβάλει τις λεπτομέρειες του δευτερεύοντος εμπόρου που απαιτούνται για την έναρξη της ταυτοποίησης μέσω της πράξης INITIATE AUTHENTICATION. Για περισσότερες πληροφορίες, βλ. Διευκολυντής (aggregator).
Πώς αντιπροσωπεύονται οι αλληλεπιδράσεις 3DS στην πύλη πληρωμών;
Το API ταυτοποίησης πληρωτή καταγράφει τις λεπτομέρειες της ταυτοποίησης πληρωτή χρησιμοποιώντας 3DS ως ξεχωριστή συναλλαγή AUTHENTICATION για την παραγγελία. Για λεπτομέρειες σχετικά με τις συναλλαγές AUTHENTICATION, ανατρέξτε στη λίστα των πεδίων απόκρισης για την πράξη AUTHENTICATE PAYER.
Όταν ανακτάτε μια παραγγελία χρησιμοποιώντας την πράξη RETRIEVE ORDER ή λαμβάνετε μια απόκριση του Reporting API, μπορεί να περιέχει μια πρόσθετη συναλλαγή AUTHENTICATION. Επίσης, όταν χρησιμοποιείτε τις ειδοποιήσεις Webhook, μπορεί να λάβετε μια πρόσθετη ειδοποίηση για τη συναλλαγή AUTHENTICATION.
Μπορώ να χρησιμοποιήσω τα token δικτύου ως προέλευση κεφαλαίων στην ταυτοποίηση πληρωτή;
Μπορείτε να χρησιμοποιήσετε τα token δικτύου για την ταυτοποίηση πληρωτή από το API v57 και νεότερη έκδοση. Για λεπτομερείς πληροφορίες, βλ. Tokenization δικτύου.
Αν ο PSP σάς έχει δώσει τη δυνατότητα Tokenisation δικτύου, οποιοδήποτε αίτημα προς την πύλη για token πύλης επιχειρεί επίσης να δημιουργήσει ένα αντίστοιχο token δικτύου για ενεργοποιημένα προγράμματα, όπου υποστηρίζεται από τον εκδότη της κάρτας. Η πύλη επιχειρεί επίσης Tokenisation δικτύου για τυχόν ισχύουσες κάρτες που είναι ήδη αποθηκευμένες στο αποθετήριο token πύλης. Το αίτημα INITIATE AUTHENTICATION χρησιμοποιεί το token δικτύου, εφόσον είναι διαθέσιμο. Διαφορετικά, χρησιμοποιείται το Funding PAN (FPAN) που είναι αποθηκευμένο στο token πύλης. Αυτό το μοντέλο υποστηρίζει επί του παρόντος μόνο token MDES.
Μπορώ να χρησιμοποιήσω τα token πληρωμής συσκευής ως προέλευση κεφαλαίων στην ταυτοποίηση πληρωτή;
Μπορείτε να χρησιμοποιήσετε τα token πληρωμής μέσω συσκευής για την ταυτοποίηση πληρωτή από το API v55 και νεότερη έκδοση. Υποστηρίζονται μόνο τα token πληρωμής που λαμβάνονται από το Google Pay SDK. Μπορείτε να παρέχετε ένα κρυπτογραφημένο token πληρωμής ή το PAN που αποκτήσατε από ένα αποκρυπτογραφημένο token πληρωμής για ταυτοποίηση πληρωτή. Η πύλη δέχεται μόνο αιτήματα ταυτοποίησης με FPAN, αιτήματα με DPAN απορρίπτονται. Για να δώσετε τα στοιχεία της κάρτας μέσω ενός token πληρωμής, δώστε τα ακόλουθα πεδία:
-
order.walletProvider = GOOGLE_PAY
-
sourceOfFunds.provided.card.devicePayment.paymentToken
Κρυπτογραφημένο token πληρωμής που λαμβάνεται από το Google Pay SDK. Ισχύει μόνο αν το token πληρωμής αποκρυπτογραφείται από την πύλη.
-
sourceOfFunds.provided.card.number
Google Pay JSON Key PAN. Ισχύει μόνο αν το token πληρωμής έχει αποκρυπτογραφηθεί από εσάς.
Πώς μπορώ να υλοποιήσω προηγμένες ενοποιήσεις για session πληρωμής (payment session);
Αν έχετε χρησιμοποιήσει ένα session πληρωμής (payment session) (ID περιόδου λειτουργίας) για την αποθήκευση των λεπτομερειών ταυτοποίησης, το αίτημα POST που υποβάλλεται από το browser του πληρωτή στον ιστότοπό σας μετά την ολοκλήρωση του αιτήματος AUTHENTICATE PAYER παραμετροποιείται, επιτρέποντάς σας να προσδιορίσετε το αποτέλεσμα της ταυτοποίησης. Τα μεμονωμένα πεδία ταυτοποίησης, π.χ. authentication.3ds2.transactionStatus.data
, μπορεί να είναι χρήσιμα για μια προηγμένη ενοποίηση ή αν χρειάζεστε να παρέχετε δεδομένα ταυτοποίησης σε μια πληρωμή που διεκπεραιώνεται μέσω άλλης πύλης. Για να το κάνετε αυτό, μπορείτε να υποβάλετε ένα αίτημα RETRIEVE TRANSACTION ή να επιλέξετε να αποκρυπτογραφήσετε τα κρυπτογραφημένα δεδομένα ταυτοποίησης ως εξής:
- Δημιουργήστε μια περίοδο λειτουργίας χρησιμοποιώντας την πράξη CREATE SESSION.
- Προσθέστε συναφή δεδομένα στο ID περιόδου λειτουργίας (που επιστρέφεται στην απόκριση CREATE SESSION) χρησιμοποιώντας το αίτημα UPDATE SESSION.
- Χρησιμοποιήστε το ID περιόδου λειτουργίας στα αιτήματα INITIATE AUTHENTICATION και AUTHENTICATE PAYER.
- Η ανακατεύθυνση του browser του πληρωτή στον ιστότοπό σας περιέχει λεπτομέρειες ταυτοποίησης του πληρωτή στο πεδίο
encryptedData
. Είναι ένα κρυπτογραφημένο αντικείμενο JSON που περιέχει τα δεδομένα ταυτοποίησης που αποκτήθηκαν κατά τη διαδικασία ταυτοποίησης. Περιέχει τα παρακάτω πεδία:encryptedData.ciphertext
authentication.3ds.acsEci
authentication.3ds.authenticationToken
authentication.3ds.transactionId
authentication.3ds1.veResEnrolled
authentication.3ds1.paResStatus
authentication.3ds2.transactionStatus
authentication.3ds2.dsTransactionId
transaction.authenticationStatus
authentication.3ds2.statusReasonCode
sourceOfFunds.provided.card.number
sourceOfFunds.provided.card.expiry.month
sourceOfFunds.provided.card.expiry.year
sourceOfFunds.token
order.id
transaction.id
encryptedData.nonce
encryptedData.tag
- Για να αποκρυπτογραφήσετε το περιεχόμενο που επιστρέφεται στο πεδίο
encryptedData.ciphertext
, χρησιμοποιήστε την τιμή πεδίουsession.aes256Key
(επιστρέφεται στην απόκριση CREATE SESSION) στη λειτουργία GCM. Το κλειδί με κωδικοποίηση base64 είναι μυστικό και πρέπει να το γνωρίζετε μόνο εσείς.
public final class SessionDataDecrypter { /** * The algorithm used for encryption/decryption */ private static final String SYMMETRIC_ALGORITHM = "AES/GCM/NoPadding"; /** * The algorithm to be associated with the secret key material */ private static final String SYMMETRIC_KEY_TYPE = "AES"; /** * The secret key associated with the session, as returned in the session.aes256Key in a Create Session response. */ private final byte[] key; /** * Constructs a new object with the given key. The key is Base64 encoded, as returned in the session.aes256Key * field in a Create Session response. This key must be kept secret, as it may be used to encrypt, decrypt and * authenticate data for that session. * * @param encodedKey Key to be used for decryption. */ public SessionDataDecrypter(String encodedKey) { key = Base64.getDecoder().decode(encodedKey); } /** * Performs decryption of the given ciphertext, using the key passed in the constructor and the associated nonce. * The tag is used to authenticate the ciphertext. * * @param ciphertext Encrypted and authenticated session data * @param nonce Nonce/Initialization vector associated with the ciphertext * @param tag Authentication tag * @return The decrypted session data * @throws AEADBadTagException if the data cannot be authenticated with the given tag * @throws InvalidKeyException if the key cannot be constructed properly. This may indicate that it has not been * correctly retrieved from the response field * @throws GeneralSecurityException other than {@link AEADBadTagException} and {@link InvalidKeyException}, should * not be thrown in a correctly set up environment */ public String decrypt(String ciphertext, String nonce, String tag) throws GeneralSecurityException { Key keySpec = new SecretKeySpec(key, SYMMETRIC_KEY_TYPE); // The Java crypto classes expect the ciphertext and tag to be a single input, so they need to be concatenated byte[] encryptedBytes = Base64.getDecoder().decode(ciphertext); byte[] tagBytes = Base64.getDecoder().decode(tag); byte[] input = new byte[encryptedBytes.length + tagBytes.length]; System.arraycopy(encryptedBytes, 0, input, 0, encryptedBytes.length); System.arraycopy(tagBytes, 0, input, encryptedBytes.length, tagBytes.length); // Configure the cipher with AES, using GCM parameter specifying the nonce/initialization vector byte[] iv = Base64.getDecoder().decode(nonce); GCMParameterSpec parameterSpec = new GCMParameterSpec(tagBytes.length * Byte.SIZE, iv); final Cipher decrypter = Cipher.getInstance(SYMMETRIC_ALGORITHM); decrypter.init(Cipher.DECRYPT_MODE, keySpec, parameterSpec); // Perform the decryption and return the value. byte[] decryptedBytes = decrypter.doFinal(input); return new String(decryptedBytes, StandardCharsets.UTF_8); } }
Τι μπορώ να κάνω για να αυξήσω τις πιθανότητες frictionless flow;
Το αίτημα AUTHENTICATE PAYER μπορεί να περιλαμβάνει μεγάλο όγκο πληροφοριών σχετικά με τον πληρωτή και τη συναλλαγή. Για παράδειγμα, μπορείτε να δώσετε τα ακόλουθα δεδομένα στο αίτημα χρησιμοποιώντας τα πεδία στο αντικείμενο customer.account, το οποίο βοηθά τον ACS του εκδότη να αξιολογήσει το επίπεδο κινδύνου που σχετίζεται με τη δραστηριότητα. Με τις νόμιμες πληρωμές, βοηθά τον ACS να επιβεβαιώσει ότι ο πληρωτής είναι πιθανώς ο πραγματικός κάτοχος της κάρτας.
- Ο πληρωτής χρησιμοποιεί έναν υπάρχοντα λογαριασμό;
customer.account.history.creationDate
- Πόσο καιρό υπάρχει ο λογαριασμός;
-
customer.account.history.lastUpdated
-
customer.account.history.passwordLastChanged
-
- Πόσο συχνά κάνει αγορές ο πληρωτής με εσάς;
-
customer.account.history.addCardAttempts
-
customer.account.history.annualActivity
-
customer.account.history.recentActivity
-
customer.account.history.shippingAddressDate
-
-
customer.account.history.issuerAuthentication.acsTransactionId
-
customer.account.history.issuerAuthentication.time
-
customer.account.history.issuerAuthentication.type
-
- Έχετε παρατηρήσει ύποπτη δραστηριότητα (για παράδειγμα, αποτυχημένες προσπάθειες σύνδεσης) στον λογαριασμό;
-
customer.account.history.suspiciousActivity
-
customer.account.authentication.method
-
customer.account.authentication.time
-
Μπορείτε επίσης να παρέχετε τα παρακάτω συνιστώμενα πεδία για κάθε πρόγραμμα κάρτας στο αίτημα AUTHENTICATE PAYER. Αυτή η λίστα δεν είναι οριστική και ενδέχεται να αλλάξει.
Προτεινόμενα πεδία για κάθε πρόγραμμα κάρτας στο αίτημα AUTHENTICATE PAYER
Πεδίο | Mastercard | Visa | American Express | Σημειώσεις |
---|---|---|---|---|
shipping.contact.email | - | - | Ναι | Υποχρεωτικό για την υπολογισμό του κινδύνου εμπόρου |
shipping.method | - | - | Ναι | Υποχρεωτικό για την υπολογισμό του κινδύνου εμπόρου |
order.valueTransfer.amount | - | - | Ναι | Υποχρεωτικό για την υπολογισμό του κινδύνου εμπόρου. Ισχύει μόνο για δωροκάρτες |
order.valueTransfer.numberOfCards | - | - | Ναι | Υποχρεωτικό για την υπολογισμό του κινδύνου εμπόρου. Ισχύει μόνο για δωροκάρτες. |
order.valueTransfer.currency | - | - | Ναι | Υποχρεωτικό για την υπολογισμό του κινδύνου εμπόρου. Ισχύει μόνο για δωροκάρτες. |
order.supply.preorderAvailabilityDate | - | - | Ναι | Υποχρεωτικό για την υπολογισμό του κινδύνου εμπόρου. |
order.supply.preorder | - | - | Ναι | Υποχρεωτικό για την υπολογισμό του κινδύνου εμπόρου. |
order.supply.reorder | - | - | Ναι | Υποχρεωτικό για την υπολογισμό του κινδύνου εμπόρου. |
order.valueTransfer.accountType | - | Ναι | - | Απαιτείται από τη Visa και από άλλα συστήματα σε ορισμένες αγορές (για παράδειγμα, Βραζιλία). Δεν ισχύει αν order.valueTransfer.accountType = NOT_A_TRANSFER . |
Πώς μπορώ να προσδιορίσω την κατάσταση ταυτοποίησης;
Η πύλη παρέχει την κατάσταση ταυτοποίησης στο πεδίο transaction.authenticationStatus
. Αυτό το πεδίο μπορεί να επιστρέψει μία από τις ακόλουθες τιμές ανάλογα με το στάδιο ταυτοποίησης:
AUTHENTICATION_ATTEMPTED
Επιχειρήθηκε ταυτοποίηση πληρωτή και λήφθηκε μια απόδειξη της προσπάθειας ταυτοποίησης.
AUTHENTICATION_AVAILABLE
Διατίθεται ταυτοποίηση πληρωτή για τον παρεχόμενο τρόπο πληρωμής.
AUTHENTICATION_FAILED
Ο πληρωτής δεν ταυτοποιήθηκε. Μην προχωρήσετε σε αυτή τη συναλλαγή.
AUTHENTICATION_NOT_SUPPORTED
Η αιτούμενη μέθοδος ταυτοποίησης δεν υποστηρίζεται για αυτόν τον τρόπο πληρωμής.
AUTHENTICATION_NOT_IN_EFFECT
Δεν υπάρχουν πληροφορίες ταυτοποίησης που να συσχετίζονται με αυτήν τη συναλλαγή.
AUTHENTICATION_PENDING
Η ολοκλήρωση της ταυτοποίησης πληρωτή βρίσκεται σε εκκρεμότητα στο πλαίσιο μιας διαδικασίας challenge.
AUTHENTICATION_REJECTED
Ο εκδότης απέρριψε το αίτημα ταυτοποίησης και ζήτησε να μην επιχειρήσετε την έγκριση μιας πληρωμής.
AUTHENTICATION_REQUIRED
Απαιτείται ταυτοποίηση πληρωτή για αυτή την πληρωμή, αλλά δεν παρέχεται.
AUTHENTICATION_SUCCESSFUL
Ο πληρωτής ταυτοποιήθηκε με επιτυχία.
AUTHENTICATION_UNAVAILABLE
Ο πληρωτής δεν ήταν δυνατό να ταυτοποιηθεί λόγω τεχνικού ή άλλου προβλήματος.
Το χρονικό διάστημα για το οποίο είναι έγκυρα τα δεδομένα ταυτοποίησης πληρωμής μπορεί να εξαρτάται από την περίπτωση χρήσης σας. Επικοινωνήστε με τον PSP σας αν χρειάζεστε διευκρινίσεις.
Για να χρησιμοποιήσετε μια επαναλαμβανόμενη συναλλαγή με ταυτοποίηση, βλ. Συναλλαγές με διαπιστευτήρια σε αρχείο.
Πώς να χρησιμοποιήσετε τη δυναμική μετατροπή νομισμάτων (DCC) με την ταυτοποίηση πληρωτή;
Πριν ξεκινήσετε την ταυτοποίηση πληρωτή, μπορείτε να αποκτήσετε μια τιμή συναλλάγματος δυναμικής μετατροπής νομισμάτων (DCC) από τον πάροχο DCC υποβάλλοντας το αίτημα PAYMENT OPTIONS INQUIRY.
Αν ο πάροχος DCC έχει κάνει μια προσφορά και έχετε δώσει αυτήν την προσφορά στον πληρωτή, πρέπει να υποδείξετε την αντίδραση του πληρωτή στο αίτημα INTIATE AUTHENTICATION:
- Αν ο πληρωτής έχει αποδεχθεί την προσφορά, χρησιμοποιήστε:
currencyConversion.requestId
όπως επιστράφηκε στην απόκριση PAYMENT OPTIONS INQUIRYcurrencyConversion.uptake = ACCEPTED
- Αν ο πληρωτής έχει αρνηθεί την προσφορά, χρησιμοποιήστε:
currencyConversion.requestId
όπως επιστράφηκε στην απόκριση PAYMENT OPTIONS INQUIRYcurrencyConversion.uptake = DECLINED
Αν δεν απαιτείται DCC για αυτήν τη συναλλαγή, υποβάλετε το αίτημα INITIATE AUTHENTICATION με currencyConversion.uptake = NOT_REQUIRED
.
Αν έχετε διαμορφωθεί για χρήση της δυνατότητας DCC και δεν δώσετε το currencyConversion.uptake
στο αίτημα INITIATE AUTHENTICATION, η απόκριση στο αίτημα INITIATE AUTHENTICATION υποδεικνύει currencyConversion.uptake = NOT_REQUIRED
.
Αν ο πληρωτής αποδεχτεί την προσφορά DCC, η διαδικασία ταυτοποίησης πληρωτή χρησιμοποιεί το νόμισμα του πληρωτή και το ποσό του πληρωτή. Σε όλες τις άλλες περιπτώσεις, η διαδικασία ταυτοποίησης πληρωτή χρησιμοποιεί το ποσό παραγγελίας και το νόμισμα παραγγελίας.
Μπορείτε να χρησιμοποιήσετε τις πληροφορίες DCC που δίνονται στο αίτημα INITIATE AUTHENTICATION για το επόμενο αίτημα πληρωμής, κάνοντας αναφορά στη συναλλαγή ταυτοποίησης (authentication.transactionId
). Οι πληροφορίες DCC που υποβλήθηκαν κατά την ταυτοποίηση πληρωτή ισχύουν για τη συναλλαγή πληρωμής σας.
Μπορείτε επίσης να υποβάλετε τις ίδιες πληροφορίες DCC στις επακόλουθες συναλλαγές πληρωμής όπως και στην ταυτοποίηση, εφόσον το θελήσετε. Ωστόσο, αν η επακόλουθη συναλλαγή πληρωμής κάνει αναφορά στη συναλλαγή ταυτοποίησης και περιέχει πληροφορίες DCC που διαφέρουν από την ταυτοποίηση, η συναλλαγή πληρωμής απορρίπτεται.
authentication.purpose = REFRESH_AUTHENTICATION
).