Moneris Checkout'un Sorunsuz Entegrasyonu: JSON Yanıtında Sorun Giderme
Moneris Checkout, işletmelerin çevrimiçi işlemleri hızlandırmasına yardımcı olan, yaygın olarak kullanılan bir ödeme ağ geçidi sistemidir. Ancak bunu web sitenize entegre etmek, özellikle bilet numarası gibi gerekli veriler bir JSON çağrısından döndürülmediğinde zor olabilir. Bu tür hatalar işlemlerin düzenli akışını engelleyebilir, dolayısıyla hata ayıklama mühendisler için gerekli bir beceridir.
Eski bir Barındırılan Ödeme Sayfasını (HPP) Moneris ile değiştirirken ve JavaScript arayüzünü kullanırken ödeme işleminin nasıl düzgün şekilde yapılandırılacağını anlamak kritik öneme sahiptir. Müşterilerinize kusursuz bir deneyim sunmak için sayfanın işlem ayrıntılarını yayınladığından ve doğru yanıtlar aldığından emin olun.
Birçok geliştirici Moneris'in entegrasyon belgelerini takip etmekte sorun yaşıyor. Karmaşıklık, başarılı bir entegrasyon için gerekli olan geri aramaların yönetilmesi, işlem verilerinin yüklenmesi ve sonuçların gerçek zamanlı olarak okunmasından kaynaklanmaktadır. Entegrasyon yolculuğunuza başladığınızda açık ve iyi belgelenmiş bir metodolojiye sahip olmak faydalı olabilir.
Bu yazıda Moneris entegrasyonunuzdaki eksik bilet numaraları sorununu nasıl çözebileceğinize bakacağız. Gerekli kod parçacıklarını ve sorun giderme tekniklerini gözden geçirirseniz, bu sorunla başa çıkmaya daha hazırlıklı olursunuz.
Emretmek | Kullanım örneği |
---|---|
monerisCheckout() | Bu, Moneris JavaScript SDK'sının yapıcı işlevidir. Ödeme prosedürünü başlatır. Bu komut dosyası, ödeme ağ geçidini web sitenize yerleştirmenize olanak tanıyan Moneris ödeme widget'ının yeni bir örneğini oluşturur. |
setMode() | Moneris işleminin ortamını belirtir. Bu örnekte "qa", gerçek ödemeleri işlemeden işlemleri güvenli bir şekilde simüle edebileceğiniz bir test ortamını ifade eder. Bu, kartları gerçekten şarj etmeden entegrasyonu test etmek için gereklidir. |
setCheckoutDiv() | Bu komut, Moneris ödemesini belirtilen bir HTML kapsayıcısıyla (div) ilişkilendirir. "monerisCheckout" kimliğini sağlayarak, ödeme widget'ı bu div içinde görüntülenir ve formun sayfada nerede görüneceğini seçmenize olanak tanır. |
setCallback() | Ödeme işlemi sırasında belirli bir etkinliğe bir işlev atayın. Bu senaryoda, "myPageLoad" özel işlevi "page_loaded" olayını işleyerek geliştiricilerin ödeme sayfası tamamen yüklendiğinde kod çalıştırmasına olanak tanır. |
startCheckout() | Moneris ödeme sürecini başlatın. Bu işlev çağrıldığında, ödeme formunu oluşturarak ve işlemleri işlemek için arka uç sistemine bağlayarak ödeme akışını başlatır. |
app.post() | Bu, POST isteklerini işleyen bir Express.js rota işleyicisidir. Bu komut dosyası, bir işlem tamamlandıktan sonra Moneris arka ucundan ödeme makbuzlarını alır ve bu, ödeme verilerinin korunması veya onayların verilmesi gibi ek işlemlere olanak tanır. |
bodyParser.json() | Express'te gelen JSON isteklerini ayrıştırmaya yönelik bir ara yazılım işlevi. Bu durumda özellikle kritiktir çünkü Moneris işlem verilerini JSON formatında iletir. Bu komut, istek gövdesinin sunucu tarafı işleme için doğru şekilde işlenmesini garanti eder. |
chai.request() | Bu komut, test senaryoları içerisinde HTTP istekleri gönderen Chai HTTP test paketinin bir parçasıdır. Birim testi sırasında POST isteklerini Moneris ödeme API'sine kopyalayarak geliştiricinin arka ucun başarılı ve başarısız işlemleri nasıl ele aldığını görmesine olanak tanır. |
expect() | Chai kütüphanesindeki temel bir iddia işlevi. Birim testleri bağlamında belirli koşulların karşılanıp karşılanmadığını belirler. Ödeme uç noktası tarafından döndürülen yanıt durumunun ve mesajın amaçlanan sonuçlarla eşleştiğinden emin olmak için kullanılır. |
Moneris Ödeme Entegrasyonunu ve Komut Dosyası İş Akışını Anlamak
İçerdiği ön uç komut dosyası, Moneris Checkout sistemini JavaScript aracılığıyla bir web sitesine entegre eder. Birincil işlevsellik, Moneris ödeme örneğinin oluşturulmasıyla başlar. monerisCheckout() yapıcı. Bu örnek, web siteniz ile Moneris'in ödeme işleme hizmeti arasında bir arayüz görevi görür. komut setMode() geliştirme aşamalarında kritik olan ortamın test için "qa" olarak mı yoksa üretim için "canlı" olarak mı ayarlanması gerektiğini belirtir. Geliştiriciler "qa" seçeneğini seçerek işlemleri gerçek dünya maliyetlerine maruz kalmadan kopyalayabilir ve güvenli bir test alanı oluşturabilir.
Ödeme örneği oluşturulduktan sonra, setCheckoutDiv() komutu Moneris ödeme formunu belirli bir HTML div'e bağlar. Ödeme formunun sayfada görüneceği yer burasıdır. Bu, ödeme formunun görsel tasvirinin web sitesinin belirli bir bölgesinde gösterilmesini garanti ederek prosedürü kusursuz hale getirir ve mevcut tasarımınıza entegre eder. Örneğimizde Moneris formu div'e "monerisCheckout" kimliğiyle eklenmiştir. Bu div, müşteri ödemesi giriş alanları ve düğmelerini içeren Moneris'in dinamik olarak yüklenen içeriği için yer tutucu görevi görür.
Komut dosyası daha sonra yürütülür setCallback()geliştiricinin ödeme işlemi için belirli olay işlemeyi yapılandırmasına olanak tanır. Spesifik olarak, "page_loaded" için geri çağrı işleve eklenmiştir myPageLoad, sayfa tamamen yüklendiğinde ekstra özel eylemlerin (verilerin günlüğe kaydedilmesi gibi) gerçekleşebileceğini garanti eder. Bu işlev, kullanıcı deneyiminin nasıl ele alınacağı konusunda esneklik sağlar. İçeriğin günlüğe kaydedilmesi eski içindeki nesne myPageLoad() Moneris'in döndürdüğü veriler hakkında gerçek zamanlı geri bildirim sağlayarak geliştiricilere hata ayıklama konusunda yardımcı olur.
Son olarak, arka uç komut dosyası, ödeme verilerinin sunucu tarafından alınmasını yönetir. Kullanma Express.js Node.js'de rota uygulama.post() işlem tamamlandıktan sonra Moneris'ten POST isteklerini alacak şekilde tanımlanır. Bu uç nokta, döndürülen JSON'u işler ve yanıt_kodu ödemenin başarılı olup olmadığını görmek için. Başarılı olursa, işlem verileri (bilet numarası gibi) kaydedilebilir veya bir veritabanına girilebilir. Arka uç, uygun durum kodlarını ve mesajları döndürerek ön uçla sorunsuz bağlantı kurulmasını sağlar ve kullanıcıya işlemin başarılı olup olmadığı gibi kritik geri bildirimler sağlar.
JavaScript ile Moneris Ödeme Entegrasyonu: Ön Uç ve Arka Uç Çözümleri
Moneris Ödeme formunu dahil etmek ve işlem yanıtlarını yönetmek için JavaScript kullanan ön uç çözüm.
// 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>
Node.js ve Express ile Arka Uç Çözümü: Ödeme Verilerini Yönetme
Moneris'in ödeme sonrası verilerini yönetmek için Node.js ve Express'i kullanan arka uç çözümü
// 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');
});
Mocha ve Chai ile Arka Uç Ödeme İşlemesini Test Eden Birim
Para işleme işlevselliğini doğrulamak için Mocha ve Chai ile arka uç birim testi
// 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 Ödeme Entegrasyonunun Özelleştirme Seçenekleri ile Geliştirilmesi
Geliştiriciler, Moneris Checkout entegrasyonuyla çalışırken kullanıcı deneyimini geliştirmek için sıklıkla ödeme sürecini kişiselleştirmeye yönelik yöntemler arar. Ödeme formunun Kullanıcı arayüzü bileşenleri daha az bilinen bir işlev olan özelleştirilebilir. Moneris, işletmelerin ödeme sayfasının görünümünü ve düzenini özelleştirmesine olanak tanıyarak bunu kendi markalarıyla uyumlu hale getirmelerine olanak tanır. Bu, son kullanıcılar için süreci kolaylaştırmak ve dönüşümleri artırmak amacıyla düğme düzenlerinin, form alanlarının ve hatta ifadelerin değiştirilmesini içerir.
İncelenmesi gereken bir diğer faktör ise temel ödemeler dışındaki işlem türlerinin kullanılmasıdır. Moneris'in, işlem tutarının kartta saklandığı ancak hemen tahsil edilmediği ön provizyon gibi yetenekleri vardır. Bu işlevsellik özellikle oteller ve otomobil kiralama gibi nihai fiyatların farklılık gösterebileceği alanlarda önemlidir. Entegrasyon aynı yöntemi kullanarak birçok işlem türünü işleyebilir API'si, çeşitli kullanım durumları için çok yönlü hale getirir.
Güvenlik, herhangi bir ödeme entegrasyonunda en önemli önceliktir ve Moneris Checkout, tokenizasyon ve sahtekarlığın önlenmesi gibi teknolojileri içerir. Tokenizasyon, hassas kart bilgilerini bir token ile değiştirir, böylece tüketici verileri hiçbir zaman sistemlerinizde açığa çıkmaz. Dolandırıcılık tespit teknolojileri ve PCI DSS uyumluluğu gibi güvenlik önlemlerinin uygulanması, çevrimiçi işlemlerle bağlantılı riskleri önemli ölçüde azaltabilir.
Moneris Ödeme Entegrasyonu Hakkında Sık Sorulan Sorular
- Moneris Checkout nedir?
- Moneris Checkout, işletmelerin web siteleri aracılığıyla ödemeleri güvenli bir şekilde kabul etmelerini sağlayan bir ödeme ağ geçidi çözümüdür. Özelleştirilebilir ödeme formları sağlar ve çeşitli ödeme yöntemlerini kabul eder.
- Moneris Ödeme formunu nasıl özelleştirebilirim?
- Moneris API, düğmeler ve giriş alanları gibi öğeleri değiştirerek ödeme formunun tasarımını özelleştirmenize olanak tanır. Gibi komutları kullanın setCustomStyle() Markanızın stilini forma eklemek için.
- Ortamı "qa" olarak ayarlamanın önemi nedir?
- Ortamı "qa" olarak ayarlamak setMode("qa") Gerçek ödemeleri işlemeden işlemleri güvenli bir şekilde test etmenize olanak tanır.
- Ön provizyon işlemini nasıl halledebilirim?
- Ön provizyonu yönetmek için şunları ekleyin: action: "preauth" JSON isteğinizdeki argüman. Bu, müşterinin kartını hemen şarj etmek yerine bloke edecektir.
- Moneris Checkout tarafından sağlanan güvenlik önlemleri nelerdir?
- Moneris, hassas kredi kartı bilgilerini bir token ile değiştiren tokenizasyonu destekler. Uyumluluk PCI DSS Entegrasyonunuzun endüstri güvenlik gereksinimlerini karşılamasını sağlar.
Moneris Ödeme Entegrasyonu Hakkında Son Düşünceler
Moneris Checkout'u JavaScript ile başarılı bir şekilde entegre etmek için hem ön uç hem de arka uç kurulumlarının dikkatli bir şekilde planlanması gerekir. Kullanıcılara iyi bir ödeme deneyimi sağlamak, bilet numarası gibi işlem ayrıntılarının uygun şekilde kaydedilmesini gerektirir.
QA ortamında test yapmak ve ödeme formunuzu doğru şekilde yapılandırmak, sorunları erken tespit etmenize yardımcı olacaktır. Doğru teknikle müşteri mutluluğunu garanti ederken şirketinizin hedeflerine uygun, sorunsuz ve güvenli bir ödeme prosedürü oluşturabilirsiniz.
Moneris Ödeme Entegrasyonu için Referanslar ve Kaynaklar
- Bu makale Moneris Ödeme Entegrasyonu belgelerine ve API referansına dayanmaktadır. Daha ayrıntılı bilgi için resmi Moneris GitHub deposunu ziyaret edin: Moneris Ödeme GitHub .
- JavaScript tabanlı ödeme entegrasyonlarını ayarlamaya ilişkin ek kılavuza Moneris geliştirici portalında ulaşılabilir: Moneris Geliştirici Portalı .
- JSON çağrılarını yönetme ve işlem yanıtlarını yakalamaya ilişkin en iyi uygulamalar için JavaScript SDK belgelerine bakın: Moneris JavaScript SDK'sı .