প্রথম পেমেন্ট নেওয়া: ভুল না করে আপনার AI দিয়ে বানানো app-এ আসল টাকা যোগ করা
একটি AI দিয়ে বানানো app-এ পেমেন্ট যোগ করার মুহূর্তেই শখ ব্যবসায় পরিণত হয়। এ নিয়ে কীভাবে ভাববেন সেটাই এখানে — আপনার AI builder-কে কী করতে দেবেন, কী কখনো নিজে বানাবেন না, আর একটা আসল কার্ড লাগার আগে কীভাবে টেস্ট করবেন।
একটা নির্দিষ্ট মুহূর্ত আছে যখন একটা AI দিয়ে বানানো app আর খেলনা থাকে না, একটা ব্যবসা হয়ে ওঠে: যখন প্রথমবার আসল টাকা এর ভেতর দিয়ে চলাচল করে। সেই মুহূর্ত পর্যন্ত ভুল সস্তা। একটা ভাঙা বোতাম বিরক্তিকর। যে স্ক্রিনে কেউ টাকা দেয় না, সেখানে একটা ভুল টোটাল একটা টাইপো। কিন্তু যেদিন একজন আসল কাস্টমারের কার্ড চার্জ হয়, একটা ভুল আসল টাকা খরচ করায় — আপনার বা তাদের — আর একটা চার্জ নিয়ে বিতর্ক করা কাউকে “AI-ই এটা ওভাবে বানিয়েছিল” বলা এমন একটা বাক্য যা আপনি বলতে চাইবেন না।
ভালো খবর: একটা AI দিয়ে বানানো app-এ পেমেন্ট নেওয়া শোনার চেয়ে বেশি সহজলভ্য, যদি আপনি জানেন কোন অংশগুলো আপনার AI builder-কে দিতে হবে আর কোন অংশগুলো নিজে কখনো ছোঁবেন না। এটা সেই লাইনটার গাইড।
যে একটা নিয়ম আপনাকে নিরাপদ রাখে: কখনো কার্ড নম্বর জমা রাখবেন না
এখান থেকে শুরু করুন, কারণ বাকি সব কিছু এই নিয়মের ওপর ঝোলে। আপনার app-এর কখনো একটা র অর্থাৎ কাঁচা ক্রেডিট কার্ড নম্বর দেখা, জমা রাখা, বা সামলানো উচিত নয়। ডেটাবেসে নয়, আপনার বানানো কোনো ফর্মে নয়, “শুধু সাময়িকভাবে”-ও নয়। কার্ড ডেটা সরাসরি সামলানো আপনার ঘাড়ে একগাদা আইনি আর সিকিউরিটির দায় চাপায়, যা কোনো প্রথমবারের বিল্ডারের বহন করা উচিত নয়।
বরং আপনি একটা পেমেন্ট প্রোভাইডার ব্যবহার করেন — Stripe সবচেয়ে প্রচলিত, আর বেশিরভাগ AI app builder এটা ভালো করে জানে। প্রোভাইডার আপনাকে একটা আগে-থেকে-বানানো, নিরাপদ পেমেন্ট ফর্ম দেয়। কাস্টমার তাদের কার্ড টাইপ করে প্রোভাইডারের ফর্মে, প্রোভাইডার সেটা চার্জ করে, আর আপনার app শুধু একটা “হ্যাঁ, এটার পেমেন্ট হয়েছে” মেসেজ পায়। আপনার app জানে পেমেন্টটা ঘটেছে। এটা কখনো কার্ড নম্বর জানে না।
আপনি যখন আপনার AI builder-কে পেমেন্ট যোগ করতে বলবেন, এটা স্পষ্ট করে বলুন: “Stripe Checkout (বা Stripe-এর হোস্টেড পেমেন্ট ফর্ম) ব্যবহার করো যাতে আমার app কখনো কাঁচা কার্ড ডেটা না সামলায়।” builder যদি কার্ড-নম্বর ফিল্ডসহ একটা কাস্টম ফর্ম জেনারেট করতে শুরু করে, থামিয়ে দিন। ওটাই একমাত্র জিনিস যা আপনি এটাকে বানাতে দিতে চান না।
“পেমেন্ট যোগ করা” আসলে কী জড়িত
শুরু করার আগে চলমান অংশগুলো জানা সাহায্য করে, যাতে কিছু একটা বাদ পড়লে আপনি ধরতে পারেন। একটা কার্যকর পেমেন্ট ফ্লোতে চারটে অংশ থাকে:
- একটা দাম। আপনি কী চার্জ করছেন, আর সেটা এককালীন নাকি রিকারিং। এটা থাকে আপনার পেমেন্ট প্রোভাইডারে, আপনার app-এ হার্ড-কোড করা নয়।
- একটা চেকআউট ধাপ। যে বোতামে কাস্টমার ক্লিক করে, যেটা তাদের প্রোভাইডারের নিরাপদ ফর্মে পাঠায়।
- আপনার app-এ ফিরে একটা কনফার্মেশন। পেমেন্টের পরে প্রোভাইডার আপনার app-কে বলে “এই মানুষটা এই জিনিসটার পেমেন্ট করেছে।” এই অংশটাই শুরুর বিল্ডাররা সবচেয়ে বেশি বাদ দেয় — আর এটা বাদ দেওয়াই হলো এমন পরিস্থিতির কারণ যেখানে মানুষ টাকা দিয়েছে কিন্তু অ্যাক্সেস পায়নি।
- কে কীসের জন্য টাকা দিয়েছে তার একটা রেকর্ড। যাতে আপনার app ঠিক জিনিসটা আনলক করতে পারে আর যাতে আপনি পরে “এই মানুষটা কি টাকা দিয়েছে?” — এর জবাব দিতে পারেন।
আপনার AI builder যদি আপনাকে একটা Pay বোতাম দেয় যা একটা কার্ড চার্জ করে কিন্তু এরপর আপনার app আলাদা কিছুই করে না, তাহলে এটা অংশ ২ বানিয়েছে আর অংশ ৩ ও ৪ ভুলে গেছে। এটাই সবচেয়ে সাধারণ আধা-বানানো পেমেন্ট ফ্লো, আর দেখে মনে হয় এটা ঠিকঠাক কাজ করছে — ঠিক ততক্ষণ, যতক্ষণ না একজন কাস্টমার টাকা দেয় আর কিছুই পায় না।
আপনার AI builder-কে এটা কীভাবে বর্ণনা করবেন
ওপরের অংশগুলো কভার করে এমন একটা প্রম্পট এখানে:
Stripe Checkout ব্যবহার করে এই app-এ পেইড অ্যাক্সেস যোগ করো। একটাই প্ল্যান: $19/month।
একজন লগড-ইন ইউজার “Upgrade”-এ ক্লিক করলে তাকে Stripe-এর হোস্টেড চেকআউট পেজে পাঠাও। কোনো কাস্টম কার্ড ফর্ম বানাবে না — আমার app-এর কখনো কার্ড নম্বর সামলানো উচিত নয়।
একটা সফল পেমেন্টের পরে সেই ইউজারকে ডেটাবেসে “paid” হিসেবে চিহ্নিত করো আর তার জন্য Reports পেজটা আনলক করো। একটা ব্যর্থ বা ক্যানসেল করা পেমেন্টের পরে তাকে একটা মেসেজসহ প্রাইসিং পেজে ফিরিয়ে দাও।
কিছু আনলক করার আগে সার্ভার-সাইডে পেমেন্ট কনফার্ম করতে একটা Stripe webhook ব্যবহার করো — ইউজার শুধু একটা সাকসেস পেজে ফিরে এসেছে বলে আনলক করবে না।
ওই শেষ অনুচ্ছেদটাই একটা আসল পেমেন্ট ফ্লোকে একটা ভঙ্গুর ফ্লো থেকে আলাদা করে। সাকসেস পেজকে অ্যাক্সেস আনলক করতে দেওয়ার মানে হলো — যে কেউ সাকসেস পেজের ঠিকানা জেনে যায় সে-ই সেটা বিনা পয়সায় আনলক করতে পারে। webhook — Stripe থেকে আপনার app-এর ব্যাকএন্ডে আসা একটা সরাসরি, যাচাই করা মেসেজ — হলো বিশ্বাসযোগ্য সংকেত। আপনার AI builder জানে কীভাবে এটা সেট আপ করতে হয়; আপনাকে শুধু নাম ধরে এটা চাইতে হবে।
আসল টাকার আগে নকল টাকা দিয়ে টেস্ট করুন
Stripe (আর বেশিরভাগ প্রোভাইডার) আপনাকে একটা টেস্ট মোড দেয়, যেখানে নকল কার্ড নম্বর আসলগুলোর মতো আচরণ করে — যেসব কার্ড সফল হয়, যেসব কার্ড প্রত্যাখ্যাত হয়, আর যেসব কার্ড এরর ঘটায়, সবই। এটা ব্যবহার করুন। আপনার app-এ একটা আসল কার্ড লাগার আগে প্রতিটি পথ দিয়ে চলুন:
- একটা সফল পেমেন্ট। ঠিক জিনিসটা কি আনলক হলো? ইউজারের স্ট্যাটাস কি “paid”-এ বদলাল?
- একটা প্রত্যাখ্যাত কার্ড। app কি এটা সুন্দরভাবে সামলাল, নাকি ইউজারকে একটা ভাঙা স্ক্রিনে আটকে রাখল?
- একটা ক্যানসেল করা চেকআউট — ইউজার টাকা না দিয়ে “back”-এ ক্লিক করে। তারা কি যুক্তিসঙ্গত কোথাও পৌঁছাল, এখনো আপগ্রেড না হয়ে?
- টাকা দেওয়া, তারপর লগ আউট করে আবার লগ ইন করা। তারা কি এখনো “paid”? (এটা সেই app-গুলো ধরে যা শুধু চলতি সেশনের জন্য অ্যাক্সেস আনলক করে আর পরের দিন ভুলে যায়।)
আপনার AI builder-এর কাছে টেস্ট কার্ড নম্বর চান, কিংবা আপনার প্রোভাইডারের ডকে খুঁজে নিন। “এই পেমেন্ট সফল হয়”-এর একটা প্রচলিত টেস্ট কার্ড আপনার builder চাইলেই দিতে পারে। চারটে পরিস্থিতিই চালান। প্রত্যাখ্যাত-কার্ড আর ক্যানসেল-করা-চেকআউটের পথগুলো AI builder সবচেয়ে বেশি ভাঙা রেখে দেয়, কারণ হ্যাপি পাথটাই তারা অপ্টিমাইজ করে।
যে ভুলগুলো আসল টাকা খরচ করায়
প্রথম পেমেন্ট ফ্লোতে কিছু নির্দিষ্ট ব্যর্থতার ধরন বারবার দেখা যায়:
webhook-এর বদলে সাকসেস পেজে আনলক করা। ওপরে কভার করা হয়েছে, কিন্তু আবার বলা দরকার কারণ এটাই দামি। ইউজার /success-এ পৌঁছানোর মুহূর্তে আপনার app যদি পেইড ফিচার আনলক করে, তাহলে তারা টাকা দিয়েছে কি না সে নিয়ে ইউজারের ব্রাউজার সৎ থাকবে বলে আপনি বিশ্বাস করছেন। তারা সবসময় সৎ নয়। webhook-এ আনলক করুন।
তারা কীসের জন্য টাকা দিয়েছে তার কোনো রেকর্ড নেই। আপনার app যদি শুধু একটা গ্লোবাল “paid: yes” ফ্ল্যাগ উল্টে দেয়, তাহলে একাধিক প্ল্যান হলেই, কিংবা কেউ ক্যানসেল করলে, বা আপনাকে রিফান্ড দিতে হলে আপনি হিমশিম খাবেন। নির্দিষ্ট জিনিসটা জমা রাখুন: কোন প্ল্যান, কখন, আর সেই পেমেন্টের জন্য প্রোভাইডারের ID। পরে সাপোর্ট প্রশ্নের জন্য এটা আপনার দরকার হবে।
সাবস্ক্রিপশন যে শেষ হয় তা ভুলে যাওয়া। একটা এককালীন পেমেন্ট সহজ: টাকা দিলে দিল। একটা রিকারিং সাবস্ক্রিপশন ফুরিয়ে যেতে পারে — কার্ড মেয়াদোত্তীর্ণ হয়, পরের মাসে পেমেন্ট ব্যর্থ হয়। আপনার app যদি শুধু “তারা টাকা দিয়েছে” শোনে আর “তাদের সাবস্ক্রিপশন শেষ হয়েছে” কখনো না শোনে, তাহলে মানুষ টাকা দেওয়া বন্ধ করার পরেও বিনা পয়সায় অ্যাক্সেস রাখবে। আপনার builder-কে শুধু সাফল্য নয়, “সাবস্ক্রিপশন ক্যানসেল বা পেমেন্ট ব্যর্থ” মেসেজটাও সামলাতে বলুন।
ভুল পরিমাণ চার্জ করা, কারণ দাম দুই জায়গায় থাকে। দাম যদি আপনার app-এর স্ক্রিনে লেখা থাকে আর আপনার পেমেন্ট প্রোভাইডারেও সেট করা থাকে, তাহলে একসময় সেগুলো একে অন্যের থেকে সরে যাবে, আর একজন কাস্টমার $19 দেখবে কিন্তু $29 চার্জ হবে। দামটা এক জায়গায় রাখুন — আপনার প্রোভাইডারে — আর আপনার app যেন প্রোভাইডার যা বলে তা-ই দেখায়। একটাই সত্যের উৎস।
লাইভে যাওয়ার আগে একটা ছোট চেকলিস্ট
টেস্ট মোড থেকে আসল টাকায় সুইচ করার আগে:
- আমার app-এ এমন কোনো ফিল্ড নেই যেখানে কেউ একটা কাঁচা কার্ড নম্বর টাইপ করে।
- পেমেন্ট কনফার্ম হয় প্রোভাইডারের একটা webhook দিয়ে, ইউজার একটা সাকসেস পেজে পৌঁছে নয়।
- আমি একটা সফল পেমেন্ট, একটা প্রত্যাখ্যাত কার্ড, আর একটা ক্যানসেল করা চেকআউট টেস্ট করেছি — তিনটেই যুক্তিসঙ্গতভাবে আচরণ করে।
- টাকা দেওয়ার পরে অ্যাক্সেস লগআউটের পরে আর পরের দিনও আনলক থাকে।
- আমার app রেকর্ড রাখে প্রতিটি মানুষ কীসের জন্য টাকা দিয়েছে, শুধু যে টাকা দিয়েছে তা নয়।
- একটা সাবস্ক্রিপশন ফুরিয়ে গেলে অ্যাক্সেস নিজে থেকেই সরে যায়।
- আমি প্রোভাইডার কী টেস্ট মোড থেকে লাইভ মোডে সুইচ করেছি (ভুলে যাওয়া সহজ — আপনার প্রথম আসল কাস্টমার টেস্ট কী-তে গিয়ে পড়লে একটা বিভ্রান্তিকর এরর পায়)।
প্রতিটা বাক্সে টিক পড়লে আপনি একটা আসল কার্ডের জন্য তৈরি। না হলে, সেটাই আপনার AI builder-এর সঙ্গে পরের কথোপকথন — লিংক শেয়ার করার আগে, প্রথম বিতর্কের পরে নয়।
যে মানসিকতা সাহায্য করে
টাকা হলো আপনার app-এর সেই অংশ যেখানে “দেখে মনে হয় কাজ করে” আর “সত্যিই কাজ করে” সবচেয়ে দূরে। একটা ভাঙা লেআউট আপনি সঙ্গে সঙ্গে দেখেন। একটা পেমেন্ট ফ্লো যা পেমেন্ট যাচাই না করেই অ্যাক্সেস আনলক করে, সেটা নিখুঁত দেখায় — যতক্ষণ না কেউ খেয়াল করে আর বন্ধুদের বলে।
তাই পেমেন্ট ফ্লোকে আপনার AI দিয়ে বানানো app-এর সেই একটা অংশ হিসেবে দেখুন যা আপনি একজন সন্দেহবাদীর মতো টেস্ট করেন। টাকা না দিয়ে ঢোকার চেষ্টা করুন। ভাঙার চেষ্টা করুন। টাকা দিন তারপর অ্যাক্সেস হারানোর চেষ্টা করুন। নিজের app-কে ঠকানোর চেষ্টায় কাটানো ৩০ মিনিট হলো আপনার কেনা সবচেয়ে সস্তা বিমা।
এইমাত্র বানানো কিছুতে পেমেন্ট যোগ করতে যাচ্ছেন? শুধু একটা Pay বোতাম চাওয়ার বদলে আপনার পরের AI builder সেশনটা শুরু করুন গোটা ফ্লোটা বর্ণনা করে — দাম, চেকআউট, webhook কনফার্মেশন, আর কী আনলক হয় — একবারেই। Pay বোতাম হলো সহজ ১০%। বাকি ৯০%-ই টাকাটাকে সৎ রাখে।