RESTful Payment Automation API Base URL: https://www.mcqhub.thetextualmentor.top

যেকোনো ওয়েবসাইট, Python, Laravel বা WHMCS-এ অটোমেটিক পেমেন্ট যুক্ত করুন

আমাদের গেটওয়ে ব্যবহার করে বিকাশ, নগদ, রকেট, উপায়, সেলফিন (CellFin) ও ট্যাপ (Tap) পেমেন্ট সরাসরি আপনার অ্যাকাউন্টে গ্রহণ করুন। প্রতিটি রিকোয়েস্টের Header-এ আপনার মার্চেন্ট ড্যাশবোর্ডের X-Public-Key এবং X-Secret-Key পাঠাতে হবে।

Required Request Headers Accept: application/json X-Public-Key: pk_live_your_public_key X-Secret-Key: sk_live_your_secret_key
সাপোর্টেড পেমেন্ট মেথডসমূহ:
bKash Nagad Rocket Upay CellFin Tap
POST https://www.mcqhub.thetextualmentor.top/api/v1/payment/create
Parameter Type Required Description
merchant_order_id string Yes আপনার ওয়েবসাইটের অর্ডার আইডি (যেমন: ORD-1001)
amount number Yes টাকার পরিমাণ (সর্বনিম্ন ১০ টাকা)
customer_name string Optional কাস্টমারের নাম
success_url url Optional পেমেন্ট সফল হলে কাস্টমার যে লিংকে ফিরে যাবে
webhook_url url Optional পেমেন্ট ভেরিফাই হওয়ার সাথে সাথে যে লিংকে সার্ভার নোটিফিকেশন পাঠাবে
import requests

API_URL = "https://www.mcqhub.thetextualmentor.top/api/v1/payment/create"
HEADERS = {
    "Accept": "application/json",
    "X-Public-Key": "pk_live_YOUR_PUBLIC_KEY",
    "X-Secret-Key": "sk_live_YOUR_SECRET_KEY"
}

payload = {
    "merchant_order_id": "ORD-1001",
    "amount": 500,
    "customer_name": "Tanvir Ahmed",
    "customer_phone": "01711223344",
    "success_url": "https://yourwebsite.com/payment/success",
    "cancel_url": "https://yourwebsite.com/payment/cancel",
    "webhook_url": "https://yourwebsite.com/api/payment/webhook"
}

response = requests.post(API_URL, json=payload, headers=HEADERS, timeout=15)
data = response.json()

if response.status_code == 200 and data.get("status") == "success":
    print("Redirect Customer to:", data["payment_url"])
else:
    print("Error:", data.get("message"))

৪. অটোমেটিক Webhook ভেরিফিকেশন এবং WHMCS / WooCommerce প্লাগইন

পেমেন্ট সফল হওয়ার সাথে সাথে আপনার webhook_url-এ নিচের JSON পেলোড যাবে:

{
    "event": "payment.completed",
    "session_id": "2f9c18f9-974b-4f68-b5f3-fad01e9b1e99",
    "merchant_order_id": "ORD-1001",
    "amount": 500,
    "provider": "bkash",
    "trx_id": "BJM890XYZ1",
    "status": "completed"
}
WHMCS Billing Module

WHMCS সাইটে কানেক্ট করুন

মডিউলটি ডাউনলোড করে আপনার WHMCS-এর /modules/gateways/ ফোল্ডারে আপলোড করুন।

⬇️ ডাউনলোড WHMCS Module
WordPress Plugin

WooCommerce সাইটে কানেক্ট করুন

প্লাগইনটি ডাউনলোড করে WordPress Plugins অপশন থেকে ইনস্টল ও API Key সেট করুন।

⬇️ ডাউনলোড WooCommerce Plugin

৫. স্টেপ-বাই-স্টেপ বাংলা সেটআপ ব্লগ

Laravel Integration

পর্ব ১: আপনার Laravel বা ই-কমার্স ওয়েবসাইটে কীভাবে অটোমেটিক পেমেন্ট যুক্ত করবেন? (প্রাথমিক প্রস্তুতি)

প্রথমে আমাদের ওয়েবসাইটে একটি মার্চেন্ট অ্যাকাউন্ট খুলুন এবং ড্যাশবোর্ডের 'পেমেন্ট নম্বর সেটআপ' মেনু থেকে আপনার নিজের বিকাশ, নগদ বা রকেট নম্বর চালু করুন। এরপর 'API Key ও অ্যাপ কানেকশন' পেজ থেকে আপনার Public API Key এবং Secret Key কপি করুন। এবার আপনার নিজের Laravel প্রজেক্টের .env ফাইল এবং config/services.php ফাইলে নিচের কোডটুকু বসান:
# ১. আপনার Laravel প্রজেক্টের .env ফাইলে বসান:
PAYAUTO_BASE_URL="https://mcqhub.thetextualmentor.top"
PAYAUTO_PUBLIC_KEY="pk_live_আপনার_পাবলিক_কি"
PAYAUTO_SECRET_KEY="sk_live_আপনার_সিক্রেট_কি"

