$lang['tuto'] = "টিউটোরিয়াল"; ?>$lang['tuto'] = "টিউটোরিয়াল"; ?>$lang['tuto'] = "টিউটোরিয়াল"; ?> জাভাস্ক্রিপ্টের সাথে

জাভাস্ক্রিপ্টের সাথে মোনেরিস চেকআউটকে একীভূত করা: JSON প্রতিক্রিয়া সমস্যাগুলি পরিচালনা করা

জাভাস্ক্রিপ্টের সাথে মোনেরিস চেকআউটকে একীভূত করা: JSON প্রতিক্রিয়া সমস্যাগুলি পরিচালনা করা
জাভাস্ক্রিপ্টের সাথে মোনেরিস চেকআউটকে একীভূত করা: JSON প্রতিক্রিয়া সমস্যাগুলি পরিচালনা করা

মোনারিস চেকআউটের বিরামহীন ইন্টিগ্রেশন: JSON প্রতিক্রিয়ার সমস্যা সমাধান করা

Moneris Checkout হল একটি সাধারণভাবে ব্যবহৃত পেমেন্ট গেটওয়ে সিস্টেম যা ব্যবসাগুলিকে অনলাইন লেনদেন দ্রুত করতে সাহায্য করে। যাইহোক, এটিকে আপনার ওয়েবসাইটে একত্রিত করা কঠিন হতে পারে, বিশেষ করে যখন প্রয়োজনীয় ডেটা, যেমন একটি টিকিট নম্বর, JSON কল থেকে ফেরত দেওয়া হয় না। এই ধরনের ত্রুটিগুলি লেনদেনের নিয়মিত প্রবাহকে বাধাগ্রস্ত করতে পারে, তাই ডিবাগিং ইঞ্জিনিয়ারদের জন্য একটি প্রয়োজনীয় দক্ষতা।

একটি পুরানো হোস্টেড পেমেন্ট পেজ (HPP) Moneris-এর সাথে প্রতিস্থাপন এবং তাদের JavaScript ইন্টারফেস ব্যবহার করার সময় চেকআউটটি কীভাবে সঠিকভাবে কনফিগার করতে হয় তা বোঝা গুরুত্বপূর্ণ। আপনার ক্লায়েন্টদের একটি নির্বিঘ্ন অভিজ্ঞতা প্রদান করতে, নিশ্চিত করুন যে পৃষ্ঠাটি লেনদেনের বিবরণ পোস্ট করে এবং সঠিক প্রতিক্রিয়া পুনরুদ্ধার করে।

অনেক ডেভেলপারদের মনেরিসের ইন্টিগ্রেশন ডকুমেন্টেশন অনুসরণ করতে সমস্যা হয়। জটিলতা কলব্যাক পরিচালনা, লেনদেনের ডেটা আপলোড এবং রিয়েল টাইমে ফলাফল পড়া থেকে উদ্ভূত হয়, এগুলি সবই একটি সফল ইন্টিগ্রেশনের জন্য প্রয়োজন৷ আপনি আপনার ইন্টিগ্রেশন যাত্রা শুরু করার সাথে সাথে, একটি পরিষ্কার এবং ভালভাবে নথিভুক্ত পদ্ধতি থাকা উপকারী হতে পারে।

এই পোস্টে, আমরা কীভাবে আপনার Moneris ইন্টিগ্রেশনে টিকিট নম্বর হারিয়ে যাওয়ার সমস্যাটি সমাধান করব তা দেখব। আপনি যদি প্রয়োজনীয় কোড স্নিপেট এবং সমস্যা সমাধানের কৌশলগুলি পর্যালোচনা করেন তবে এই সমস্যাটি মোকাবেলা করার জন্য আপনি আরও ভালভাবে প্রস্তুত থাকবেন।

