Απρόσκοπτη ενσωμάτωση του Moneris Checkout: Αντιμετώπιση προβλημάτων JSON Response
Το Moneris Checkout είναι ένα ευρέως χρησιμοποιούμενο σύστημα πύλης πληρωμών που βοηθά τις επιχειρήσεις να επιταχύνουν τις ηλεκτρονικές συναλλαγές. Ωστόσο, η ενσωμάτωσή του στον ιστότοπό σας μπορεί να είναι δύσκολη, ειδικά όταν τα απαιτούμενα δεδομένα, όπως ένας αριθμός εισιτηρίου, δεν επιστρέφονται από μια κλήση JSON. Τέτοια σφάλματα μπορεί να εμποδίσουν την τακτική ροή των συναλλαγών, επομένως η αποσφαλμάτωση είναι απαραίτητη δεξιότητα για τους μηχανικούς.
Η κατανόηση του τρόπου σωστής διαμόρφωσης του ταμείου είναι κρίσιμη κατά την αντικατάσταση μιας παλιάς Φιλοξενούμενης Σελίδας Πληρωμών (HPP) με το Moneris και τη χρήση της διεπαφής JavaScript. Για να παρέχετε στους πελάτες σας μια απρόσκοπτη εμπειρία, βεβαιωθείτε ότι η σελίδα δημοσιεύει λεπτομέρειες συναλλαγών και ανακτά ακριβείς απαντήσεις.
Πολλοί προγραμματιστές έχουν πρόβλημα να ακολουθήσουν την τεκμηρίωση ενσωμάτωσης του Moneris. Η πολυπλοκότητα προέρχεται από το χειρισμό των επιστροφών κλήσης, τη μεταφόρτωση δεδομένων συναλλαγών και την ανάγνωση των αποτελεσμάτων σε πραγματικό χρόνο, τα οποία απαιτούνται για μια επιτυχημένη ενσωμάτωση. Καθώς ξεκινάτε το ταξίδι ενσωμάτωσης, μπορεί να είναι επωφελές να έχετε μια σαφή και καλά τεκμηριωμένη μεθοδολογία.
Σε αυτήν την ανάρτηση, θα εξετάσουμε πώς να επιλύσετε το πρόβλημα των αριθμών εισιτηρίων που λείπουν στην ενσωμάτωση του Moneris. Θα είστε καλύτερα προετοιμασμένοι να αντιμετωπίσετε αυτό το ζήτημα, εάν διαβάσετε τα απαραίτητα αποσπάσματα κώδικα και τις τεχνικές αντιμετώπισης προβλημάτων.
Εντολή | Παράδειγμα χρήσης |
---|---|
monerisCheckout() | Αυτή είναι η συνάρτηση κατασκευής από το Moneris JavaScript SDK. Ξεκινά τη διαδικασία ολοκλήρωσης αγοράς. Αυτό το σενάριο δημιουργεί ένα νέο στιγμιότυπο του γραφικού στοιχείου πληρωμής Moneris, το οποίο σας επιτρέπει να ενσωματώσετε την πύλη πληρωμής στον ιστότοπό σας. |
setMode() | Καθορίζει το περιβάλλον για τη συναλλαγή Moneris. Σε αυτό το παράδειγμα, το "qa" αναφέρεται σε ένα δοκιμαστικό περιβάλλον στο οποίο μπορείτε να προσομοιώσετε με ασφάλεια συναλλαγές χωρίς να επεξεργαστείτε πραγματικές πληρωμές. Αυτό είναι απαραίτητο για τη δοκιμή της ενσωμάτωσης χωρίς να χρεώνονται πραγματικά οι κάρτες. |
setCheckoutDiv() | Αυτή η εντολή συσχετίζει το ταμείο Moneris με ένα καθορισμένο κοντέινερ HTML (div). Παρέχοντας το αναγνωριστικό "monerisCheckout", το γραφικό στοιχείο πληρωμής εμφανίζεται σε αυτό το div, επιτρέποντάς σας να επιλέξετε πού θα εμφανίζεται η φόρμα στη σελίδα. |
setCallback() | Κατά τη διαδικασία ολοκλήρωσης αγοράς, αντιστοιχίστε μια λειτουργία σε ένα συγκεκριμένο συμβάν. Σε αυτό το σενάριο, η προσαρμοσμένη συνάρτηση "myPageLoad" χειρίζεται το συμβάν "page_loaded", επιτρέποντας στους προγραμματιστές να εκτελούν κώδικα όταν φορτωθεί πλήρως η σελίδα ολοκλήρωσης αγοράς. |
startCheckout() | Ξεκινήστε τη διαδικασία ταμείου Moneris. Όταν καλείται, αυτή η συνάρτηση ξεκινά τη ροή πληρωμών αποδίδοντας τη φόρμα πληρωμής και συνδέοντάς την με το σύστημα υποστήριξης για την επεξεργασία συναλλαγών. |
app.post() | Αυτό είναι ένα πρόγραμμα χειρισμού διαδρομής Express.js που χειρίζεται αιτήματα POST. Αυτό το σενάριο λαμβάνει αποδείξεις πληρωμής από το σύστημα υποστήριξης του Moneris μετά την ολοκλήρωση μιας συναλλαγής, το οποίο επιτρέπει την πρόσθετη επεξεργασία, όπως η διατήρηση των δεδομένων πληρωμής ή η έκδοση επιβεβαιώσεων. |
bodyParser.json() | Μια λειτουργία ενδιάμεσου λογισμικού στο Express για την ανάλυση εισερχόμενων αιτημάτων JSON. Είναι ιδιαίτερα κρίσιμο σε αυτήν την περίπτωση, επειδή το Moneris μεταδίδει δεδομένα συναλλαγών σε μορφή JSON. Αυτή η εντολή εγγυάται ότι το σώμα του αιτήματος υποβάλλεται σε σωστή επεξεργασία για επεξεργασία από την πλευρά του διακομιστή. |
chai.request() | Αυτή η εντολή είναι μέρος του πακέτου δοκιμών Chai HTTP που στέλνει αιτήματα HTTP σε περιπτώσεις δοκιμής. Αντιγράφει αιτήματα POST στο API πληρωμής Moneris κατά τη δοκιμή μονάδας, επιτρέποντας στον προγραμματιστή να δει πώς το backend χειρίζεται επιτυχημένες και αποτυχημένες συναλλαγές. |
expect() | Μια βασική συνάρτηση διεκδίκησης στη βιβλιοθήκη Chai. Στο πλαίσιο των δοκιμών μονάδας, καθορίζει εάν πληρούνται συγκεκριμένες συνθήκες. Χρησιμοποιείται για να διασφαλιστεί ότι η κατάσταση απόκρισης και το μήνυμα που επιστρέφεται από το τελικό σημείο πληρωμής ταιριάζουν με τα επιδιωκόμενα αποτελέσματα. |
Κατανόηση της ροής εργασίας ενσωμάτωσης και δέσμης ενεργειών Moneris Checkout
Το σενάριο του front-end που περιλαμβάνεται ενσωματώνει το σύστημα Moneris Checkout σε έναν ιστότοπο μέσω JavaScript. Η κύρια λειτουργικότητα ξεκινά με τη δημιουργία μιας παρουσίας του ταμείου Moneris μέσω του monerisCheckout() κατασκευαστής. Αυτή η περίπτωση χρησιμεύει ως διεπαφή μεταξύ του ιστότοπού σας και της υπηρεσίας επεξεργασίας πληρωμών της Moneris. Η εντολή setMode() καθορίζει εάν το περιβάλλον θα πρέπει να ρυθμιστεί σε "qa" για δοκιμή ή "ζωντανό" για παραγωγή, το οποίο είναι κρίσιμο κατά τα στάδια ανάπτυξης. Επιλέγοντας "qa", οι προγραμματιστές μπορούν να αναπαράγουν συναλλαγές χωρίς να επιβαρύνονται με πραγματικό κόστος, δημιουργώντας ένα ασφαλές πεδίο δοκιμών.
Μόλις δημιουργηθεί η παρουσία του ταμείου, το setCheckoutDiv() Η εντολή συνδέει τη φόρμα ολοκλήρωσης αγοράς Moneris σε ένα συγκεκριμένο τμήμα HTML. Εδώ θα εμφανιστεί η φόρμα πληρωμής στη σελίδα. Αυτό εγγυάται ότι η οπτική απεικόνιση της φόρμας πληρωμής εμφανίζεται σε μια συγκεκριμένη περιοχή του ιστότοπου, καθιστώντας τη διαδικασία απρόσκοπτη και ενσωματωμένη στο υπάρχον σχέδιό σας. Στο παράδειγμά μας, η φόρμα Moneris εισάγεται στο div με το αναγνωριστικό "monerisCheckout". Αυτό το div χρησιμεύει ως σύμβολο κράτησης θέσης για το δυναμικά φορτωμένο περιεχόμενο του Moneris, το οποίο περιλαμβάνει πεδία και κουμπιά εισαγωγής πληρωμής πελάτη.
Στη συνέχεια εκτελείται το σενάριο setCallback(), επιτρέποντας στον προγραμματιστή να διαμορφώσει συγκεκριμένο χειρισμό συμβάντων για τη διαδικασία ολοκλήρωσης αγοράς. Συγκεκριμένα, η επιστροφή κλήσης για "page_loaded" επισυνάπτεται στη συνάρτηση myPageLoad, που εγγυάται ότι όταν η σελίδα φορτωθεί πλήρως, μπορούν να προκύψουν επιπλέον προσαρμοσμένες ενέργειες (όπως δεδομένα καταγραφής). Αυτή η λειτουργία επιτρέπει την ευελιξία στον τρόπο διαχείρισης της εμπειρίας χρήστη. Καταγραφή των περιεχομένων του πρώην αντικείμενο μέσα myPageLoad() βοηθά τους προγραμματιστές στον εντοπισμό σφαλμάτων παρέχοντας ανατροφοδότηση σε πραγματικό χρόνο για τα δεδομένα που επιστρέφει το Moneris.
Τέλος, το σενάριο back-end χειρίζεται την απόδειξη των δεδομένων πληρωμής από την πλευρά του διακομιστή. Χρησιμοποιώντας Express.js στο Node.js, η διαδρομή app.post() ορίζεται να λαμβάνει αιτήματα POST από τη Moneris μόλις ολοκληρωθεί η συναλλαγή. Αυτό το τελικό σημείο επεξεργάζεται το επιστρεφόμενο JSON, ελέγχοντας το απάντηση_κωδικός για να δείτε αν η πληρωμή ήταν επιτυχής. Εάν είναι επιτυχής, τα δεδομένα συναλλαγής (όπως ο αριθμός εισιτηρίου) μπορούν να καταγραφούν ή να εισαχθούν σε μια βάση δεδομένων. Επιστρέφοντας κατάλληλους κωδικούς κατάστασης και μηνύματα, το backend επιτρέπει την ομαλή σύνδεση με το frontend, παρέχοντας κρίσιμα σχόλια στον χρήστη, όπως εάν η συναλλαγή πέτυχε ή απέτυχε.
Moneris Checkout Ενσωμάτωση με JavaScript: Λύσεις Front-End και Back-End
Λύση front-end που χρησιμοποιεί JavaScript για την ενσωμάτωση της φόρμας Moneris Checkout και τη διαχείριση των απαντήσεων συναλλαγών.
// Front-end integration script
// This script embeds the Moneris checkout and processes the transaction result
<script src="https://gatewayt.moneris.com/chktv2/js/chkt_v2.00.js"></script>
<div id="monerisCheckout"></div>
<script>
var myCheckout = new monerisCheckout();
myCheckout.setMode("qa"); // Set environment to QA
myCheckout.setCheckoutDiv("monerisCheckout"); // Define div for checkout
// Add callback for when the page is fully loaded
myCheckout.setCallback("page_loaded", myPageLoad);
// Start the checkout process
myCheckout.startCheckout("");
// Function that gets triggered when the page is loaded
function myPageLoad(ex) {
console.log("Checkout page loaded", ex);
}
// Function to handle the receipt after the payment
function myPaymentReceipt(ex) {
if(ex.response_code === '00') {
alert("Transaction Successful: " + ex.ticket);
} else {
alert("Transaction Failed: " + ex.message);
}
}
</script>
Λύση Back-End με Node.js και Express: Handling Payment Data
Λύση back-end που χρησιμοποιεί Node.js και Express για τη διαχείριση των δεδομένων μετά την πληρωμή του Moneris
// Node.js backend script for processing payment receipt data
// This backend handles the response from Moneris and processes it for database storage
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// Endpoint to receive the payment result
app.post('/payment-receipt', (req, res) => {
const paymentData = req.body;
if (paymentData.response_code === '00') {
console.log('Payment successful:', paymentData.ticket);
// Insert into database or further process the payment
res.status(200).send('Payment success');
} else {
console.error('Payment failed:', paymentData.message);
res.status(400).send('Payment failed');
}
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
Μονάδα που δοκιμάζει τον χειρισμό πληρωμών Backend με Mocha και Chai
Δοκιμή μονάδας υποστήριξης με Mocha και Chai για επικύρωση της λειτουργικότητας διαχείρισης χρημάτων
// Unit test for the Node.js backend using Mocha and Chai
// This test checks if the backend properly handles successful and failed transactions
const chai = require('chai');
const chaiHttp = require('chai-http');
const app = require('../app');
const expect = chai.expect;
chai.use(chaiHttp);
describe('POST /payment-receipt', () => {
it('should return 200 for successful payment', (done) => {
chai.request(app)
.post('/payment-receipt')
.send({ response_code: '00', ticket: '123456' })
.end((err, res) => {
expect(res).to.have.status(200);
expect(res.text).to.equal('Payment success');
done();
});
});
it('should return 400 for failed payment', (done) => {
chai.request(app)
.post('/payment-receipt')
.send({ response_code: '01', message: 'Transaction Declined' })
.end((err, res) => {
expect(res).to.have.status(400);
expect(res.text).to.equal('Payment failed');
done();
});
});
});
Βελτίωση της ενοποίησης του Moneris Checkout με Επιλογές Προσαρμογής
Όταν εργάζεστε με την ενσωμάτωση Moneris Checkout, οι προγραμματιστές αναζητούν συχνά μεθόδους για να εξατομικεύσουν τη διαδικασία ολοκλήρωσης αγοράς για να βελτιώσουν την εμπειρία του χρήστη. Η φόρμα ταμείου Στοιχεία διεπαφής χρήστη μπορεί να προσαρμοστεί, κάτι που είναι μια λιγότερο γνωστή λειτουργία. Το Moneris επιτρέπει στις επιχειρήσεις να προσαρμόσουν την εμφάνιση και τη διάταξη της σελίδας ολοκλήρωσης αγοράς, επιτρέποντάς τους να την ευθυγραμμίσουν με την επωνυμία τους. Αυτό περιλαμβάνει την τροποποίηση των διατάξεων των κουμπιών, των πεδίων φόρμας, ακόμη και της διατύπωσης, για να διευκολύνεται η διαδικασία για τους τελικούς χρήστες και να αυξηθούν οι μετατροπές.
Ένας άλλος παράγοντας που πρέπει να εξεταστεί είναι η χρήση ειδών συναλλαγών εκτός από τις βασικές πληρωμές. Το Moneris έχει δυνατότητες όπως η προέγκριση, στην οποία ένα ποσό συναλλαγής αποθηκεύεται στην κάρτα αλλά δεν χρεώνεται αμέσως. Αυτή η λειτουργία είναι ιδιαίτερα σημαντική σε τομείς όπως ξενοδοχεία και ενοικιάσεις αυτοκινήτων, όπου οι τελικές τιμές μπορεί να διαφέρουν. Η ενοποίηση μπορεί να χειριστεί πολλούς τύπους συναλλαγών χρησιμοποιώντας το ίδιο API, καθιστώντας το ευέλικτο για διάφορες περιπτώσεις χρήσης.
Η ασφάλεια αποτελεί κορυφαία προτεραιότητα σε κάθε ενσωμάτωση πληρωμών και το Moneris Checkout ενσωματώνει τεχνολογίες όπως το tokenization και η πρόληψη απάτης. Το tokenization αντικαθιστά τις ευαίσθητες πληροφορίες της κάρτας με ένα διακριτικό, έτσι ώστε τα δεδομένα των καταναλωτών να μην εκτίθενται ποτέ στα συστήματά σας. Η εφαρμογή μέτρων ασφαλείας, όπως οι τεχνολογίες ανίχνευσης απάτης και η συμμόρφωση με το PCI DSS, μπορεί να μειώσει δραματικά τους κινδύνους που συνδέονται με τις ηλεκτρονικές συναλλαγές.
Συνήθεις ερωτήσεις σχετικά με την ενσωμάτωση του Moneris Checkout
- Τι είναι το Moneris Checkout;
- Το Moneris Checkout είναι μια λύση πύλης πληρωμής που επιτρέπει στις επιχειρήσεις να αποδέχονται με ασφάλεια πληρωμές μέσω του ιστότοπού τους. Παρέχει προσαρμόσιμες φόρμες πληρωμής και δέχεται διάφορους τρόπους πληρωμής.
- Πώς μπορώ να προσαρμόσω τη φόρμα Moneris Checkout;
- Το Moneris API σάς επιτρέπει να προσαρμόσετε τη σχεδίαση της φόρμας πληρωμής αλλάζοντας στοιχεία όπως κουμπιά και πεδία εισαγωγής. Χρησιμοποιήστε εντολές όπως setCustomStyle() για να προσθέσετε το στυλ της επωνυμίας σας στη φόρμα.
- Ποια είναι η σημασία της ρύθμισης του περιβάλλοντος σε "qa";
- Ρύθμιση του περιβάλλοντος σε "qa" με setMode("qa") σας επιτρέπει να δοκιμάζετε με ασφάλεια τις συναλλαγές χωρίς να επεξεργάζεστε πραγματικές πληρωμές.
- Πώς χειρίζομαι μια συναλλαγή προέγκρισης;
- Για να διαχειριστείτε την προέγκριση, συμπεριλάβετε το action: "preauth" όρισμα στο αίτημά σας JSON. Αυτό θα κρατήσει την κάρτα του πελάτη αντί να τη χρεώσει αμέσως.
- Ποια είναι τα μέτρα ασφαλείας που παρέχει το Moneris Checkout;
- Το Moneris υποστηρίζει το tokenization, το οποίο αντικαθιστά τις ευαίσθητες πληροφορίες πιστωτικής κάρτας με ένα διακριτικό. Συμμόρφωση με PCI DSS διασφαλίζει ότι η ενσωμάτωσή σας πληροί τις απαιτήσεις ασφάλειας του κλάδου.
Τελικές σκέψεις σχετικά με την ενσωμάτωση Moneris Checkout
Για την επιτυχή ενσωμάτωση του Moneris Checkout με JavaScript, τόσο οι ρυθμίσεις του front-end όσο και του back-end πρέπει να προγραμματιστούν προσεκτικά. Η παροχή μιας καλής εμπειρίας ολοκλήρωσης αγοράς στους χρήστες απαιτεί τη διασφάλιση ότι τα στοιχεία συναλλαγής, όπως ο αριθμός του εισιτηρίου, καταγράφονται κατάλληλα.
Η δοκιμή σε περιβάλλον QA και η σωστή δομή της φόρμας πληρωμής σας θα σας βοηθήσει να εντοπίσετε προβλήματα έγκαιρα. Με τη σωστή τεχνική, μπορείτε να δημιουργήσετε μια απρόσκοπτη και ασφαλή διαδικασία πληρωμής που ταιριάζει στους στόχους της εταιρείας σας, διασφαλίζοντας παράλληλα την ευτυχία των πελατών.
Αναφορές και πόροι για την ενσωμάτωση του Moneris Checkout
- Αυτό το άρθρο βασίζεται στην τεκμηρίωση του Moneris Checkout Integration και στην αναφορά API. Για πιο λεπτομερείς πληροφορίες, επισκεφθείτε το επίσημο αποθετήριο Moneris GitHub: Moneris Checkout GitHub .
- Μπορείτε να βρείτε πρόσθετες οδηγίες για τη ρύθμιση ενσωματώσεων πληρωμών που βασίζονται σε JavaScript στην πύλη προγραμματιστών Moneris: Πύλη προγραμματιστών Moneris .
- Για βέλτιστες πρακτικές σχετικά με το χειρισμό κλήσεων JSON και τη λήψη απαντήσεων συναλλαγών, συμβουλευτείτε την τεκμηρίωση JavaScript SDK: Moneris JavaScript SDK .