$lang['tuto'] = "سبق"; ?>$lang['tuto'] = "سبق"; ?> جاوا اسکرپٹ کے ساتھ Moneris چیک آؤٹ

جاوا اسکرپٹ کے ساتھ Moneris چیک آؤٹ کو مربوط کرنا: JSON رسپانس ایشوز کو ہینڈل کرنا

جاوا اسکرپٹ کے ساتھ Moneris چیک آؤٹ کو مربوط کرنا: JSON رسپانس ایشوز کو ہینڈل کرنا
جاوا اسکرپٹ کے ساتھ Moneris چیک آؤٹ کو مربوط کرنا: JSON رسپانس ایشوز کو ہینڈل کرنا

Moneris چیک آؤٹ کا ہموار انضمام: JSON رسپانس کا ازالہ کرنا

Moneris Checkout ایک عام استعمال شدہ ادائیگی کا گیٹ وے سسٹم ہے جو کاروباروں کو آن لائن لین دین کو تیز کرنے میں مدد کرتا ہے۔ تاہم، اسے اپنی ویب سائٹ میں ضم کرنا مشکل ہوسکتا ہے، خاص طور پر جب مطلوبہ ڈیٹا، جیسے کہ ٹکٹ نمبر، JSON کال سے واپس نہیں کیا جاتا ہے۔ اس طرح کی غلطیاں لین دین کے باقاعدہ بہاؤ میں رکاوٹ بن سکتی ہیں، لہذا ڈیبگنگ انجینئرز کے لیے ضروری مہارت ہے۔

چیک آؤٹ کو صحیح طریقے سے کنفیگر کرنے کے طریقہ کو سمجھنا ضروری ہے جب ایک پرانے ہوسٹڈ پیمنٹ پیج (HPP) کو Moneris کے ساتھ تبدیل کریں اور ان کا JavaScript انٹرفیس استعمال کریں۔ اپنے کلائنٹس کو ایک ہموار تجربہ فراہم کرنے کے لیے، اس بات کو یقینی بنائیں کہ صفحہ ٹرانزیکشن کی تفصیلات پوسٹ کرتا ہے اور درست جوابات حاصل کرتا ہے۔

بہت سے ڈویلپرز کو Moneris کے انضمام کی دستاویزات کی پیروی کرنے میں پریشانی ہوتی ہے۔ پیچیدگی کال بیکس کو سنبھالنے، لین دین کا ڈیٹا اپ لوڈ کرنے، اور حقیقی وقت میں نتائج کو پڑھنے سے پیدا ہوتی ہے، یہ سب ایک کامیاب انضمام کے لیے ضروری ہیں۔ جیسا کہ آپ اپنے انضمام کا سفر شروع کرتے ہیں، ایک واضح اور اچھی طرح سے دستاویزی طریقہ کار کا ہونا فائدہ مند ہو سکتا ہے۔

اس پوسٹ میں، ہم دیکھیں گے کہ آپ کے Moneris انضمام میں ٹکٹ نمبروں کے غائب ہونے کے مسئلے کو کیسے حل کیا جائے۔ اگر آپ ضروری کوڈ کے ٹکڑوں اور ٹربل شوٹنگ کی تکنیکوں کا جائزہ لیتے ہیں تو آپ اس مسئلے سے نمٹنے کے لیے بہتر طور پر تیار ہوں گے۔