আদেশ ব্যবহারের উদাহরণ
monerisCheckout() এটি Moneris JavaScript SDK থেকে কনস্ট্রাক্টর ফাংশন। এটি চেকআউট পদ্ধতি শুরু করে। এই স্ক্রিপ্টটি Moneris চেকআউট উইজেটের একটি নতুন উদাহরণ তৈরি করে, যা আপনাকে আপনার ওয়েবসাইটে পেমেন্ট গেটওয়ে এম্বেড করতে দেয়।
setMode() Moneris লেনদেনের জন্য পরিবেশ নির্দিষ্ট করে। এই উদাহরণে, "qa" একটি পরীক্ষার পরিবেশকে বোঝায় যেখানে আপনি প্রকৃত অর্থপ্রদান প্রক্রিয়াকরণ ছাড়াই নিরাপদে লেনদেন অনুকরণ করতে পারেন। কার্ডগুলি চার্জ না করেই ইন্টিগ্রেশন পরীক্ষা করার জন্য এটি প্রয়োজনীয়।
setCheckoutDiv() এই কমান্ডটি Moneris চেকআউটকে একটি নির্দিষ্ট HTML ধারক (div) এর সাথে সংযুক্ত করে। "monerisCheckout" আইডি সরবরাহ করার মাধ্যমে, পেমেন্ট উইজেটটি এই ডিভের মধ্যে প্রদর্শিত হয়, আপনাকে পৃষ্ঠায় ফর্মটি কোথায় প্রদর্শিত হবে তা নির্বাচন করার অনুমতি দেয়।
setCallback() চেকআউট প্রক্রিয়া চলাকালীন, একটি নির্দিষ্ট ইভেন্টে একটি ফাংশন বরাদ্দ করুন। এই পরিস্থিতিতে, কাস্টম ফাংশন "myPageLoad" ইভেন্ট "page_loaded" পরিচালনা করে, চেকআউট পৃষ্ঠাটি সম্পূর্ণরূপে লোড হয়ে গেলে বিকাশকারীদের কোড চালানোর অনুমতি দেয়।
startCheckout() Moneris চেকআউট প্রক্রিয়া শুরু করুন. কল করা হলে, এই ফাংশনটি অর্থপ্রদানের ফর্ম রেন্ডার করে এবং লেনদেন প্রক্রিয়াকরণের জন্য এটিকে ব্যাকএন্ড সিস্টেমের সাথে সংযুক্ত করে অর্থপ্রবাহ শুরু করে।
app.post() এটি একটি Express.js রুট হ্যান্ডলার যা POST অনুরোধগুলি পরিচালনা করে৷ এই স্ক্রিপ্টটি একটি লেনদেন শেষ হওয়ার পরে Moneris ব্যাকএন্ড থেকে অর্থপ্রদানের রসিদ গ্রহণ করে, যা অর্থপ্রদানের ডেটা সংরক্ষণ বা নিশ্চিতকরণ জারি করার মতো অতিরিক্ত প্রক্রিয়াকরণের অনুমতি দেয়।
bodyParser.json() ইনকামিং JSON অনুরোধ পার্স করার জন্য Express-এ একটি মিডলওয়্যার ফাংশন। এই ক্ষেত্রে এটি বিশেষভাবে গুরুত্বপূর্ণ কারণ Moneris JSON ফর্ম্যাটে লেনদেনের ডেটা প্রেরণ করে। এই কমান্ড গ্যারান্টি দেয় যে সার্ভার-সাইড প্রক্রিয়াকরণের জন্য অনুরোধের বডি সঠিকভাবে প্রক্রিয়া করা হয়েছে।
chai.request() এই কমান্ডটি Chai HTTP টেস্টিং প্যাকেজের অংশ যা পরীক্ষার ক্ষেত্রে HTTP অনুরোধ পাঠায়। এটি ইউনিট পরীক্ষার সময় Moneris পেমেন্ট API-এ POST অনুরোধের প্রতিলিপি করে, যা বিকাশকারীকে দেখতে দেয় যে ব্যাকএন্ড সফল এবং ব্যর্থ লেনদেনগুলি কীভাবে পরিচালনা করে।
expect() চাই লাইব্রেরিতে একটি মূল দাবি ফাংশন। ইউনিট পরীক্ষার পরিপ্রেক্ষিতে, এটি নির্দিষ্ট শর্তগুলি সন্তুষ্ট কিনা তা নির্ধারণ করে। এটি নিশ্চিত করতে ব্যবহার করা হয় যে পেমেন্ট এন্ডপয়েন্ট দ্বারা প্রত্যাবর্তিত প্রতিক্রিয়ার স্থিতি এবং বার্তাটি লক্ষ্য করা ফলাফলের সাথে মেলে।

মোনারিস চেকআউট ইন্টিগ্রেশন এবং স্ক্রিপ্ট ওয়ার্কফ্লো বোঝা

