Customer টাকা দিয়েছেন, payment app-এ successful দেখাচ্ছে, অথচ WooCommerce order এখনো pending। আবার অন্য একটি order-এ payment না করেও customer ফিরে এসেছেন thank-you page-এ। এই অবস্থায় শুধু screenshot দেখে order paid করা বা website-এর সব pending order complete করে দেওয়া বড় ভুল হতে পারে। Payment integration-এর কাজ হলো merchant account, provider verification এবং website-এর order state-এর মধ্যে নির্ভরযোগ্য সম্পর্ক তৈরি করা।
বাংলাদেশি online shop-এর জন্য এই গাইডে WooCommerce payment gateway বাছাই, sandbox test, order verification এবং settlement মিলানোর ধাপ আছে। এটি নির্দিষ্ট কোনো provider-এর গোপন API implementation নয়। আপনার নির্বাচিত gateway-এর official documentation ও merchant agreement অনুযায়ী settings করতে হবে।
দ্রুত উত্তর: অনুমোদিত merchant service নিন, official বা যাচাই করা compatible plugin ব্যবহার করুন এবং test environment-এ success, failure, cancel ও duplicate callback পরীক্ষা করুন। Customer-এর browser redirect বা screenshot-কে একমাত্র payment proof বানাবেন না। Provider-side verification ও order reference মিলিয়ে সিদ্ধান্ত নিন।
WooCommerce Payment Gateway বাংলাদেশ: Setup ও Order Verification গাইড
Merchant payment ও ব্যক্তিগত টাকা পাঠানো এক নয়
Mobile financial service-এর personal transfer সুবিধা এবং business-এর online checkout integration-এর অনুমতি আলাদা হতে পারে। আপনার account দিয়ে commercial payment collection কীভাবে করা যাবে provider-এর কাছ থেকে নিশ্চিত করুন। ব্যবসার কাগজপত্র, অনুমোদন ও settlement শর্ত অনুযায়ী সঠিক service নিন।
bKash-এর business service-এ online payment-এর আলাদা ব্যবস্থা আছে। তবে business account থাকলেই আপনার নির্দিষ্ট WooCommerce plugin স্বয়ংক্রিয়ভাবে অনুমোদিত বা compatible হয় না। Merchant access, integration method এবং support scope আলাদা করে যাচাই করুন। বর্তমান charge বা required documents provider-এর আবেদন প্রক্রিয়া থেকেই নিন।
Gateway বাছাইয়ের আগে workflow লিখে ফেলুন
কোন payment method customer ব্যবহার করবেন, refund দরকার কি না, settlement কোথায় হবে এবং mobile checkout কীভাবে চলবে লিখুন। শুধু successful transaction-এর charge দেখে সিদ্ধান্ত নেবেন না। Setup fee, refund cost, settlement delay, support ও dispute process জানতে হবে।
| বিষয় | প্রশ্ন করবেন |
|---|---|
| Merchant onboarding | আপনার business category ও documents গ্রহণযোগ্য কি না |
| WooCommerce support | আপনার checkout type ও version সমর্থিত কি না |
| Verification | Server-side result ও transaction reference পাওয়া যায় কি না |
| Refund | Dashboard বা plugin থেকে কী প্রক্রিয়া অনুসরণ করতে হবে |
| Settlement | Gross payment, fee ও net deposit কীভাবে দেখা যাবে |
একটি written comparison রাখলে vendor-এর মৌখিক আশ্বাস ও প্রকৃত service terms আলাদা করা সহজ হয়। Trial বা sandbox না থাকলে live test-এর অনুমোদিত পদ্ধতি provider-এর support থেকে জেনে নিন।
Official বা maintained plugin কেন জরুরি?
Payment plugin-এ secret credential, order amount ও transaction status ব্যবহৃত হয়। তাই কোথা থেকে plugin নিচ্ছেন, কে maintain করেন এবং update পাওয়া যায় কি না দেখুন। অন্য কারও “nulled” বা পরিবর্তিত package ব্যবহার করলে তার আচরণ যাচাই করা কঠিন হয়।
Plugin-এর documentation-এ supported WordPress, WooCommerce ও PHP requirements দেখুন। Classic checkout এবং Checkout Block-এর compatibility একই নাও হতে পারে। আপনার checkout page-এ কোনটি ব্যবহার হচ্ছে বুঝে test করুন। Payment method settings-এ enabled হলেও frontend-এ না দেখা গেলে compatibility ও eligibility conditions দেখুন।
Live site বদলানোর আগে staging তৈরি করুন
বর্তমান files ও database backup রাখুন। সম্ভব হলে staging-এ নতুন gateway configure করুন। সেখানে live order, outgoing notification ও scheduled task কীভাবে সামলানো হচ্ছে দেখুন। Staging-এর payment credential test-mode-এর কি না শুরুতেই নিশ্চিত করুন।
Backups কীভাবে যাচাই করবেন জানার জন্য WordPress backup ও restore গাইড পড়ুন। Payment setup করার সময় পুরো website পুরোনো অবস্থায় ফেরানোর আগে নতুন order-এর ঝুঁকি মনে রাখুন।
Credential কোথায় ও কীভাবে বসাবেন?
Provider-এর dashboard থেকে পাওয়া merchant identity ও API credential plugin-এর নির্ধারিত settings-এ বসান। Test credential এবং production credential আলাদা হলে সঠিক environment নির্বাচন করুন। কোন field-এ কোন value যায় official guide থেকে মিলিয়ে নিন।
Secret key বা password browser console, public code বা সাধারণ support screenshot-এ দেবেন না। Developer-এর কাজ শেষ হলে access review করুন। Credential প্রকাশ পেলে provider-এর process অনুযায়ী revoke বা rotate করুন। WordPress administrator account-ও সীমিত ব্যক্তির কাছে রাখুন।
Callback ও browser return-এর পার্থক্য
Customer payment page থেকে website-এ ফিরতে পারেন browser redirect দিয়ে। কিন্তু browser বন্ধ, network drop বা customer ফিরে না আসার ঘটনাও সম্ভব। তাই ফিরে আসা page-এর URL-কে একমাত্র payment result হিসেবে ব্যবহার করা নির্ভরযোগ্য নয়।
Gateway অনুযায়ী server callback, verification API বা অন্য supported mechanism থাকবে। সংশ্লিষ্ট plugin-এর implementation provider-এর যাচাই পদ্ধতি অনুসরণ করছে কি না নিশ্চিত করুন। WooCommerce-এর developer documentation gateway processing ও callback-এর ধারণা ব্যাখ্যা করে, তবে প্রতিটি provider-এর আলাদা নিয়ম মানতে হবে।
Payment successful হলেও order pending কেন?
এটি একটি symptom; একাধিক কারণ থাকতে পারে। Callback website-এ পৌঁছায়নি, verification ব্যর্থ, credential environment ভুল বা plugin order mapping খুঁজে পায়নি—এসব অনুসন্ধানের দিক। নির্দিষ্ট কারণ জানতে provider log ও WooCommerce order note মিলিয়ে দেখুন।
- Order ID ও merchant reference একই transaction বোঝাচ্ছে কি না।
- Amount ও currency সঠিক কি না।
- Provider-side verified status কী দেখাচ্ছে।
- Callback request block হয়েছে কি না।
- সংশ্লিষ্ট সময়ের plugin log-এ error আছে কি না।
পরীক্ষা না করে order state manually বদলালে পরে duplicate shipment বা reconciliation সমস্যা হতে পারে। Provider ও order record মিলিয়ে প্রতিষ্ঠানের অনুমোদিত পদ্ধতিতে সিদ্ধান্ত নিন।
Success flow-এর পাশাপাশি failure test করুন
Sandbox-এ সফল payment দিয়ে order note, stock ও notification দেখুন। তারপর failed payment এবং customer cancellation পরীক্ষা করুন। Cancel মানে সবসময় transaction debit হয়নি—এমন সিদ্ধান্ত না নিয়ে provider-এর নির্দিষ্ট result দেখুন। Timeout-এর আচরণ আলাদা করে বোঝা দরকার।
| Test case | Expected যাচাই |
|---|---|
| Successful payment | একটি verified transaction যথাযথ order-এর সঙ্গে যুক্ত |
| Failed payment | Paid হিসেবে fulfilment শুরু হচ্ছে না |
| Customer cancel | স্পষ্ট message ও নিরাপদ retry ব্যবস্থা |
| Browser বন্ধ | Provider result পরে নির্ভরযোগ্যভাবে reconcile করা যায় |
| একই callback আবার আসে | নতুন payment বা duplicate fulfilment তৈরি হয় না |
এগুলো test-এর লক্ষ্য; সব plugin একই status label ব্যবহার করে না। আপনার gateway documentation অনুযায়ী expected state লিখে ফল মিলিয়ে নিন।
Duplicate payment ও repeated callback সামলানো
Network-এর কারণে একই notification আবার আসতে পারে। একটি provider transaction একাধিকবার process হলেও যেন stock বারবার না কমে বা order একাধিকবার fulfil না হয়। Maintained plugin-এর এই আচরণ demo বা sandbox-এ যাচাই করুন।
Customer একই order-এ আবার pay করতে চাইলে আগের attempt-এর verified result আগে দেখুন। প্রথম payment আসলে সফল হলে দ্বিতীয় payment-এর প্রয়োজন নাও থাকতে পারে। Support team-এর জন্য transaction reference দিয়ে খোঁজার সহজ process রাখুন। শুধু customer name দিয়ে payment matching করা যথেষ্ট নির্ভুল নয়।
Checkout caching ও security rule পরীক্ষা করুন
Dynamic checkout বা provider callback page ভুলভাবে cache বা block হলে অস্বাভাবিক ফল আসতে পারে। Plugin ও hosting documentation অনুযায়ী প্রয়োজনীয় exclusion দিন। পুরো website-এর firewall বন্ধ রাখা সমাধান হিসেবে গ্রহণ করবেন না। নির্দিষ্ট blocked request ও rule নিয়ে support-এর সাহায্য নিন।
HTTPS, site URL, mixed domain redirect ও callback address পরীক্ষা করুন। Staging থেকে live যাওয়ার সময় test URL থেকে production URL পরিবর্তন হয়েছে কি না দেখুন। Provider dashboard-এ allowed address থাকলে সেটিও মিলিয়ে নিন।
Order email না এলে payment ব্যর্থ ধরে নেবেন না
Payment verification এবং email delivery আলাদা system। Customer notification পাননি বলে order unpaid নাও হতে পারে। আগে WooCommerce order record ও provider result দেখুন, এরপর mailer test করুন।
Order mail ও sender setup-এর জন্য business email setup গাইড সহায়ক। Support team-এর screen-এ payment state ও mail delivery state আলাদা থাকলে customer-কে সঠিক ব্যাখ্যা দেওয়া সহজ হয়।
Refund-এর কাজ আলাদা করে বোঝুন
WooCommerce-এ order refund লেখা এবং customer-এর payment method-এ টাকা ফেরত যাওয়া একই ঘটনা নাও হতে পারে। আপনার gateway automatic refund সমর্থন করে কি না এবং plugin কী করে তা documentation থেকে নিশ্চিত করুন। Manual refund হলে provider dashboard-এর process অনুসরণ করুন।
Refund reference, amount, reason ও অনুমোদন record রাখুন। Partial refund হলে shipping, item quantity ও stock adjustment কীভাবে হবে আলাদা করে দেখুন। Dashboard success দেখালেই customer-এর হিসাবে তাৎক্ষণিক credit নিশ্চিত হয় না; provider-এর processing terms প্রযোজ্য হতে পারে।
Settlement ও হিসাব মেলানোর নিয়ম
Order-এর gross amount, gateway fee, refund এবং bank settlement আলাদা line item হতে পারে। Provider-এর report-এ transaction reference ধরে WooCommerce order-এর সঙ্গে মিলান। Bank-এ net deposit দেখে প্রতিটি order paid ধরে নেওয়া সঠিক reconciliation নয়।
একদিনের বদলে settlement batch ধরে data মেলাতে হতে পারে। কোন সময়সীমার transaction report-এ আছে এবং timezone কী—দুটোই দেখুন। হিসাব গুছিয়ে নিতে ছোট ব্যবসার accounting workflow পড়তে পারেন।
Live করার আগে দায়িত্ব ও support route ঠিক করুন
Customer payment issue নিয়ে কোথায় যোগাযোগ করবেন তা checkout ও confirmation-এ স্পষ্ট রাখুন। Ticket-এ order number ও transaction reference নিতে পারেন, কিন্তু PIN, OTP বা full card details চাইবেন না। Support staff-এর access প্রয়োজন অনুযায়ী সীমিত রাখুন।
ব্যর্থ transaction-এর screenshot-এ যেটুকু প্রয়োজন সেটুকুই রাখুন। Sensitive data মুছে provider-কে পাঠান। Payment provider, hosting ও developer-এর দায়িত্ব আলাদা করে লিখুন, যাতে সমস্যা হলে তিন পক্ষ একে অন্যের দিকে না পাঠিয়ে প্রমাণের ভিত্তিতে কাজ করতে পারেন।
প্রকাশের দিন ছোট acceptance test
Provider-এর অনুমোদিত live test পদ্ধতি অনুসরণ করুন। Mobile device-এ checkout শুরু থেকে confirmation পর্যন্ত দেখুন। Shipping, coupon, amount ও payment method মিলিয়ে নিশ্চিত হন। Test-এর পরে order note ও settlement record রেখে প্রয়োজনমতো refund করুন।
Website update-এর পরও একই প্রধান test পুনরায় করুন। নতুন plugin বা checkout customization payment method-এর আচরণ বদলাতে পারে। কাজের তারিখ, plugin version ও test result লিখে রাখলে পরে তুলনা করা সহজ হয়।
Customer message যেন সঠিক প্রত্যাশা তৈরি করে
Payment flow-এ সফল, ব্যর্থ ও verification pending অবস্থার message আলাদা রাখুন। টাকা কাটা গেছে কিন্তু result নিশ্চিত নয় এমন customer-কে বারবার pay করতে বললে duplicate payment হতে পারে। বরং order number দিয়ে support-এর সঙ্গে যোগাযোগ এবং যাচাইয়ের উপায় দেখান। সময়ের কোনো প্রতিশ্রুতি দিলে সেটি আপনার প্রকৃত support capability অনুযায়ী হোক।
Mobile screen-এ error message দেখা যায় কি না এবং customer আবার cart-এ ফিরতে পারেন কি না পরীক্ষা করুন। Browser back করলে পুরোনো attempt নতুন order তৈরি করছে কি না দেখুন। Payment complete-এর পর thank-you page-এর গুরুত্বপূর্ণ order information দৃশ্যমান রাখুন। ব্যর্থতার কারণ customer-কে জানানোর সময় secret token বা internal error dump দেখানোর প্রয়োজন নেই। সংক্ষিপ্ত স্পষ্ট ভাষা এবং support route যথেষ্ট।
Developer-এর কাছ থেকে কী handover নেবেন?
কোন plugin version, কোন checkout type এবং কোন provider service ব্যবহার হয়েছে লিখে নিন। Credential-এর secret value সাধারণ document-এ না রেখে কোথায় নিরাপদে রাখা আছে উল্লেখ করুন। Test mode থেকে live mode-এ যাওয়ার সময় কোন কোন setting বদলেছে তার checklist রাখুন। Payment flow-এর দায়িত্বপ্রাপ্ত support contact ও জরুরি escalation route দিন।
একটি redacted test report নিন যাতে success, failure, cancel ও repeat notification-এর ফল থাকে। Integration ঠিক আছে বলা এবং প্রতিটি প্রয়োজনীয় case পরীক্ষা করা এক নয়। ভবিষ্যতে developer বদলালে নতুন ব্যক্তি এই নোট দিয়ে শুরু করতে পারবেন। Plugin update, domain change বা firewall change-এর পর কী কী test আবার করতে হবে সেটিও handover-এর অংশ করুন।
Dispute বা mismatch-এর ছোট record রাখুন
Customer অভিযোগ করলে order ID, provider reference, amount, attempt time ও যাচাইয়ের ফল এক জায়গায় লিখুন। কে কখন কী সিদ্ধান্ত নিয়েছেন record রাখুন। একই transaction নিয়ে customer, developer ও provider-এর আলাদা thread থাকলে তথ্য ছড়িয়ে যেতে পারে। একটি internal case reference ব্যবহার করলে সঠিক conversation খুঁজে পাওয়া সহজ হয়।
Record-এ প্রয়োজনের বেশি ব্যক্তিগত বা payment data রাখবেন না। Customer PIN, OTP বা পূর্ণ card number দিয়ে সমস্যা যাচাই করার পদ্ধতি তৈরি করবেন না। Provider-এর অনুমোদিত verification method ব্যবহার করুন। Refund বা manual adjustment হলে তার reference ও approval record যোগ করুন। সমাধান শেষে reconciliation report-এ পরিবর্তন প্রতিফলিত হয়েছে কি না review করুন, যাতে customer support ও accounting-এর তথ্য আলাদা না থাকে।
Payment plugin update-এর নোট
Update করার আগে বর্তমান plugin version, active payment method এবং working checkout-এর একটি redacted test record রাখুন। নতুন version-এর compatibility note পড়ুন। Staging-এ একই shipping, coupon ও checkout type ব্যবহার করে test করলে live-এর সঙ্গে তুলনা করা সহজ হয়। Update শেষে শুধু payment button দেখা যাচ্ছে কি না দেখাই যথেষ্ট নয়।
একটি অনুমোদিত test transaction-এর পুরো পথ দেখুন: order তৈরি, provider result, verification, order note ও notification। কোনো পার্থক্য থাকলে log রেখে support-কে দিন। পুরোনো version-এ ফেরার প্রয়োজন হলে নতুন order-এর data যেন মুছে না যায় সে পরিকল্পনা করুন। Test সফল হলে date ও result লিখে রাখুন, যাতে পরের সমস্যায় কোন configuration শেষ ভালো কাজ করেছিল বোঝা যায়।
সাধারণ প্রশ্ন
Customer screenshot দিলে order complete করে দেব?
Screenshot-কে সহায়ক তথ্য হিসেবে দেখুন। Provider-side verified transaction, amount ও order reference মিলিয়ে প্রতিষ্ঠানের অনুমোদিত fulfilment process অনুসরণ করুন।
যেকোনো gateway plugin ব্যবহার করা যাবে?
আপনার merchant service, checkout type ও software version-এর সঙ্গে compatible এবং maintain করা integration বাছাই করুন। Official approval ও support scope সরাসরি যাচাই করুন।
Sandbox test করলেই live test দরকার নেই?
Sandbox ও live-এর credential, URL ও account permission আলাদা হতে পারে। Provider-এর অনুমোদিত পদ্ধতিতে সীমিত live test করে সম্পূর্ণ flow নিশ্চিত করুন।
Pending payment order কি unpaid?
শুধু website status দিয়ে নিশ্চিত হওয়া যায় না। Gateway log ও verification result মিলিয়ে দেখুন। অস্পষ্ট অবস্থায় customer-কে আবার pay করতে বলার আগে আগের attempt যাচাই করুন।