حکم استعمال کی مثال
monerisCheckout() یہ Moneris JavaScript SDK کا کنسٹرکٹر فنکشن ہے۔ یہ چیک آؤٹ کا طریقہ کار شروع کرتا ہے۔ یہ اسکرپٹ Moneris چیک آؤٹ ویجیٹ کی ایک نئی مثال تیار کرتا ہے، جو آپ کو اپنی ویب سائٹ پر ادائیگی کے گیٹ وے کو سرایت کرنے کی اجازت دیتا ہے۔
setMode() Moneris لین دین کے لیے ماحول کی وضاحت کرتا ہے۔ اس مثال میں، "qa" سے مراد ایک آزمائشی ماحول ہے جس میں آپ حقیقی ادائیگیوں پر کارروائی کیے بغیر لین دین کو محفوظ طریقے سے نقل کر سکتے ہیں۔ یہ کارڈز کو اصل میں چارج کیے بغیر انضمام کی جانچ کے لیے ضروری ہے۔
setCheckoutDiv() یہ کمانڈ Moneris چیک آؤٹ کو ایک مخصوص HTML کنٹینر (div) کے ساتھ منسلک کرتی ہے۔ ID "monerisCheckout" فراہم کرنے سے، ادائیگی کا ویجیٹ اس div میں ظاہر ہوتا ہے، جس سے آپ کو یہ منتخب کرنے کی اجازت ملتی ہے کہ صفحہ پر فارم کہاں ظاہر ہوتا ہے۔
setCallback() چیک آؤٹ کے عمل کے دوران، ایک مخصوص تقریب کو ایک فنکشن تفویض کریں۔ اس منظر نامے میں، کسٹم فنکشن "myPageLoad" ایونٹ "page_loaded" کو ہینڈل کرتا ہے، جس سے ڈیولپرز کو چیک آؤٹ صفحہ مکمل طور پر لوڈ ہونے پر کوڈ چلانے کی اجازت دیتا ہے۔
startCheckout() Moneris چیک آؤٹ کا عمل شروع کریں۔ کال کرنے پر، یہ فنکشن ادائیگی کے فارم کو پیش کرکے اور لین دین کی کارروائی کے لیے اسے بیک اینڈ سسٹم سے منسلک کرکے ادائیگی کا بہاؤ شروع کرتا ہے۔
app.post() یہ ایک Express.js روٹ ہینڈلر ہے جو POST کی درخواستوں کو ہینڈل کرتا ہے۔ یہ اسکرپٹ ایک ٹرانزیکشن مکمل ہونے کے بعد Moneris بیک اینڈ سے ادائیگی کی رسیدیں وصول کرتا ہے، جو اضافی پروسیسنگ کی اجازت دیتا ہے جیسے کہ ادائیگی کے ڈیٹا کو محفوظ کرنا یا تصدیقات جاری کرنا۔
bodyParser.json() آنے والی JSON درخواستوں کو پارس کرنے کے لیے ایکسپریس میں ایک مڈل ویئر فنکشن۔ اس معاملے میں یہ خاص طور پر اہم ہے کیونکہ Moneris لین دین کا ڈیٹا JSON فارمیٹ میں منتقل کرتا ہے۔ یہ کمانڈ اس بات کی ضمانت دیتا ہے کہ سرور سائڈ پروسیسنگ کے لیے درخواست کے باڈی پر صحیح طریقے سے کارروائی کی گئی ہے۔
chai.request() یہ کمانڈ Chai HTTP ٹیسٹنگ پیکج کا حصہ ہے جو ٹیسٹ کیسز میں HTTP درخواستیں بھیجتا ہے۔ یہ یونٹ ٹیسٹ کے دوران POST کی درخواستوں کو Moneris ادائیگی API میں نقل کرتا ہے، جس سے ڈویلپر کو یہ دیکھنے کی اجازت ملتی ہے کہ بیک اینڈ کامیاب اور ناکام ٹرانزیکشنز کو کیسے ہینڈل کرتا ہے۔
expect() چائی لائبریری میں ایک بنیادی دعوے کا فنکشن۔ یونٹ ٹیسٹ کے تناظر میں، یہ تعین کرتا ہے کہ آیا مخصوص شرائط پوری ہیں یا نہیں۔ اس کا استعمال اس بات کو یقینی بنانے کے لیے کیا جاتا ہے کہ ادائیگی کے اختتامی نقطہ کے ذریعے واپس کیے گئے ردعمل کی کیفیت اور پیغام مطلوبہ نتائج سے مماثل ہے۔

مونیرس چیک آؤٹ انٹیگریشن اور اسکرپٹ ورک فلو کو سمجھنا