ফ্রন্ট-এন্ড স্ক্রিপ্ট অন্তর্ভুক্ত করে মোনারিস চেকআউট সিস্টেমকে জাভাস্ক্রিপ্টের মাধ্যমে একটি ওয়েবসাইটে সংহত করে। প্রাথমিক কার্যকারিতা এর মাধ্যমে Moneris চেকআউটের একটি উদাহরণ স্থাপনের সাথে শুরু হয় monerisCheckout() নির্মাণকারী এই উদাহরণটি আপনার ওয়েবসাইট এবং Moneris এর পেমেন্ট প্রসেসিং পরিষেবার মধ্যে একটি ইন্টারফেস হিসাবে কাজ করে। আদেশ সেটমোড() পরিবেশকে পরীক্ষার জন্য "qa" বা উৎপাদনের জন্য "লাইভ" সেট করা উচিত কিনা তা নির্দিষ্ট করে, যা উন্নয়নের পর্যায়ে গুরুত্বপূর্ণ। "qa" নির্বাচন করে, ডেভেলপাররা একটি নিরাপদ পরীক্ষার মাঠ তৈরি করে বাস্তব-বিশ্বের খরচ না করেই লেনদেনের প্রতিলিপি করতে পারে।

একবার চেকআউট দৃষ্টান্ত নির্মিত হয়, setCheckoutDiv() কমান্ড Moneris চেকআউট ফর্মটিকে একটি নির্দিষ্ট HTML ডিভিতে সংযুক্ত করে। পেইজে পেমেন্ট ফর্ম দেখা যাবে। এটি গ্যারান্টি দেয় যে পেমেন্ট ফর্মের ভিজ্যুয়াল চিত্রটি ওয়েবসাইটের একটি নির্দিষ্ট অঞ্চলে দেখায়, প্রক্রিয়াটিকে নির্বিঘ্ন করে এবং আপনার বিদ্যমান ডিজাইনে একত্রিত করে। আমাদের উদাহরণে, Moneris ফর্মটি "monerisCheckout" আইডি সহ ডিভিতে ঢোকানো হয়েছে। এই ডিভটি মোনারিসের গতিশীলভাবে লোড হওয়া সামগ্রীর জন্য একটি স্থানধারক হিসাবে কাজ করে, যার মধ্যে ক্লায়েন্ট পেমেন্ট ইনপুট ক্ষেত্র এবং বোতাম অন্তর্ভুক্ত রয়েছে।

তারপর স্ক্রিপ্ট চালানো হয় সেট কলব্যাক(), ডেভেলপারকে চেকআউট প্রক্রিয়ার জন্য নির্দিষ্ট ইভেন্ট হ্যান্ডলিং কনফিগার করার অনুমতি দেয়। বিশেষত, "page_loaded" এর জন্য কলব্যাক ফাংশনের সাথে সংযুক্ত myPageLoad, নিশ্চিত করে যে পৃষ্ঠাটি সম্পূর্ণ লোড হয়ে গেলে, অতিরিক্ত কাস্টম অ্যাকশন (যেমন ডেটা লগিং) ঘটতে পারে। এই ফাংশনটি ব্যবহারকারীর অভিজ্ঞতা কীভাবে পরিচালনা করা হয় তাতে নমনীয়তার জন্য অনুমতি দেয়। এর বিষয়বস্তু লগিং প্রাক্তন মধ্যে বস্তু myPageLoad() মোনারিস রিটার্ন ডেটার উপর রিয়েল-টাইম প্রতিক্রিয়া প্রদান করে ডেভেলপারদের ডিবাগিংয়ে সহায়তা করে।

অবশেষে, ব্যাক-এন্ড স্ক্রিপ্ট সার্ভার-সাইড পেমেন্ট ডেটার রসিদ পরিচালনা করে। ব্যবহার করে Express.js Node.js-এ, রুট app.post() একবার লেনদেন সম্পূর্ণ হলে Moneris থেকে POST অনুরোধ পাওয়ার জন্য সংজ্ঞায়িত করা হয়। এই শেষপয়েন্ট প্রত্যাবর্তিত JSON প্রক্রিয়া করে, পরীক্ষা করে প্রতিক্রিয়া_কোড পেমেন্ট সফল হয়েছে কিনা দেখতে। সফল হলে, লেনদেনের ডেটা (যেমন টিকিট নম্বর) একটি ডাটাবেসে লগ করা বা প্রবেশ করা যেতে পারে। উপযুক্ত স্ট্যাটাস কোড এবং বার্তা ফেরত দিয়ে, ব্যাকএন্ড ফ্রন্টএন্ডের সাথে মসৃণ সংযোগ সক্ষম করে, ব্যবহারকারীকে সমালোচনামূলক প্রতিক্রিয়া প্রদান করে, যেমন লেনদেন সফল হয়েছে বা ব্যর্থ হয়েছে।

