পরীক্ষা এবং লাইভ বিলিং সম্পূর্ণ আলাদা রেখে এককালীন চালান এবং পুনরাবৃত্তিমূলক সদস্যতার জন্য WHMCS থেকে HandyPay-এ সংযোগ করুন।
চেকলিস্ট তৈরি করুন
- মার্চেন্ট পোর্টালে একটি API কী তৈরি করুন।
hp_test_চাবি। - WHMCS গেটওয়ে কনফিগারেশনে কীটি সংরক্ষণ করুন। এটি কখনই ক্লায়েন্ট-সাইড JavaScript বা কোনও পাবলিক টেমপ্লেটে রাখবেন না।
- ব্যবহার করুন
https://api.handypay.me/api/v1API বেস URL হিসাবে। - একটি ওয়েবহুক এন্ডপয়েন্ট রেজিস্টার করুন যা অর্থ প্রদান এবং সাবস্ক্রিপশন জীবনচক্রের ইভেন্টগুলি পেতে পারে।
- একটি সম্পূর্ণ পরীক্ষার চালান চালান দিয়ে কী প্রতিস্থাপন করার আগে
hp_live_চাবি।
নিরাপদে পরীক্ষা করুন।
টেস্ট কীগুলি একটি নিবেদিত টেস্ট অ্যাকাউন্ট ব্যবহার করে। পণ্য, গ্রাহক, অর্থ প্রদান, সাবস্ক্রিপশন এবং একটি টেস্ট কী দিয়ে তৈরি ওয়েবহুক এন্ডপয়েন্টগুলি লাইভ ক্রিয়াকলাপে উপস্থিত হতে পারে না।
curl https://api.handypay.me/api/v1/test-payments \
-H "Authorization: Bearer hp_test_your_api_key_here"HandyPay মার্চেন্ট পোর্টালে টেস্ট মোডের অধীনে একই কার্যকলাপ দৃশ্যমান।
চেকআউটের আচরণ
প্রতিটি WHMCS চালানের জন্য একটি হোস্ট করা পেমেন্ট সেশন তৈরি করুন। HandyPay বণিক, মুদ্রা, গ্রাহক এবং যন্ত্রের জন্য যোগ্য পেমেন্ট পদ্ধতি দেখায়। অতিরিক্ত পদ্ধতি যোগ্য না হলে কার্ড চেকআউট উপলব্ধ থাকে।
curl -X POST https://api.handypay.me/api/v1/payment-sessions \
-H "Authorization: Bearer hp_test_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"line_items": [{
"amount": 4999,
"currency": "usd",
"name": "WHMCS invoice #1042",
"quantity": 1
}],
"customer_email": "buyer@example.com",
"success_url": "https://billing.example.com/payment-complete",
"cancel_url": "https://billing.example.com/viewinvoice.php?id=1042",
"metadata": { "whmcs_invoice_id": "1042" }
}'Google Pay ইতিমধ্যেই সক্রিয়। মডিউলে যোগ করার মতো কোনো Google Pay ফিল্ড নেই। গ্রাহক ও পেমেন্ট যোগ্য হলে Stripe Checkout এটি স্বয়ংক্রিয়ভাবে দেখায়।
- Google Wallet-এ সক্রিয় কার্ডসহ সামঞ্জস্যপূর্ণ ডিভাইসে সমর্থিত ব্রাউজার দিয়ে পরীক্ষা করুন।
- প্রাইভেট বা ইনকগনিটো উইন্ডো ব্যবহার করবেন না এবং সংরক্ষিত পেমেন্ট পদ্ধতি পরীক্ষা করতে ব্রাউজারকে অনুমতি দিন।
- Google Pay-কে কার্ড ওয়ালেট হিসেবে জানানো হয়, তাই বিদ্যমান Checkout সেশন ও webhook প্রবাহ WHMCS ইনভয়েস সমন্বয় করতে থাকে।
আসন ও সদস্যতা
একবার একটি সাবস্ক্রিপশন পণ্য তৈরি করুন, তারপর গ্রাহকের জন্য একটি সাবস্ক্রিপশন সেশন তৈরি করুন। quantity প্রতি আসনের বিলিং-এর জন্য। সক্রিয় সদস্যপদগুলি প্রতিস্থাপন না করেই আপডেট করা যেতে পারে।
curl -X PATCH https://api.handypay.me/api/v1/subscriptions/sub_123/quantity \
-H "Authorization: Bearer hp_test_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"quantity": 8,
"proration_behavior": "create_prorations"
}'create_prorationsপরবর্তী চালানটিতে সমন্বয় স্থাপন করুন।always_invoiceঅবিলম্বে সমন্বয় চালান।noneকোনও পূর্বনির্ধারিত সমন্বয় ছাড়াই আসন গণনা পরিবর্তন করুন।
Webhooks
চেকআউট দ্বারা ব্যবহৃত একই কী মোডের সাথে WHMCS কলব্যাক URL-এ রেজিস্টার করুন। একটি পরীক্ষার শেষ বিন্দু শুধুমাত্র পরীক্ষার ইভেন্টগুলি গ্রহণ করে এবং একটি লাইভ শেষ বিন্দু শুধুমাত্র লাইভ ইভেন্টগুলি গ্রহণ করে।
curl -X POST https://api.handypay.me/api/v1/webhook-endpoints \
-H "Authorization: Bearer hp_test_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"url": "https://billing.example.com/modules/gateways/callback/handypay.php",
"events": [
"payment_intent.succeeded",
"payment_intent.payment_failed",
"customer.subscription.updated",
"customer.subscription.deleted"
]
}'সমস্যা সমাধান
Google Pay দেখা যাচ্ছে না: Google Wallet-এ একটি সক্রিয় কার্ড আছে কি না নিশ্চিত করুন, প্রাইভেট ব্রাউজিংয়ের বাইরে সমর্থিত ব্রাউজার ও ডিভাইস ব্যবহার করুন এবং সংরক্ষিত পেমেন্ট পদ্ধতি পরীক্ষা করতে ব্রাউজারকে অনুমতি দিন। অসমর্থিত অঞ্চল বা লেনদেনের জন্য Stripe তবুও ওয়ালেট লুকাতে পারে; কার্ড সমর্থিত বিকল্প হিসেবে থাকে।
একটি পরীক্ষার অর্থ প্রদান অনুপস্থিতঃ ব্যবহৃত অনুরোধটি নিশ্চিত করুন hp_test_ কী, তারপর পোর্টাল টেস্ট মোড ওয়ার্কস্পেস পরীক্ষা করুন অথবা GET /v1/test-payments.
WHMCS আপডেট হচ্ছে নাঃ নিশ্চিত করুন যে কলব্যাক URL সর্বজনীন HTTPS, কাঁচা অনুরোধ সংস্থার বিরুদ্ধে ওয়েবহুক স্বাক্ষর যাচাই করুন এবং চালান আপডেট সফল হওয়ার পরেই একটি সফল 2XX প্রতিক্রিয়া ফেরত দিন।