شامل فرنٹ اینڈ اسکرپٹ Moneris Checkout سسٹم کو جاوا اسکرپٹ کے ذریعے ویب سائٹ میں ضم کرتا ہے۔ بنیادی فعالیت کی شروعات کے ذریعے Moneris چیک آؤٹ کی ایک مثال قائم کرنے کے ساتھ ہوتی ہے۔ monerisCheckout() کنسٹرکٹر یہ مثال آپ کی ویب سائٹ اور Moneris کی ادائیگی کی پروسیسنگ سروس کے درمیان ایک انٹرفیس کا کام کرتی ہے۔ حکم سیٹ موڈ() یہ بتاتا ہے کہ آیا ماحول کو جانچ کے لیے "qa" پر سیٹ کیا جانا چاہیے یا پیداوار کے لیے "لائیو" پر، جو کہ ترقی کے مراحل کے دوران اہم ہے۔ "qa" کو منتخب کر کے، ڈویلپرز حقیقی دنیا کے اخراجات اٹھائے بغیر ٹرانزیکشنز کو نقل کر سکتے ہیں، ایک محفوظ ٹیسٹنگ گراؤنڈ بنا سکتے ہیں۔

چیک آؤٹ مثال بننے کے بعد، setCheckoutDiv() کمانڈ Moneris چیک آؤٹ فارم کو ایک مخصوص HTML div سے جوڑتا ہے۔ یہ وہ جگہ ہے جہاں صفحہ پر ادائیگی کا فارم ظاہر ہوگا۔ یہ اس بات کی ضمانت دیتا ہے کہ ادائیگی کے فارم کی بصری عکاسی ویب سائٹ کے ایک مخصوص علاقے میں ظاہر ہوتی ہے، جس سے طریقہ کار ہموار اور آپ کے موجودہ ڈیزائن میں ضم ہوجاتا ہے۔ ہماری مثال میں، Moneris فارم کو "monerisCheckout" ID کے ساتھ div میں داخل کیا جاتا ہے۔ یہ div Moneris کے متحرک طور پر بھرے ہوئے مواد کے لیے پلیس ہولڈر کے طور پر کام کرتا ہے، جس میں کلائنٹ کی ادائیگی کے ان پٹ فیلڈز اور بٹنز شامل ہیں۔

اس کے بعد اسکرپٹ پر عمل ہوتا ہے۔ سیٹ کال بیک()ڈیولپر کو چیک آؤٹ کے عمل کے لیے مخصوص ایونٹ ہینڈلنگ کو ترتیب دینے کی اجازت دیتا ہے۔ خاص طور پر، "page_loaded" کے لیے کال بیک فنکشن کے ساتھ منسلک ہے۔ myPageLoad, اس بات کی ضمانت دیتا ہے کہ جب صفحہ مکمل طور پر لوڈ ہو جائے تو اضافی حسب ضرورت کارروائیاں (جیسے لاگنگ ڈیٹا) ہو سکتی ہیں۔ یہ فنکشن صارف کے تجربے کو کس طرح سنبھالا جاتا ہے اس میں لچک پیدا کرنے کی اجازت دیتا ہے۔ کے مواد کو لاگ ان کرنا سابق اندر اعتراض myPageLoad() ڈیبگنگ میں ڈویلپرز کی مدد کرتا ہے ڈیٹا Moneris کی واپسی پر ریئل ٹائم فیڈ بیک فراہم کر کے۔

آخر میں، بیک اینڈ اسکرپٹ ادائیگی کے ڈیٹا کی سرور سائڈ رسید کو ہینڈل کرتا ہے۔ استعمال کرنا Express.js Node.js میں، روٹ app.post() ٹرانزیکشن مکمل ہونے کے بعد Moneris سے POST کی درخواستیں وصول کرنے کی تعریف کی گئی ہے۔ یہ اختتامی نقطہ واپسی JSON پر کارروائی کرتا ہے، چیک کرتا ہے۔ جواب_کوڈ یہ دیکھنے کے لیے کہ آیا ادائیگی کامیاب رہی۔ اگر کامیاب ہوتا ہے تو، لین دین کا ڈیٹا (جیسے ٹکٹ نمبر) کو لاگ ان یا ڈیٹا بیس میں داخل کیا جا سکتا ہے۔ مناسب اسٹیٹس کوڈز اور پیغامات واپس کرکے، بیک اینڈ فرنٹ اینڈ کے ساتھ ہموار کنکشن کو قابل بناتا ہے، صارف کو اہم فیڈ بیک فراہم کرتا ہے، جیسے کہ لین دین کامیاب ہوا یا ناکام۔