# ২. আপনার প্রজেক্টের config/services.php ফাইলের ভেতরে বসান:
'payauto' => [
    'base_url'   => env('PAYAUTO_BASE_URL', 'https://mcqhub.thetextualmentor.top'),
    'public_key' => env('PAYAUTO_PUBLIC_KEY'),
    'secret_key' => env('PAYAUTO_SECRET_KEY'),
],
Laravel Integration

পর্ব ২: পেমেন্ট রিকোয়েস্ট পাঠানো এবং অটোমেটিক অর্ডার কনফার্ম করার Controller কোড

আপনার নিজের Laravel প্রজেক্টের ভেতরে `app/Http/Controllers/PayAutoCallbackController.php` নামে একটি ফাইল তৈরি করুন। নিচের কোডটি সেখানে কপি-পেস্ট করে দিন। কাস্টমার পেমেন্ট ভেরিফাই করার সাথে সাথে `handleWebhook` মেথডে সিগন্যাল চলে আসবে এবং আপনার ডাটাবেসে অর্ডারটি অটোমেটিক Paid হয়ে যাবে!
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;

class PayAutoCallbackController extends Controller
{
    public function initiatePayment(Request $request)
    {
        $baseUrl = rtrim(config('services.payauto.base_url'), '/');

        $response = Http::withHeaders([
            'Accept'       => 'application/json',
            'X-Public-Key' => config('services.payauto.public_key'),
            'X-Secret-Key' => config('services.payauto.secret_key'),
        ])->post("{$baseUrl}/api/v1/payment/create", [
            'merchant_order_id' => $request->input('order_id', 'ORD-' . rand(1000, 9999)),
            'amount'            => (float) $request->input('amount', 500),
            'customer_name'     => $request->input('customer_name', 'Customer'),
            'customer_phone'    => $request->input('customer_phone', '01700000000'),
            'success_url'       => route('payauto.success'),
            'cancel_url'        => route('payauto.cancel'),
            'webhook_url'       => route('payauto.webhook'),
        ]);

        $data = $response->json();
        if (!empty($data['payment_url'])) {
            return redirect()->away($data['payment_url']);
        }
        return back()->with('error', 'পেমেন্ট গেটওয়ে কানেকশন ব্যর্থ হয়েছে।');
    }

    public function handleWebhook(Request $request)
    {
        $payload = $request->all();
        if (($payload['status'] ?? '') === 'completed') {
            // এখানে আপনার Order টেবিলের স্ট্যাটাস Paid করে দিন:
            // Order::where('id', $payload['merchant_order_id'])->update(['status' => 'paid']);
            return response()->json(['status' => 'success']);
        }
        return response()->json(['status' => 'ignored']);
    }

    public function paymentSuccess(Request $request)
    {
        return redirect('/')->with('success', 'পেমেন্ট সফল হয়েছে! TrxID: ' . $request->query('trx_id'));
    }

    public function paymentCancel()
    {
        return redirect('/')->with('error', 'পেমেন্ট বাতিল করা হয়েছে।');
    }
}
Laravel Integration

পর্ব ৩: আপনার ওয়েবসাইটের routes/web.php এবং Checkout বাটন সেটআপ

এবার আপনার Laravel প্রজেক্টের `routes/web.php` ফাইলে নিচের ৪টি রাউট যুক্ত করুন এবং আপনার চেকআউট বা অর্ডার পেজে HTML ফর্মটি বসিয়ে দিন। তাহলেই আপনার ই-কমার্স ওয়েবসাইটে ১০০% অটোমেটিক পেমেন্ট চালু হয়ে যাবে!
// ১. routes/web.php ফাইলে বসান:
use App\Http\Controllers\PayAutoCallbackController;

Route::post('/payauto/pay', [PayAutoCallbackController::class, 'initiatePayment'])->name('payauto.pay');
Route::get('/payauto/success', [PayAutoCallbackController::class, 'paymentSuccess'])->name('payauto.success');
Route::get('/payauto/cancel', [PayAutoCallbackController::class, 'paymentCancel'])->name('payauto.cancel');
Route::post('/api/payauto/webhook', [PayAutoCallbackController::class, 'handleWebhook'])->name('payauto.webhook');

// ২. আপনার Blade ফাইলে পেমেন্ট বাটন বসান:
<form action="{{ route('payauto.pay') }}" method="POST">
    @csrf
    <input type="hidden" name="order_id" value="ORD-1001">
    <input type="hidden" name="amount" value="500">
    <button type="submit">বিকাশ / নগদে পেমেন্ট করুন</button>
</form>