NagorPay API Documentation

সহজ ৫টি ধাপে আপনার ওয়েবসাইটে আমাদের গেটওয়ে যুক্ত করার পূর্ণাঙ্গ গাইডলাইন।

পেমেন্ট প্রসেস কিভাবে কাজ করে?

১. রিকোয়েস্ট পাঠান

মার্চেন্ট ডাটা এনক্রিপ্ট (AES-256-GCM) করে আমাদের এন্ডপয়েন্টে পাঠান।

২. কাস্টমার পেমেন্ট

কাস্টমার বিকাশ/নগদ/রকেট দিয়ে পেমেন্ট সম্পন্ন করবে।

৩. ভেরিফিকেশন

আপনার সার্ভার থেকে আমাদের ভেরিফিকেশন এপিআই কল করে পেমেন্ট নিশ্চিত করুন।

কাজ শুরু করার আগে চেকলিস্ট

ধাপ ১: পেমেন্ট রিকোয়েস্ট (Initiation)

নিচের এন্ডপয়েন্টে এনক্রিপ্টেড টোকেন রিকোয়েস্ট পাঠান।

GET https://www.nagorpay.codebabu.top/api/api_process?token={ENCRYPTED_TOKEN}
প্যারামিটারটাইপআবশ্যকবিবরণ
user_idStringহ্যাঁআপনার মার্চেন্ট আইডি।
domainStringহ্যাঁআপনার অনুমোদিত ডোমেইন নাম।
amountDecimalহ্যাঁটাকার পরিমাণ (উদা: 500.00)।
order_idStringহ্যাঁইউনিক অর্ডার আইডি।
timestampIntহ্যাঁবর্তমান Unix Timestamp।
nonceStringহ্যাঁইউনিক র্যান্ডম স্ট্রিং (Replay Protection)।

ধাপ ২: পিএইচপি কোড স্যাম্পল (PHP - Secured)

<?php
/**
 * NagorPay Advanced Security Implementation
 */
$merchant_id = "YOUR_MERCHANT_ID";
$secret_key  = "YOUR_32_CHAR_SECRET_KEY"; 
$hmac_key    = "YOUR_HMAC_INTEGRITY_KEY"; 

$data = [
    'user_id'   => $merchant_id,
    'domain'    => 'yourwebsite.com',
    'amount'    => '100.00',
    'order_id'  => 'INV-' . time(),
    'success_url' => 'https://yourwebsite.com/success.php',
    'timestamp'   => time(),
    'nonce'       => bin2hex(random_bytes(16))
];

// ১. AES-256-GCM এনক্রিপশন
$payload   = json_encode($data);
$iv        = random_bytes(12); // Random IV
$encrypted = openssl_encrypt($payload, "aes-256-gcm", $secret_key, OPENSSL_RAW_DATA, $iv, $tag);

// ২. HMAC-SHA256 সিগনেচার
$signature = hash_hmac('sha256', $iv . $tag . $encrypted, $hmac_key);

// ৩. সিকিউর টোকেন (IV::TAG::HMAC::DATA)
$token = bin2hex($iv . "::" . $tag . "::" . $signature . "::" . $encrypted);

$redirect_url = "https://www.nagorpay.codebabu.top/api/api_process?token=" . $token;

header("Location: " . $redirect_url);
exit();
?>

৩. পেমেন্ট ভেরিফিকেশন (Server-to-Server)

সাকসেস পেজে পেমেন্ট কনফার্ম করতে সরাসরি ডিক্রিপ্ট না করে আমাদের এপিআই ব্যবহার করা নিরাপদ।

POST https://www.nagorpay.codebabu.top/api/api_process
<?php
/**
 * পেমেন্ট স্ট্যাটাস ভেরিফাই করার এপিআই কল
 */
$api_url = "https://www.nagorpay.codebabu.top/api/api_process";
$post_data = [
    'action'  => 'verify',
    'user_id' => 'YOUR_MERCHANT_ID',
    'api_key' => 'YOUR_SECRET_KEY',
    'trx_id'  => $_GET['trx_id'] // সাকসেস লিঙ্ক থেকে আসা TRX ID
];

$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$response = curl_exec($ch);
$result = json_decode($response, true);

if($result && $result['payment_status'] == 'success') {
    echo "Payment Verified! Amount: " . $result['amount'];
}
?>

৪. কমন এরর মেসেজসমূহ

মেসেজকারণ
Security Integrity Check FailedHMAC সিগনেচার মেলেনি।
Duplicate Request Detectedএকই টোকেন বারবার ব্যবহারের চেষ্টা।
Request Timeoutলিঙ্ক তৈরির ৫ মিনিট পর ব্যবহারের চেষ্টা।
Domain Not Authorizedমার্চেন্ট প্যানেলে ডোমেইন যুক্ত নেই।

নিরাপত্তা সতর্কতা

NagorPay এখন AES-256-GCM এনক্রিপশন ব্যবহার করে। আপনার Secret Key এবং HMAC Key কখনোই পাবলিকলি শেয়ার করবেন না। প্রতিটি রিকোয়েস্টের জন্য একটি নতুন Nonce জেনারেট করা বাধ্যতামূলক।

৫. সাধারণ প্রশ্ন (FAQ)

প্রশ্ন: পেমেন্ট লিঙ্ক কতক্ষণ কার্যকর থাকে?

উত্তর: নিরাপত্তার স্বার্থে প্রতিটি টোকেন বা লিঙ্ক জেনারেট করার পর ৫ মিনিট পর্যন্ত কার্যকর থাকে।

প্রশ্ন: একটি টোকেন কি একাধিকবার ব্যবহার করা যায়?

উত্তর: না, Replay Protection এর কারণে একটি টোকেন বা Nonce শুধুমাত্র একবারই ব্যবহার করা যাবে।

টেকনিক্যাল সাপোর্ট প্রয়োজন?

ইন্টিগ্রেশন করতে কোনো সমস্যায় পড়লে আমাদের ডেভেলপার টিমকে জানান। আমরা আপনাকে সব ধরনের সহযোগিতা করব।