জাভাস্ক্রিপ্টের সাথে মোনারিস চেকআউট ইন্টিগ্রেশন: ফ্রন্ট-এন্ড এবং ব্যাক-এন্ড সমাধান

মোনারিস চেকআউট ফর্মকে অন্তর্ভুক্ত করতে এবং লেনদেনের প্রতিক্রিয়াগুলি পরিচালনা করতে জাভাস্ক্রিপ্ট ব্যবহার করে ফ্রন্ট-এন্ড সমাধান৷

// 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 এবং Express সহ ব্যাক-এন্ড সলিউশন: পেমেন্ট ডেটা হ্যান্ডলিং

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

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();
            });
    });
});

কাস্টমাইজেশন বিকল্পগুলির সাথে মোনারিস চেকআউট ইন্টিগ্রেশন উন্নত করা

মোনারিস চেকআউট ইন্টিগ্রেশনের সাথে কাজ করার সময়, বিকাশকারীরা প্রায়শই ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে চেকআউট প্রক্রিয়াটিকে ব্যক্তিগতকৃত করার পদ্ধতিগুলি সন্ধান করে। চেকআউট ফর্ম এর UI উপাদান কাস্টমাইজ করা যেতে পারে, যা একটি কম পরিচিত ফাংশন। Moneris ব্যবসাগুলিকে চেকআউট পৃষ্ঠার চেহারা এবং বিন্যাস কাস্টমাইজ করার অনুমতি দেয়, তাদের ব্র্যান্ডিংয়ের সাথে এটিকে সারিবদ্ধ করার অনুমতি দেয়। শেষ ব্যবহারকারীদের জন্য প্রক্রিয়াটিকে সহজ করে তুলতে এবং রূপান্তর বাড়ানোর জন্য এর মধ্যে বোতামের লেআউট, ফর্ম ক্ষেত্র এবং এমনকি শব্দগুলি পরিবর্তন করা জড়িত।

পরীক্ষা করার আরেকটি কারণ হল মৌলিক পেমেন্ট ব্যতীত অন্য ধরনের লেনদেনের ব্যবহার। মোনারিসের প্রাক-অনুমোদনের মতো ক্ষমতা রয়েছে, যেখানে একটি লেনদেনের পরিমাণ কার্ডে সংরক্ষণ করা হয় কিন্তু অবিলম্বে চার্জ করা হয় না। হোটেল এবং অটোমোবাইল ভাড়ার মতো এলাকায় এই কার্যকারিতা বিশেষভাবে গুরুত্বপূর্ণ, যেখানে চূড়ান্ত হার ভিন্ন হতে পারে। ইন্টিগ্রেশন একই ব্যবহার করে অনেক ধরনের লেনদেন পরিচালনা করতে পারে API, এটি বিভিন্ন ব্যবহারের ক্ষেত্রে বহুমুখী করে তোলে।

যেকোনো পেমেন্ট ইন্টিগ্রেশনে নিরাপত্তা একটি শীর্ষ অগ্রাধিকার, এবং Moneris Checkout টোকেনাইজেশন এবং জালিয়াতি প্রতিরোধের মতো প্রযুক্তি অন্তর্ভুক্ত করে। টোকেনাইজেশন একটি টোকেনের সাথে সংবেদনশীল কার্ডের তথ্য প্রতিস্থাপন করে, তাই আপনার সিস্টেমে ভোক্তার ডেটা কখনই প্রকাশিত হয় না। নিরাপত্তা ব্যবস্থা বাস্তবায়ন করা, যেমন জালিয়াতি সনাক্তকরণ প্রযুক্তি এবং PCI DSS সম্মতি, নাটকীয়ভাবে অনলাইন লেনদেনের সাথে যুক্ত ঝুঁকি কমাতে পারে।