جاوا اسکرپٹ کے ساتھ مونیرس چیک آؤٹ انٹیگریشن: فرنٹ اینڈ اور بیک اینڈ حل

Moneris Checkout فارم کو شامل کرنے اور لین دین کے جوابات کو ہینڈل کرنے کے لیے JavaScript کا استعمال کرتے ہوئے فرنٹ اینڈ حل۔

// 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 اور ایکسپریس کے ساتھ بیک اینڈ حل: ادائیگی کے ڈیٹا کو ہینڈل کرنا

Moneris کے بعد از ادائیگی ڈیٹا کو منظم کرنے کے لیے Node.js اور Express کا استعمال کرتے ہوئے بیک اینڈ حل

// 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');
});

موچا اور چائی کے ساتھ بیک اینڈ پیمنٹ ہینڈلنگ کی جانچ کرنے والا یونٹ

منی ہینڈلنگ کی فعالیت کو درست کرنے کے لیے موچا اور چائی کے ساتھ بیک اینڈ یونٹ ٹیسٹنگ

// 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 چیک آؤٹ انٹیگریشن کو بڑھانا

Moneris Checkout انضمام کے ساتھ کام کرتے وقت، ڈویلپرز اکثر صارف کے تجربے کو بہتر بنانے کے لیے چیک آؤٹ کے عمل کو ذاتی نوعیت کا بنانے کے طریقے تلاش کرتے ہیں۔ چیک آؤٹ فارم UI اجزاء اپنی مرضی کے مطابق کیا جا سکتا ہے، جو ایک کم معروف فنکشن ہے۔ Moneris کاروباروں کو چیک آؤٹ صفحہ کی ظاہری شکل اور ترتیب کو اپنی مرضی کے مطابق کرنے کی اجازت دیتا ہے، اور انہیں اپنی برانڈنگ کے ساتھ سیدھ میں لانے کی اجازت دیتا ہے۔ اس میں بٹن لے آؤٹ، فارم فیلڈز، اور حتیٰ کہ الفاظ میں ترمیم کرنا شامل ہے تاکہ اختتامی صارفین کے لیے عمل کو آسان بنایا جا سکے اور تبادلوں میں اضافہ ہو۔

جانچنے کے لیے ایک اور عنصر بنیادی ادائیگیوں کے علاوہ لین دین کی اقسام کا استعمال ہے۔ Moneris میں پہلے سے اجازت دینے جیسی صلاحیتیں ہیں، جس میں لین دین کی رقم کارڈ پر محفوظ کی جاتی ہے لیکن فوری طور پر چارج نہیں کیا جاتا۔ یہ فعالیت خاص طور پر ہوٹلوں اور گاڑیوں کے کرایے جیسے علاقوں میں اہم ہے، جہاں حتمی قیمتیں مختلف ہو سکتی ہیں۔ انضمام ایک ہی استعمال کرتے ہوئے بہت سی لین دین کی اقسام کو سنبھال سکتا ہے۔ API, اسے مختلف استعمال کے معاملات کے لیے ورسٹائل بناتا ہے۔

کسی بھی ادائیگی کے انضمام میں سیکیورٹی اولین ترجیح ہے، اور Moneris Checkout میں ٹوکنائزیشن اور دھوکہ دہی کی روک تھام جیسی ٹیکنالوجیز شامل ہیں۔ ٹوکنائزیشن کارڈ کی حساس معلومات کو ٹوکن کے ساتھ بدل دیتی ہے، لہذا آپ کے سسٹمز پر صارفین کا ڈیٹا کبھی بھی ظاہر نہیں ہوتا ہے۔ حفاظتی اقدامات کا نفاذ، جیسے کہ فراڈ کا پتہ لگانے والی ٹیکنالوجیز اور PCI DSS کی تعمیل، ڈرامائی طور پر آن لائن لین دین سے منسلک خطرات کو کم کر سکتی ہے۔

