পেমেন্ট গেটওয়ে গাইড
ট্রাভেল বুকিং ওয়েবসাইটের জন্য Razorpay API ইন্টিগ্রেশন
Razorpay ভারতের একটি পেমেন্ট গেটওয়ে, যা রুপিতে কার্ড, UPI, নেটব্যাংকিং ও ওয়ালেট গ্রহণ করে। এই গাইডে বোঝানো হয়েছে ফ্লাইট, হোটেল বা ট্যুর বুকিংয়ে Razorpay পেমেন্ট কীভাবে কাজ করে, এবং PHPTRAVELS-এ এর সত্যিকারের অবস্থা: Razorpay আজ তৈরি কানেক্টর নয়, তবে আপনার মালিকানাধীন সোর্স কোডের ওপর কাস্টম ইন্টিগ্রেশন হিসেবে যোগ করা যায়।
- কার্ড, UPI, নেটব্যাংকিং, ওয়ালেট
- অর্ডার, Checkout, ক্যাপচার
- সিগনেচার ও ওয়েবহুক যাচাই
- পূর্ণ ও আংশিক রিফান্ড
এক নজরে Razorpay
Razorpay কী, এবং PHPTRAVELS-এ এর অবস্থান কোথায়
Razorpay একটি ভারতীয় পেমেন্ট গেটওয়ে। ভারতীয় গ্রাহকদের কাছে বিক্রি করা ট্রাভেল ব্যবসা চেকআউটে তাদের প্রত্যাশিত পেমেন্ট পদ্ধতি দিতে এটি ব্যবহার করে: ডেবিট ও ক্রেডিট কার্ড, UPI, নেটব্যাংকিং এবং জনপ্রিয় ওয়ালেট, যার সংগ্রহ ও নিষ্পত্তি হয় ভারতীয় রুপিতে ব্যবসায়ীর নিজের Razorpay অ্যাকাউন্টে।
PHPTRAVELS একটি সেল্ফ-হোস্টেড ট্রাভেল বুকিং প্ল্যাটফর্ম, যার সঙ্গে সম্পূর্ণ সোর্স কোড থাকে। এর তৈরি পেমেন্ট গেটওয়েগুলো একটি লাইভ তালিকা থেকে আসে, যা আপনি নিজের মার্চেন্ট ক্রেডেনশিয়াল দিয়ে চালু করেন। Razorpay আজ সেই তালিকায় নেই, তাই অ্যাডমিনে এর জন্য এখনও কোনো সুইচ নেই।
তার মানে এই নয় যে আপনি এটি ব্যবহার করতে পারবেন না। কোড আপনার মালিকানায় বলে Razorpay কে কাস্টম API ইন্টিগ্রেশন হিসেবে যোগ করা যায়, আর ভারতের জন্য একটি তৈরি গেটওয়ে আগেই আছে: Cashfree। পেমেন্ট গেটওয়ে ইন্টিগ্রেশন পেজে এখনই চালু করা যায় এমন সব গেটওয়ের তালিকা আছে।

