আপনার যা দরকার
| ফিল্ড | এটি যা করে |
|---|---|
| Access token | চেকআউট লিংক তৈরি করতে আমাদের Square কল করতে দেয়। গোপন। |
| Webhook signature key | নিশ্চিত করে যে একটি ওয়েবহুক সত্যিই Square থেকে এসেছে। গোপন। |
| Location ID | যে Square লোকেশন পেমেন্ট পায়। মুদ্রা নির্ধারণ করে। |
| Success URL / Cancel URL | অর্থ দেওয়ার বা পিছিয়ে যাওয়ার পর ক্রেতা কোথায় পৌঁছান। |
প্রতিটি ফিল্ড আমরা কেন চাই
Access token
চেকআউট লিংক তৈরির অনুমোদন দেয়, তাই চার্জ আপনার অ্যাকাউন্টের মধ্য দিয়ে চলে।
Webhook signature key
প্রমাণ করে যে একটি আগত ওয়েবহুক প্রকৃতপক্ষে Square থেকে, তাই কেউ একটি "paid" ইভেন্ট জাল করতে পারে না। এটি access token থেকে একটি আলাদা মান।
Location ID
Square-কে বলে কোন লোকেশন অর্থ পায়, আর চেকআউট মুদ্রা নির্ধারণ করে। গোপন নয়।
Success and Cancel URL
সাধারণ সেটিং: অর্থ দেওয়ার বা পিছিয়ে যাওয়ার পর ক্রেতা কোথায় পৌঁছান। গোপন নয়।
সেট আপ
- Square Developer ড্যাশবোর্ড খুলুন
developer.squareup.com-এ সাইন ইন করুন। প্রতিটি অ্যাপ্লিকেশনের নিজস্ব ক্রেডেনশিয়াল আছে, আর পরীক্ষার জন্য এর পাশাপাশি একটি বিনামূল্যের Sandbox তৈরি হয়। এই গাইড Sandbox দেখায়; Live ফ্লো হুবহু একই, শুধু Sandbox / Production টগল উল্টে নিন আর আপনার প্রোডাকশন ক্রেডেনশিয়াল ব্যবহার করুন। একটি নতুন অ্যাপ বানাতে, Applications স্ক্রিনে + টাইল ক্লিক করুন।
Square Developer → Applications - আপনার অ্যাপ্লিকেশনের নাম দিন
অ্যাপ্লিকেশনকে একটি নাম দিন যা আপনি চিনবেন (যেমন "Coin Moebius"), তারপর Next ক্লিক করুন।
Square → Name your application - আপনার access token কপি করুন
অ্যাপ খুলুন আর Credentials-এ যান। উপরের Sandbox / Production টগল আপনি যে পরিবেশ সেট আপ করছেন তার সাথে মিলছে নিশ্চিত করুন। Access token-এর পাশে কপি আইকন ক্লিক করুন আর সেটি পাশে রাখুন।
Square → Credentials access token গোপন, এটিকে পাসওয়ার্ডের মতো রাখুন। Sandbox ও Production-এর আলাদা টোকেন আছে, তাই সেগুলো মেশাবেন না।
- আপনার Location ID কপি করুন
বাঁ মেনুতে, Locations খুলুন। যে লোকেশন পেমেন্ট পাবে তার Location ID কপি করুন। এটি চেকআউট মুদ্রা নির্ধারণ করে, তাই যে মুদ্রায় চার্জ করতে চান সেটির লোকেশন বেছে নিন।
Square → Locations - Webhooks → Subscriptions খুলুন
Square একটি ওয়েবহুক এন্ডপয়েন্টকে "subscription" বলে। বাঁ মেনুতে, Webhooks প্রসারিত করুন, Subscriptions খুলুন, আর Add subscription ক্লিক করুন।
Square → Webhooks → Subscriptions → Add subscription - subscription যোগ করুন আর ইভেন্ট নির্বাচন করুন
এটিকে একটি নাম দিন (যেমন "coin-moebius")। Notification URL-এ আপনার প্রজেক্টের Square ওয়েবহুক ঠিকানা (নিচে) পেস্ট করুন। তারপর Events-এর অধীনে, Coin Moebius যে ইভেন্টগুলো শোনে সেগুলো খুঁজে চেক করুন আর Save ক্লিক করুন।
- একবারের পেমেন্ট: payment.created, payment.updated, refund.created, refund.updated, dispute.created, dispute.state.updated।
- সাবস্ক্রিপশন (শুধুমাত্র আপনি সেগুলো বিক্রি করলে): subscription.created, subscription.updated, subscription.canceled, subscription.deactivated, invoice.payment_made, invoice.scheduled_charge_failed। আপনি বারবার বিলিং না করলে এগুলো বাদ দিন।
https://api.coinmoebius.com/webhook/square/<your project id>Square → Add a webhook subscription আপনার প্রজেক্ট আইডি Coin Moebius ড্যাশবোর্ডে প্রজেক্টের নামের নিচে আছে; সেটি উপরের ঠিকানায় বসিয়ে দিন। বাড়তি ইভেন্ট ক্ষতিকর নয়, আমরা যা ব্যবহার করি না তা উপেক্ষা করি। শেষ ধাপের কানেক্টেড প্রোভাইডার কার্ডে একই URL দেখাবে।
- আপনার তৈরি করা subscription খুলুন
Square subscription সেভ করে Webhooks-এর অধীনে Enabled স্ট্যাটাস সহ তালিকায় রাখে। signing key যেখানে আছে সেই বিস্তারিত প্যানেল খুলতে এর নামে ক্লিক করুন।
Square → Webhooks → আপনার subscription (Enabled) - Signature key কপি করুন
subscription-এর Properties প্যানেলে, Signature key-এর পাশে কপি আইকন ক্লিক করুন। এটিই Coin Moebius প্রতিটি ওয়েবহুক সত্যিই Square থেকে এসেছে নিশ্চিত করতে ব্যবহার করে। এটি subscription তৈরির পরেই কেবল থাকে, এই কারণেই কানেক্ট ধাপের আগে ওয়েবহুক এসেছে।
Square → আপনার subscription → Signature key - Coin Moebius-এ ফিরুন: Add provider → Square
আপনার প্রজেক্টে, Providers ট্যাব খুলুন, Add provider ক্লিক করুন, Connect a service বেছে নিন, আর Square বেছে নিন। আপনার Success URL ও Cancel URL নির্ধারণ করুন। Live ট্যাবে আপনার Access token, Webhook signature key, ও Location ID পেস্ট করুন, তারপর Save ক্লিক করুন। আগে স্যান্ডবক্স ক্রেডেনশিয়াল দিয়ে সেট আপ করছেন? বরং Test ট্যাবে সেগুলো পেস্ট করুন, তারপর পরে Edit থেকে লাইভ ক্রেডেনশিয়াল যোগ করুন।
Coin Moebius → Add provider → Square - আপনি সংযুক্ত
Square এখন আপনার Providers ট্যাবে সংযুক্ত হওয়ার তারিখ সহ দেখাবে। কার্ডে একই ওয়েবহুক URL দেখাবে যা আপনি Square-এ পেস্ট করেছেন, সাথে Edit ও Disconnect। লাইভে যাওয়ার আগে শুরু থেকে শেষ পর্যন্ত একটি স্যান্ডবক্স অর্ডার চালাতে Test mode টগল ব্যবহার করুন।
Coin Moebius → Providers → Square (সংযুক্ত) স্যান্ডবক্স কার্ড কখনো একটি আসল কার্ড চার্জ করে না। কার্ড 4111 1111 1111 1111, CVV 111, যেকোনো ভবিষ্যৎ মেয়াদ, যেকোনো বৈধ পোস্টাল কোড (যেমন 94103) ব্যবহার করুন।
যুক্ত করার পর
লাইভ যাওয়ার আগে একটি টেস্ট পেমেন্ট চালান:
- একটি পণ্য তৈরি করুন আর এর Environment Testing-এ নির্ধারণ করুন। তা পণ্যটিকে আপনার স্যান্ডবক্স ক্রেডেনশিয়ালে চালায়, তাই আপনি অর্থ না নাড়িয়ে একটি পুরো অর্ডার দিতে পারেন। (আপনি স্যান্ডবক্স সেট বাদ দিলে, একটি Testing পণ্য লাইভে ফিরে যায়, তাই আগে এটি যোগ করুন।)
- আপনার প্রজেক্টের দিকে নির্দেশিত একটি পৃষ্ঠায় (একটি লোকাল HTML ফাইল চলে) বাই বাটন রাখুন।
- উপরের স্যান্ডবক্স টেস্ট কার্ড দিয়ে চেকআউট সম্পন্ন করুন।
- Transactions ট্যাব খুলুন। Testing ট্যাগ করা একটি নতুন সারি দেখা দেয়। এর স্ট্যাটাস succeeded-এ পৌঁছালে, আপনার ক্রেডেনশিয়াল আর ওয়েবহুক দুটোই শুরু থেকে শেষ পর্যন্ত কাজ করছে।
আসল পেমেন্টের জন্য প্রস্তুত হলে পণ্যের Environment Live-এ বদলান।
সমস্যা সমাধান
Verify দিয়ে শুরু করুন। ড্যাশবোর্ডে, আপনার access token ও লোকেশন যাচাই করতে Verify (বা Verify test credentials) ক্লিক করুন।
Verify ব্যর্থ হয়।
access token ও Location ID আবার কপি করুন। Production ও Sandbox-এর আলাদা টোকেন আছে, তাই সেগুলো মেশাবেন না।
সিগনেচার যাচাই ব্যর্থ হয়, কিংবা অর্ডার মুলতবি থাকে।
Square হুবহু নোটিফিকেশন URL আর বডির উপর সাইন করে। আপনি Square-এ যে URL রেজিস্টার করেন তা আপনার ওয়েবহুক URL-এর সাথে অক্ষরে অক্ষরে মিলতে হবে, কোনো ট্রেইলিং স্ল্যাশ আর কোনো বাড়তি কোয়েরি স্ট্রিং ছাড়া। তারপর সেই একই এন্ডপয়েন্ট থেকে signature key আবার কপি করুন।
এটি শুরু থেকে শেষ পর্যন্ত নিশ্চিত করুন।
Square Developer Console → Webhooks → your subscription → Send Test Event, তারপর অর্ডার আপডেট হতে দেখুন।
জেনে রাখা ভালো
মুদ্রা লোকেশন অনুসরণ করে. আপনি যে লোকেশনের আইডি দেন তার মুদ্রায় চেকআউট চার্জ করে।
সিক্রেট রোটেট করা. যেকোনো সময় access token বা signature key রোল করুন, তারপর নতুন মান বসান। সম্পাদনায় সিক্রেট ফিল্ড খালি থাকে।
প্রশ্ন আছে? Join our Discord