সহজ ৫টি ধাপে আপনার ওয়েবসাইটে আমাদের গেটওয়ে যুক্ত করার পূর্ণাঙ্গ গাইডলাইন।
মার্চেন্ট ডাটা এনক্রিপ্ট (AES-256-GCM) করে আমাদের এন্ডপয়েন্টে পাঠান।
কাস্টমার বিকাশ/নগদ/রকেট দিয়ে পেমেন্ট সম্পন্ন করবে।
আপনার সার্ভার থেকে আমাদের ভেরিফিকেশন এপিআই কল করে পেমেন্ট নিশ্চিত করুন।
নিচের এন্ডপয়েন্টে এনক্রিপ্টেড টোকেন রিকোয়েস্ট পাঠান।
| প্যারামিটার | টাইপ | আবশ্যক | বিবরণ |
|---|---|---|---|
user_id | String | হ্যাঁ | আপনার মার্চেন্ট আইডি। |
domain | String | হ্যাঁ | আপনার অনুমোদিত ডোমেইন নাম। |
amount | Decimal | হ্যাঁ | টাকার পরিমাণ (উদা: 500.00)। |
order_id | String | হ্যাঁ | ইউনিক অর্ডার আইডি। |
timestamp | Int | হ্যাঁ | বর্তমান Unix Timestamp। |
nonce | String | হ্যাঁ | ইউনিক র্যান্ডম স্ট্রিং (Replay Protection)। |
<?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();
?>
সাকসেস পেজে পেমেন্ট কনফার্ম করতে সরাসরি ডিক্রিপ্ট না করে আমাদের এপিআই ব্যবহার করা নিরাপদ।
<?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 Failed | HMAC সিগনেচার মেলেনি। |
| Duplicate Request Detected | একই টোকেন বারবার ব্যবহারের চেষ্টা। |
| Request Timeout | লিঙ্ক তৈরির ৫ মিনিট পর ব্যবহারের চেষ্টা। |
| Domain Not Authorized | মার্চেন্ট প্যানেলে ডোমেইন যুক্ত নেই। |
উত্তর: নিরাপত্তার স্বার্থে প্রতিটি টোকেন বা লিঙ্ক জেনারেট করার পর ৫ মিনিট পর্যন্ত কার্যকর থাকে।
উত্তর: না, Replay Protection এর কারণে একটি টোকেন বা Nonce শুধুমাত্র একবারই ব্যবহার করা যাবে।
ইন্টিগ্রেশন করতে কোনো সমস্যায় পড়লে আমাদের ডেভেলপার টিমকে জানান। আমরা আপনাকে সব ধরনের সহযোগিতা করব।