আপনার যা দরকার
| ফিল্ড | এটি যা করে |
|---|---|
| Client ID | API কলে আপনার PayPal অ্যাপ শনাক্ত করে। সিক্রেটের সাথে জোড়া। |
| Client secret | API auth-এর গোপন অর্ধেক। Client ID-এর সাথে, এটি অর্ডার তৈরি করে। গোপন। |
| Webhook ID | PayPal যে ওয়েবহুক সাইন করে তা শনাক্ত করে, যাতে আমরা প্রতিটি ডেলিভারি যাচাই করতে পারি। |
| Success URL / Cancel URL | অর্থ দেওয়ার বা পিছিয়ে যাওয়ার পর ক্রেতা কোথায় পৌঁছান। |
প্রতিটি ফিল্ড আমরা কেন চাই
Client ID
API কলে আপনার PayPal অ্যাপ শনাক্ত করে। এটি কেবল Client secret-এর সাথে জোড়া দিলেই কাজ করে।
Client secret
API auth-এর গোপন অর্ধেক। Client ID-এর সাথে, এটি আমাদের অর্ডার তৈরি করতে দেয়, তাই পেমেন্ট আপনার অ্যাকাউন্টের মধ্য দিয়ে চলে।
Webhook ID
আমরা কীভাবে নিশ্চিত করি একটি ওয়েবহুক প্রকৃতপক্ষে PayPal থেকে: PayPal প্রতিটি ওয়েবহুককে একটি ID দিয়ে শনাক্ত করে, আর আমরা তা ব্যবহার করে PayPal-কে সরাসরি জিজ্ঞেস করি একটি প্রদত্ত বার্তা প্রকৃত কিনা। তা কাউকে একটি "paid" ইভেন্ট জাল করা থেকে থামায়।
Success and Cancel URL
সাধারণ সেটিং: অর্থ দেওয়ার বা পিছিয়ে যাওয়ার পর ক্রেতা কোথায় পৌঁছান। গোপন নয়।
সেট আপ
- PayPal Developer ড্যাশবোর্ড খুলুন
developer.paypal.com-এ সাইন ইন করুন। PayPal আপনাকে নকল ব্যবসা আর ক্রেতা অ্যাকাউন্ট সহ একটি বিনামূল্যের স্যান্ডবক্স দেয়, তাই আপনি আসল অর্থ না নাড়িয়ে পরীক্ষা করতে পারেন। এই গাইড স্যান্ডবক্স দেখায়; লাইভ ফ্লো হুবহু একই, শুধু Sandbox / Live টগল (উপরের বাঁ দিকে) উল্টে নিন আর একটি PayPal for Business অ্যাকাউন্ট ব্যবহার করুন। ড্যাশবোর্ড থেকে, Apps & Credentials খুলুন।
PayPal Developer → Apps & Credentials - একটি অ্যাপ তৈরি করুন
API Credentials পৃষ্ঠায়, Sandbox টগল নির্বাচিত আছে নিশ্চিত করুন, তারপর Create App (উপরের ডানে) ক্লিক করুন।
PayPal → Apps & Credentials → Create App - নাম দিন আর Merchant বেছে নিন
একটি App Name লিখুন (যেমন "Coin Moebius"), Type Merchant-এ রাখুন, আপনার স্যান্ডবক্স ব্যবসা অ্যাকাউন্ট বেছে নিন, আর Create App ক্লিক করুন।
PayPal → Create App - আপনার Client ID ও Client secret কপি করুন
PayPal আপনার নতুন অ্যাপ খোলে। Client ID কপি করুন আর Secret key দেখিয়ে কপি করুন। (API Credentials তালিকায় Default Application সারি থেকেও দুটো কপি করতে পারবেন।) সেগুলো পাশে রাখুন।
1. PayPal → API Credentials → তালিকায় আপনার অ্যাপ 2. PayPal → আপনার অ্যাপ → Client ID ও Secret Client secret গোপন, এটিকে পাসওয়ার্ডের মতো রাখুন। স্যান্ডবক্স অ্যাপ ও লাইভ অ্যাপের প্রতিটির নিজস্ব জোড়া আছে, তাই সেগুলো মেশাবেন না।
- একটি ওয়েবহুক যোগ করুন
অ্যাপ পৃষ্ঠায় নিচে স্ক্রোল করে Sandbox Webhooks বিভাগে যান আর Add Webhook ক্লিক করুন। Webhook URL ফিল্ডে আপনার প্রজেক্টের PayPal ওয়েবহুক ঠিকানা (নিচে) পেস্ট করুন। তারপর Coin Moebius যে ইভেন্টগুলো শোনে সেগুলো বেছে নিন আর Save করুন।
- একবারের পেমেন্ট: CHECKOUT.ORDER.APPROVED, PAYMENT.CAPTURE.COMPLETED, PAYMENT.CAPTURE.DENIED, PAYMENT.CAPTURE.DECLINED, PAYMENT.CAPTURE.REFUNDED, PAYMENT.CAPTURE.REVERSED, CUSTOMER.DISPUTE.CREATED।
- সাবস্ক্রিপশন (শুধুমাত্র আপনি সেগুলো বিক্রি করলে): BILLING.SUBSCRIPTION.ACTIVATED, BILLING.SUBSCRIPTION.UPDATED, BILLING.SUBSCRIPTION.CANCELLED, BILLING.SUBSCRIPTION.PAYMENT.FAILED, PAYMENT.SALE.COMPLETED। আপনি বারবার বিলিং না করলে এগুলো বাদ দিন।
- তাড়াতাড়িতে? All Events (উপরের ওয়াইল্ডকার্ড) বেছে নেওয়াও কাজ করে, আমরা যা ব্যবহার করি না তা উপেক্ষা করি।
https://api.coinmoebius.com/webhook/paypal/<your project id>PayPal → আপনার অ্যাপ → Add webhook আপনার প্রজেক্ট আইডি Coin Moebius ড্যাশবোর্ডে প্রজেক্টের নামের নিচে আছে; সেটি উপরের ঠিকানায় বসিয়ে দিন। শেষ ধাপের কানেক্টেড প্রোভাইডার কার্ডে একই URL দেখাবে।
- Webhook ID কপি করুন
আপনার ওয়েবহুক এখন Sandbox Webhooks তালিকায় দেখাবে। পাশে দেখানো Webhook ID কপি করুন। Coin Moebius কীভাবে PayPal-কে নিশ্চিত করে প্রতিটি ওয়েবহুক আসল: PayPal প্রতিটি ওয়েবহুককে একটি ID দিয়ে শনাক্ত করে, আর আমরা তা ব্যবহার করে PayPal-কে সরাসরি জিজ্ঞেস করি একটি প্রদত্ত বার্তা প্রকৃত কিনা। স্যান্ডবক্সে আর লাইভে আলাদা করে একটি ওয়েবহুক রেজিস্টার করুন।
PayPal → আপনার অ্যাপ → Sandbox Webhooks → Webhook ID - Coin Moebius-এ ফিরুন: Add provider → PayPal
আপনার প্রজেক্টে, Providers ট্যাব খুলুন, Add provider ক্লিক করুন, Connect a service বেছে নিন, আর PayPal বেছে নিন। আপনার Success URL ও Cancel URL নির্ধারণ করুন। স্যান্ডবক্স ক্রেডেনশিয়াল দিয়ে পরীক্ষা করছেন? Test (optional) ট্যাব ব্যবহার করুন আর সেখানে আপনার Client ID, Client secret, আর Webhook ID পেস্ট করুন, তারপর Save ক্লিক করুন। সরাসরি লাইভে যাচ্ছেন? Live ট্যাব ব্যবহার করুন। Test গ্রুপ সব-বা-কিছুই-না: তিনটি ফিল্ডই, কিংবা একটিও না।
Coin Moebius → Add provider → PayPal - আপনি সংযুক্ত
PayPal এখন আপনার Providers ট্যাবে সংযুক্ত হওয়ার তারিখ সহ দেখাবে (স্যান্ডবক্স ক্রেডেনশিয়াল ব্যবহার করলে TEST ট্যাগ করা)। কার্ডে একই ওয়েবহুক URL দেখাবে যা আপনি PayPal-এ পেস্ট করেছেন, সাথে Edit ও Disconnect।
Coin Moebius → Providers → PayPal (সংযুক্ত) - একটি স্যান্ডবক্স ক্রেতা দিয়ে পরীক্ষা করুন
একটি টেস্ট চেকআউটের মাধ্যমে অর্থ দিতে আপনার স্যান্ডবক্স ক্রেতার লগইন লাগবে। PayPal-এ, Testing Tools → Sandbox Accounts খুলুন আপনার নকল Business ও Personal অ্যাকাউন্ট দেখতে।
PayPal → Testing Tools → Sandbox Accounts - ক্রেতার লগইন বিবরণ নিন
Personal (ক্রেতা) অ্যাকাউন্ট খুলুন এর Login Info দেখতে: স্যান্ডবক্স URL, ইমেইল, ও পাসওয়ার্ড। একটি টেস্ট চেকআউট অর্থ দিতে বললে sandbox.paypal.com-এ ওগুলো দিয়ে সাইন ইন করুন। কোনো আসল অর্থ নড়ে না।
PayPal → Sandbox account → Login Info
যুক্ত করার পর
লাইভ যাওয়ার আগে একটি টেস্ট পেমেন্ট চালান:
- একটি পণ্য তৈরি করুন আর এর Environment Testing-এ নির্ধারণ করুন। তা পণ্যটিকে আপনার স্যান্ডবক্স ক্রেডেনশিয়ালে চালায়, তাই আপনি অর্থ না নাড়িয়ে একটি পুরো অর্ডার দিতে পারেন। (আপনি স্যান্ডবক্স সেট বাদ দিলে, একটি Testing পণ্য লাইভে ফিরে যায়, তাই আগে এটি যোগ করুন।)
- আপনার প্রজেক্টের দিকে নির্দেশিত একটি পৃষ্ঠায় (একটি লোকাল HTML ফাইল চলে) বাই বাটন রাখুন।
- আপনার স্যান্ডবক্স ক্রেতা অ্যাকাউন্ট দিয়ে অর্থ দিয়ে চেকআউট সম্পন্ন করুন।
- Transactions ট্যাব খুলুন। Testing ট্যাগ করা একটি নতুন সারি দেখা দেয়। এর স্ট্যাটাস succeeded-এ পৌঁছালে, আপনার ক্রেডেনশিয়াল আর ওয়েবহুক দুটোই শুরু থেকে শেষ পর্যন্ত কাজ করছে।
আসল পেমেন্টের জন্য প্রস্তুত হলে পণ্যের Environment Live-এ বদলান।
সমস্যা সমাধান
Verify দিয়ে শুরু করুন। ড্যাশবোর্ডে, আপনার client ক্রেডেনশিয়াল যাচাই করতে Verify (বা স্যান্ডবক্সের জন্য Verify test credentials) ক্লিক করুন।
Verify ব্যর্থ হয়।
Client ID ও Client secret আবার কপি করুন। স্যান্ডবক্স অ্যাপ ও লাইভ অ্যাপের ভিন্ন জোড়া আছে, তাই সেগুলো মেশাবেন না।
পেমেন্ট সম্পন্ন হয় কিন্তু অর্ডার মুলতবি থাকে।
Webhook ID আপনার client ক্রেডেনশিয়ালের মতো একই অ্যাপ আর পরিবেশ থেকে আসতে হবে। লাইভ ক্রেডেনশিয়ালের জন্য লাইভ webhook ID দরকার। নিশ্চিত করুন ওয়েবহুক URL মেলে।
এটি শুরু থেকে শেষ পর্যন্ত নিশ্চিত করুন।
PayPal Developer Dashboard → Webhooks Simulator: আপনার ওয়েবহুক URL-এ একটি নমুনা ইভেন্ট পাঠান, তারপর অর্ডার আপডেট হতে দেখুন।
জেনে রাখা ভালো
সিক্রেট রোটেট করা. যেকোনো সময় একটি নতুন client secret তৈরি করুন, তারপর এটি বসান। সম্পাদনায় সিক্রেট ফিল্ড খালি থাকে।
প্রশ্ন আছে? Join our Discord