মোনারিস চেকআউট ইন্টিগ্রেশন সম্পর্কে সাধারণ প্রশ্ন

  1. Moneris চেকআউট কি?
  2. Moneris Checkout হল একটি পেমেন্ট গেটওয়ে সমাধান যা ব্যবসাগুলিকে তাদের ওয়েবসাইটের মাধ্যমে নিরাপদে অর্থপ্রদান গ্রহণ করতে সক্ষম করে। এটি কাস্টমাইজযোগ্য চেকআউট ফর্ম সরবরাহ করে এবং বিভিন্ন অর্থপ্রদানের উপায় গ্রহণ করে।
  3. আমি কিভাবে Moneris Checkout ফর্ম কাস্টমাইজ করতে পারি?
  4. Moneris API আপনাকে বোতাম এবং ইনপুট ক্ষেত্রগুলির মতো উপাদানগুলি পরিবর্তন করে চেকআউট ফর্মের নকশা কাস্টমাইজ করতে দেয়। যেমন কমান্ড ব্যবহার করুন setCustomStyle() ফর্মে আপনার ব্র্যান্ডের স্টাইল যোগ করতে।
  5. পরিবেশ "qa" সেট করার গুরুত্ব কী?
  6. পরিবেশকে "qa" এর সাথে সেট করা setMode("qa") প্রকৃত অর্থপ্রদান প্রক্রিয়াকরণ ছাড়াই আপনাকে নিরাপদে লেনদেন পরীক্ষা করতে দেয়।
  7. আমি কিভাবে একটি প্রাক-অনুমোদন লেনদেন পরিচালনা করব?
  8. প্রাক-অনুমোদন পরিচালনা করতে, অন্তর্ভুক্ত করুন action: "preauth" আপনার JSON অনুরোধে যুক্তি। এটি অবিলম্বে চার্জ করার পরিবর্তে গ্রাহকের কার্ডে আটকে রাখবে।
  9. Moneris Checkout দ্বারা প্রদত্ত নিরাপত্তা ব্যবস্থা কি?
  10. Moneris টোকেনাইজেশন সমর্থন করে, যা একটি টোকেন দিয়ে সংবেদনশীল ক্রেডিট কার্ড তথ্য প্রতিস্থাপন করে। সঙ্গে সম্মতি PCI DSS নিশ্চিত করে যে আপনার ইন্টিগ্রেশন শিল্প নিরাপত্তা প্রয়োজনীয়তা পূরণ করে।

মোনারিস চেকআউট ইন্টিগ্রেশনের চূড়ান্ত চিন্তাভাবনা

জাভাস্ক্রিপ্টের সাথে মোনারিস চেকআউটকে সফলভাবে একীভূত করার জন্য, সামনের দিকের এবং পিছনের দিকের সেটআপগুলিকে সাবধানে পরিকল্পনা করতে হবে৷ ব্যবহারকারীদের জন্য একটি ভাল চেকআউট অভিজ্ঞতা প্রদানের জন্য লেনদেনের বিবরণ যেমন টিকিট নম্বর যথাযথভাবে ক্যাপচার করা হয়েছে তা নিশ্চিত করা প্রয়োজন।

একটি QA পরিবেশে পরীক্ষা করা এবং আপনার অর্থপ্রদানের ফর্ম সঠিকভাবে গঠন করা আপনাকে সমস্যাগুলি প্রথম দিকে সনাক্ত করতে সাহায্য করবে৷ সঠিক কৌশলের সাহায্যে, আপনি একটি নিরবচ্ছিন্ন এবং নিরাপদ অর্থপ্রদানের পদ্ধতি তৈরি করতে পারেন যা আপনার কোম্পানির লক্ষ্যগুলির জন্য উপযুক্ত এবং ক্লায়েন্টের সুখের নিশ্চয়তা দেয়৷

মোনারিস চেকআউট ইন্টিগ্রেশনের জন্য রেফারেন্স এবং রিসোর্স
  1. এই নিবন্ধটি Moneris Checkout ইন্টিগ্রেশন ডকুমেন্টেশন এবং API রেফারেন্সের উপর ভিত্তি করে তৈরি করা হয়েছে। আরো বিস্তারিত তথ্যের জন্য, অফিসিয়াল Moneris GitHub সংগ্রহস্থলে যান: Moneris Checkout GitHub .
  2. জাভাস্ক্রিপ্ট-ভিত্তিক পেমেন্ট ইন্টিগ্রেশন সেট আপ করার বিষয়ে অতিরিক্ত নির্দেশিকা Moneris বিকাশকারী পোর্টালে পাওয়া যাবে: মোনারিস ডেভেলপার পোর্টাল .
  3. JSON কল পরিচালনা এবং লেনদেনের প্রতিক্রিয়া ক্যাপচার করার সর্বোত্তম অনুশীলনের জন্য, JavaScript SDK ডকুমেন্টেশন দেখুন: Moneris JavaScript SDK .