Razorpay ফ্যাক্ট শিট
- এটি কী
- ভারতের ব্যবসার জন্য একটি পেমেন্ট গেটওয়ে
- পেমেন্ট পদ্ধতি
- কার্ড, UPI, নেটব্যাংকিং ও ওয়ালেট
- মুদ্রা
- INR-এ সংগ্রহ ও নিষ্পত্তি; অঙ্ক পয়সায় পাঠানো হয়
- API কী
- Key ID ও Key Secret, টেস্ট মোড ও লাইভ মোডের জন্য আলাদা
- PHPTRAVELS-এ অবস্থা
- তৈরি কানেক্টর নয়। সঙ্গে দেওয়া সোর্স কোডের ওপর কাস্টম ইন্টিগ্রেশন হিসেবে পাওয়া যায়
- ভারতে আজ তৈরি
- Cashfree, আপনার নিজের Cashfree অ্যাকাউন্ট দিয়ে অ্যাডমিনে চালু হয়
পেমেন্ট প্রবাহ
ট্রাভেল বুকিংয়ের জন্য একটি Razorpay পেমেন্ট, ধাপে ধাপে
Razorpay ইন্টিগ্রেশন কাজটি ভ্রমণকারীর ব্রাউজার ও আপনার সার্ভারের মধ্যে ভাগ করে। ব্রাউজার Checkout দেখায়; সার্ভার অর্ডার তৈরি করে, ফলাফল যাচাই করে এবং ঠিক করে বুকিং কখন নিশ্চিত হবে।
- 01
আপনার সার্ভার
অর্ডার তৈরি করুন
ভ্রমণকারী পে চাপলে আপনার সার্ভার Orders API-কে পয়সায় অঙ্ক, মুদ্রা এবং বুকিং রেফারেন্স দিয়ে বানানো receipt সহ কল করে। Razorpay একটি order_id ফেরত দেয়।
- 02
ব্রাউজার
Razorpay Checkout খুলুন
বুকিং পেজ আপনার Key ID ও সেই order_id দিয়ে Checkout খোলে, ফলে ভ্রমণকারী ঠিক সেই অঙ্কই দেন যা আপনার সার্ভার নির্ধারণ করেছে।
- 03
ব্রাউজার
ভ্রমণকারী পেমেন্ট করেন
ভ্রমণকারী কার্ড, UPI, নেটব্যাংকিং বা ওয়ালেট বেছে নেন এবং ব্যাংকের চাওয়া যেকোনো ধাপ সম্পূর্ণ করেন। পেমেন্ট এখন অনুমোদিত।
- 04
ব্রাউজার
Checkout তিনটি মান ফেরত দেয়
সফল হলে Checkout razorpay_payment_id, razorpay_order_id ও razorpay_signature ফেরত দেয়, আর পেজ সেগুলো আপনার সার্ভারে পাঠায়।
- 05
আপনার সার্ভার
সিগনেচার যাচাই করুন
আপনার সার্ভার Key Secret দিয়ে order_id ও payment_id থেকে সিগনেচার আবার হিসাব করে। শুধু মিলে যাওয়া সিগনেচারই আসল পেমেন্ট বলে গণ্য হয়।
- 06
আপনার সার্ভার
পেমেন্ট ক্যাপচার করুন
স্বয়ংক্রিয় ক্যাপচারে Razorpay নিজেই ক্যাপচার করে। ম্যানুয়াল ক্যাপচারে এয়ারলাইন, হোটেল বা ট্যুর সরবরাহকারী নিশ্চিত করার পরই আপনার সার্ভার ক্যাপচার করে, ফলে ব্যর্থ বুকিংয়ের জন্য কারও টাকা কাটা হয় না।
- 07
আপনার সার্ভার
বুকিং নিশ্চিত করুন
বুকিং পরিশোধিত হয়, টিকিট বা ভাউচার ইস্যু হয় এবং Razorpay-এর payment_id বুকিং রেফারেন্সের সঙ্গে সংরক্ষিত হয়।
- 08
আপনার সার্ভারসার্ভার থেকে সার্ভার
ওয়েবহুক গ্রহণ করুন
Razorpay আপনার ওয়েবহুক URL-এ payment.captured-এর মতো ইভেন্টও পাঠায়। পেজ রিপোর্ট করার আগে যিনি ট্যাব বন্ধ করে দেন, তাঁর ক্ষেত্রে এটি কাজে আসে।
সিগনেচার ও ওয়েবহুক
দুটি যাচাই, যা Razorpay ইন্টিগ্রেশনকে নির্ভরযোগ্য রাখে
ব্রাউজার বা ইন্টারনেট থেকে আসা যেকোনো কিছু জাল হতে পারে। Razorpay ইন্টিগ্রেশন কোনো পেমেন্টকে বিশ্বাস করে শুধু তখনই, যখন এমন গোপন কী দিয়ে তৈরি সিগনেচার যাচাই হয়, যা আপনার সার্ভারের বাইরে যায় না।
1// 1. After Checkout: verify the payment signature 2$orderId = $booking["razorpay_order_id"]; // from your own record 3$paymentId = $_POST["razorpay_payment_id"]; 4$signature = $_POST["razorpay_signature"]; 5$expected = hash_hmac("sha256", $orderId . "|" . $paymentId, $keySecret); 6if (!hash_equals($expected, $signature)) { rejectPayment(); } 7markPaid($booking["ref"], $paymentId); 8 9// 2. Webhook: verify X-Razorpay-Signature over the raw body10$body = file_get_contents("php://input");11$header = $_SERVER["HTTP_X_RAZORPAY_SIGNATURE"] ?? "";12$expect = hash_hmac("sha256", $body, $webhookSecret);13if (!hash_equals($expect, $header)) { http_response_code(400); exit; }14$event = json_decode($body, true);15if (alreadyHandled($event)) exit; // repeat delivery16switch ($event["event"]) {17 case "payment.captured": confirmBooking($event); break;18 case "refund.processed": markRefunded($event); break;19}
যুক্তি বোঝানোর জন্য উদাহরণস্বরূপ সিউডো-কোড, সরাসরি বসানোর ফাইল নয়। সঠিক কলের জন্য Razorpay-এর নিজস্ব ডকুমেন্টেশন ও SDK অনুসরণ করুন।
পেমেন্ট সিগনেচার
order_id, একটি পাইপ চিহ্ন ও payment_id-এর HMAC SHA256, আপনার Key Secret কী হিসেবে ব্যবহার করে, razorpay_signature-এর সমান হতে হবে। তুলনা করুন কনস্ট্যান্ট-টাইম ফাংশন দিয়ে।
ওয়েবহুক সিগনেচার
প্রতিটি ওয়েবহুকে X-Razorpay-Signature হেডার থাকে: Razorpay ড্যাশবোর্ডে আপনার ঠিক করা ওয়েবহুক সিক্রেট কী হিসেবে ব্যবহার করে কাঁচা রিকোয়েস্ট বডির HMAC SHA256।
বারবার ডেলিভারি
ওয়েবহুক একাধিকবার বা উল্টো ক্রমে আসতে পারে। ইভেন্ট ও পেমেন্ট আইডি সংরক্ষণ করুন এবং বুকিংয়ে আগেই প্রয়োগ করা ইভেন্ট উপেক্ষা করুন।
গোপন কী থাকে সার্ভারের দিকে
শুধু Key ID ব্রাউজারে যায়। Key Secret ও ওয়েবহুক সিক্রেট থাকে সার্ভার কনফিগারেশনে, কখনও পেজ সোর্স বা মোবাইল অ্যাপে নয়।
রিফান্ড ও বাতিল
ট্রাভেল রিফান্ড খুব কমই পুরো অঙ্কের হয়
বাতিলের ফি, নো-শো নিয়ম এবং আংশিক বাতিল হওয়া ভ্রমণসূচির কারণে ট্রাভেল রিফান্ড প্রায়ই আংশিক হয়। Razorpay-এর Refunds API দুটোই সামলায়, আর ইন্টিগ্রেশন আপনার বুকিং নিয়ম অনুযায়ী অঙ্ক ঠিক করে।
পূর্ণ রিফান্ড
বিনা খরচে বাতিল করলে ক্যাপচার করা পুরো অঙ্ক ভ্রমণকারী যে পদ্ধতিতে পরিশোধ করেছিলেন সেখানেই ফেরত যায়।
আংশিক রিফান্ড
বাতিলের ফি কাটার পর সার্ভার শুধু অবশিষ্ট অঙ্ক রিফান্ড করে। অঙ্ক মূল অর্ডারের মতোই পয়সায় পাঠানো হয়।
ভ্রমণসূচির একটি অংশ
হোটেলের এক রাত বা একজন যাত্রী বাতিল করে সেই অংশ রিফান্ড করুন; ক্যাপচার করা মোট অঙ্ক পর্যন্ত আরও আংশিক রিফান্ড হতে পারে।
refund.processed
রিফান্ড ওয়েবহুক আপনার সার্ভারকে জানায় রিফান্ড কখন সম্পন্ন হলো, যাতে বুকিং ও ভ্রমণকারী সঠিক অবস্থা দেখেন।
বুকিংয়ের সঙ্গে সংরক্ষিত
প্রতিটি রিফান্ড আইডি বুকিং রেফারেন্স ও মূল payment_id-এর সঙ্গে আপনার হিসাব বিভাগের জন্য রাখা হয়।
উদাহরণ: ফি সহ বাতিল
- ক্যাপচার করা
- ₹12,500.00 amount: 1250000
- বাতিলের ফি
- ₹1,500.00 amount: 150000
- রিফান্ডের অঙ্ক
- ₹11,000.00 amount: 1100000
শুধু উদাহরণের সংখ্যা। Razorpay অঙ্ক নেয় মুদ্রার ক্ষুদ্রতম এককে, তাই ১০০ পয়সা এক রুপি।
Razorpay কীভাবে যুক্ত করবেন
Razorpay দিয়ে বা ছাড়া পেমেন্ট নেওয়ার তিনটি উপায়
আপনার টিম ও লঞ্চের তারিখের সঙ্গে মানানসই পথ বেছে নিন। তিনটিতেই টাকা আপনার নিজের মার্চেন্ট অ্যাকাউন্টে থাকে; PHPTRAVELS কখনও নিষ্পত্তির মধ্যে থাকে না।
বিকল্প ১
আপনার ডেভেলপাররা যোগ করেন
PHPTRAVELS সম্পূর্ণ সোর্স কোডসহ আসে, তাই আপনার নিজের ডেভেলপাররা বিদ্যমান গেটওয়ের পাশে Razorpay কে নতুন গেটওয়ে হিসেবে যোগ করতে পারেন: অর্ডার তৈরি, পেমেন্ট ধাপে Checkout, সিগনেচার যাচাই, ক্যাপচার, ওয়েবহুক ও রিফান্ড।
- Razorpay টেস্ট মোড কী দিয়ে তৈরি ও পরীক্ষা করুন
- বুকিং রেফারেন্সকে অর্ডার receipt হিসেবে আবার ব্যবহার করুন
- টেস্ট বুকিং পাস করলে লাইভ কী-তে যান
বিকল্প ২
PHPTRAVELS বানিয়ে দেয়
আমাদের ডেভেলপাররা আপনার জন্য Razorpay কানেক্টর কাস্টম API ইন্টিগ্রেশন হিসেবে বানাতে পারেন। আপনি প্রয়োজনীয়তা পাঠান, কাজ শুরুর আগে খরচ ও সময়সূচি পান, এবং শেষে পরীক্ষিত সোর্স কোড হাতে পান।
- কাজ শুরুর আগে কোটেশন
- Razorpay টেস্ট মোডে তৈরি
- আপনার মালিকানার সোর্স কোড হিসেবে হস্তান্তর
বিকল্প ৩
এখনই তৈরি গেটওয়ে ব্যবহার করুন
আগে লঞ্চ করতে হলে প্ল্যাটফর্মে আগে থেকে থাকা কোনো গেটওয়ে চালু করুন। ভারতের জন্য সেটি Cashfree। আজ তৈরি গেটওয়েগুলোর মধ্যে আছে:
- CashfreeCashfree সেটআপ গাইড
- Stripe
- PayPal
- xMoney
- Fawaterk
- Paystack
তৈরি গেটওয়ে
যেসব পেমেন্ট গেটওয়ে আজই চালু করা যায়
এই তালিকা সরাসরি PHPTRAVELS গেটওয়ে ডিরেক্টরি থেকে আসে। প্রতিটি অ্যাডমিনে আপনার নিজের অ্যাকাউন্ট ও কী দিয়ে চালু হয়।
Cashfree
Stripeইন্টিগ্রেশন গাইডPayPalইন্টিগ্রেশন গাইড
xMoney
Fawaterk
Paystack
Flutterwave
Adyen
MyFatoorah
SSLcommerz
Razorpay- সব ইন্টিগ্রেশন
এগুলোর যেকোনোটির পেছনের কলগুলো বুঝতে চান? পেমেন্ট গেটওয়ে API গাইড পড়ুন, Stripe পেমেন্ট ও PayPal পেমেন্ট গাইড তুলনা করুন, অথবা দেখুন B2B পোর্টালে এজেন্টরা B2B এজেন্ট ওয়ালেট থেকে কীভাবে পেমেন্ট করেন।
তৈরি কানেক্টর হিসেবে নয়। Razorpay আজ PHPTRAVELS-এর গেটওয়ে তালিকায় নেই, তাই অ্যাডমিনে এটি চালু করা যায় না। সম্পূর্ণ সোর্স কোড সঙ্গে থাকায় এটি কাস্টম পেমেন্ট গেটওয়ে ইন্টিগ্রেশন হিসেবে যোগ করা যায়, আপনার ডেভেলপার বা আমাদের ডেভেলপারদের দিয়ে।
Cashfree PHPTRAVELS-এ একটি তৈরি গেটওয়ে, যার সেটআপ গাইড আছে docs.phptravels.com/payments/cashfree-এ। আপনার নিজের Cashfree অ্যাকাউন্ট দিয়ে অ্যাডমিনে এটি চালু করেন। Stripe ও PayPal-এর মতো অন্য তৈরি গেটওয়ে পেমেন্ট গেটওয়ে পেজে তালিকাভুক্ত।
Razorpay ভারতীয় রুপিতে পেমেন্টের জন্য কার্ড, UPI, নেটব্যাংকিং ও ওয়ালেট গ্রহণ করে। চেকআউটে কোন পদ্ধতি দেখা যাবে তা নির্ভর করে আপনার নিজের Razorpay অ্যাকাউন্টে কী চালু আছে তার ওপর।
Razorpay অঙ্ক নেয় মুদ্রার ক্ষুদ্রতম এককে, তাই রুপিতে বুকিংয়ের মোট অঙ্ক অর্ডার তৈরির আগে ১০০ দিয়ে গুণ করা হয়। রিফান্ডের অঙ্কও একইভাবে পাঠানো হয়।
Checkout একটি পেমেন্ট আইডি, অর্ডার আইডি ও একটি সিগনেচার ফেরত দেয়। আপনার সার্ভার Key Secret দিয়ে অর্ডার আইডি ও পেমেন্ট আইডির HMAC SHA256 হিসাব করে এবং ফল সিগনেচারের সঙ্গে মিললেই পেমেন্ট গ্রহণ করে।
স্বয়ংক্রিয় ক্যাপচার সহজ। ম্যানুয়াল ক্যাপচারে এয়ারলাইন, হোটেল বা ট্যুর সরবরাহকারী বুকিং নিশ্চিত করার পরই ক্যাপচার করা যায়, ফলে ব্যর্থ বুকিং রিফান্ড না করে ছেড়ে দেওয়া যায়। সিদ্ধান্ত নির্ভর করে আপনার পণ্য ও সরবরাহকারীর ওপর।
হ্যাঁ। Razorpay-এর Refunds API পূর্ণ ও আংশিক দুই ধরনের রিফান্ড সমর্থন করে, তাই বাতিলের ফি রেখে বাকি অঙ্ক ফেরত দেওয়া যায়। refund.processed ওয়েবহুক আপনার সার্ভারকে জানায় রিফান্ড সম্পূর্ণ হয়েছে।
হ্যাঁ। মার্চেন্ট অ্যাকাউন্ট, তার Key ID ও Key Secret এবং নিষ্পত্তি আপনার। PHPTRAVELS কখনও গেটওয়ে ক্রেডেনশিয়াল দেয় না এবং আপনার টাকা সামলায় না। টেস্ট মোড কী দিয়ে তৈরি করুন এবং লাইভ হওয়ার সময় লাইভ কী-তে যান।
এটি নির্ভর করে আপনার প্রয়োজনের পরিধির ওপর, যেমন চেকআউট, ম্যানুয়াল ক্যাপচার, রিফান্ড ও এজেন্ট পেমেন্ট। PHPTRAVELS কাস্টম কাজ শুরুর আগে কোটেশন দেয়। প্ল্যাটফর্ম নিজে একবারের লাইসেন্স, যা শুরু হয় থেকে।
আরও দেখুন
প্ল্যাটফর্ম সম্পর্কে আরও
- পেমেন্ট গেটওয়ে ইন্টিগ্রেশনচেকআউট, 3D Secure, রিফান্ড ও ওয়েবহুক
- পেমেন্ট গেটওয়ে APIAPI দিয়ে কার্ড পেমেন্ট, 3-D Secure, ক্যাপচার ও রিফান্ড কীভাবে কাজ করে
- কাস্টম API ইন্টিগ্রেশনযেকোনো সাপ্লায়ার বা পার্টনার API PHPTRAVELS-এ যুক্ত করুন
- Stripe পেমেন্টকার্ড ও ওয়ালেট চেকআউট, রিফান্ড ও পেআউটসহ
- PayPal পেমেন্টফ্লাইট, হোটেল ও ট্যুরের জন্য PayPal চেকআউট
- B2B এজেন্ট ওয়ালেটএজেন্ট ডিপোজিট, ক্রেডিট লিমিট এবং প্রতিটি এজেন্টের লেজার