مونیرس چیک آؤٹ انٹیگریشن کے بارے میں عام سوالات

  1. Moneris چیک آؤٹ کیا ہے؟
  2. Moneris Checkout ایک ادائیگی کا گیٹ وے حل ہے جو کاروباروں کو اپنی ویب سائٹ کے ذریعے ادائیگیوں کو محفوظ طریقے سے قبول کرنے کے قابل بناتا ہے۔ یہ حسب ضرورت چیک آؤٹ فارم فراہم کرتا ہے اور ادائیگی کے مختلف طریقوں کو قبول کرتا ہے۔
  3. میں Moneris چیک آؤٹ فارم کو کس طرح اپنی مرضی کے مطابق بنا سکتا ہوں؟
  4. Moneris API آپ کو بٹن اور ان پٹ فیلڈز جیسے عناصر کو تبدیل کرکے چیک آؤٹ فارم کے ڈیزائن کو اپنی مرضی کے مطابق کرنے کی اجازت دیتا ہے۔ جیسے کمانڈ استعمال کریں۔ setCustomStyle() فارم میں اپنے برانڈ کا انداز شامل کرنے کے لیے۔
  5. ماحول کو "qa" پر ترتیب دینے کی کیا اہمیت ہے؟
  6. ماحول کو "qa" کے ساتھ سیٹ کرنا setMode("qa") آپ کو حقیقی ادائیگیوں پر کارروائی کیے بغیر لین دین کو محفوظ طریقے سے جانچنے کی اجازت دیتا ہے۔
  7. میں اجازت سے پہلے کے لین دین کو کیسے ہینڈل کروں؟
  8. پیشگی اجازت کا انتظام کرنے کے لیے، شامل کریں۔ action: "preauth" آپ کی JSON درخواست میں دلیل۔ یہ گاہک کے کارڈ کو فوری طور پر چارج کرنے کے بجائے اسے روک دے گا۔
  9. Moneris Checkout کی طرف سے فراہم کردہ حفاظتی اقدامات کیا ہیں؟
  10. Moneris ٹوکنائزیشن کو سپورٹ کرتا ہے، جو کریڈٹ کارڈ کی حساس معلومات کو ٹوکن سے بدل دیتا ہے۔ کے ساتھ تعمیل PCI DSS یقین دلاتا ہے کہ آپ کا انضمام صنعت کی حفاظت کی ضروریات کو پورا کرتا ہے۔

مونیرس چیک آؤٹ انٹیگریشن پر حتمی خیالات

Moneris Checkout کو JavaScript کے ساتھ کامیابی کے ساتھ مربوط کرنے کے لیے، دونوں فرنٹ اینڈ اور بیک اینڈ سیٹ اپ کو احتیاط سے پلان کیا جانا چاہیے۔ صارفین کو چیک آؤٹ کا ایک اچھا تجربہ فراہم کرنے کے لیے اس بات کو یقینی بنانے کی ضرورت ہوتی ہے کہ لین دین کی تفصیلات، جیسے کہ ٹکٹ نمبر، مناسب طریقے سے کیپچر کیے گئے ہوں۔

QA ماحول میں جانچ کرنا اور اپنے ادائیگی کے فارم کو صحیح طریقے سے ترتیب دینے سے آپ کو مسائل کا جلد پتہ لگانے میں مدد ملے گی۔ صحیح تکنیک کے ساتھ، آپ ایک ہموار اور محفوظ ادائیگی کا طریقہ کار بنا سکتے ہیں جو آپ کی کمپنی کے اہداف کے مطابق ہو اور کلائنٹ کی خوشی کو یقینی بنائے۔

مونیرس چیک آؤٹ انٹیگریشن کے لیے حوالہ جات اور وسائل
  1. یہ مضمون مونیرس چیک آؤٹ انٹیگریشن دستاویزات اور API حوالہ پر مبنی ہے۔ مزید تفصیلی معلومات کے لیے، آفیشل Moneris GitHub ریپوزٹری ملاحظہ کریں: مونیرس چیک آؤٹ گٹ ہب .
  2. جاوا اسکرپٹ پر مبنی ادائیگی کے انضمام کے بارے میں اضافی رہنمائی مونریس ڈویلپر پورٹل پر مل سکتی ہے: Moneris ڈویلپر پورٹل .
  3. JSON کالوں کو سنبھالنے اور لین دین کے جوابات کیپچر کرنے کے بہترین طریقوں کے لیے، JavaScript SDK دستاویزات سے مشورہ کریں: Moneris JavaScript SDK .