ভূমিকা
ProPay পেমেন্ট গেটওয়ে ব্যবহার করে আপনি খুব সহজেই আপনার ওয়েবসাইটে bKash এবং Nagad পেমেন্ট গ্রহণ করতে পারবেন। নিচের ডকুমেন্টেশনটি অনুসরণ করে ইন্টিগ্রেশন সম্পন্ন করুন।
এন্ডপয়েন্টসমূহ (Endpoints)
bKash Payment URL
https://payment.propay.cyou/pay/Bkash.php
Nagad Payment URL
https://payment.propay.cyou/pay/Nagad.php
ধাপ ১
পেমেন্ট অনুরোধ (Payment Request)
প্যারামিটার তালিকা:
| প্যারামিটার | আবশ্যক | বর্ণনা |
|---|---|---|
api_key | হ্যাঁ | আপনার ব্যক্তিগত API Key |
uid | হ্যাঁ | ইউনিক ইউজার আইডি |
amount | হ্যাঁ | পেমেন্টের পরিমাণ (BDT) |
order_no | হ্যাঁ | ইউনিক অর্ডার আইডি |
return_url | হ্যাঁ | পেমেন্ট শেষে ইউজার যেখানে ফেরত যাবে |
pass_through_key | হ্যাঁ | আপনার merchant API Key; balance settlement-এর account শনাক্ত করতে ব্যবহৃত হয় |
pass_through_callback_url | হ্যাঁ | সার্ভার-টু-সার্ভার কনফার্মেশন URL; অবশ্যই HTTPS ব্যবহার করুন |
PHP Integration (Bkash & Nagad)
<?php
$my_api_key = 'YOUR_API_KEY';
// আপনার পছন্দের entry point নির্বাচন করুন
$method = 'bkash'; // অথবা 'nagad'
$gateway_url = ($method == 'bkash')
? 'https://payment.propay.cyou/pay/Bkash.php'
: 'https://payment.propay.cyou/pay/Nagad.php';
$params = [
'api_key' => $my_api_key,
'uid' => 'USER123',
'amount' => 100.00,
'order_no' => 'ORD-' . time(),
'return_url' => 'https://yourwebsite.com/success.php',
'pass_through_key' => $my_api_key,
'pass_through_callback_url' => 'https://yourwebsite.com/callback.php'
];
$redirect_url = $gateway_url . '?' . http_build_query($params);
header('Location: ' . $redirect_url);
exit;
?>
ধাপ ২
কলব্যাক নোটিফিকেশন (Webhook)
পেমেন্ট সফল হলে আমাদের সার্ভার থেকে আপনার pass_through_callback_url-এ নিচের ডেটা POST মেথডে পাঠানো হবে:
order_no=ORD-10001 platform_order_no=TZDUJURCKD55W uid=USER123 amount=100.00 status=success signature=CALLBACK_SIGNATURE
- order_no: আপনার পাঠানো ইউনিক অর্ডার আইডি
- amount: কাস্টমারের সফলভাবে পরিশোধিত আসল পরিমাণ (Paid Amount)
- status: পেমেন্ট স্ট্যাটাস (success)
- platform_order_no: নতুন gateway-এর transaction ID
- signature: সিকিউরিটি যাচাই করার HMAC-SHA256 কোড
নিরাপত্তা যাচাইকরণ (Verify Payment)
কলব্যাক ডেটা আসল কিনা তা নিশ্চিত করতে নিচের লজিকটি ব্যবহার করুন। এটি bKash এবং Nagad উভয়ের জন্য একই।
<?php
// callback.php
$received_signature = $_POST['signature'] ?? '';
$order_no = $_POST['order_no'] ?? '';
$amount = $_POST['amount'] ?? ''; // callback-এর paid amount
$api_key = 'YOUR_API_KEY';
// সিগনেচারে দশমিকের জটিলতা এড়াতে ফ্লোট ফরম্যাট নিশ্চিত করা
$formatted_amount = (float)$amount;
// সিগনেচার তৈরি: message = order_no + amount, key = merchant API key
$expected_signature = hash_hmac('sha256', $order_no . $formatted_amount, $api_key);
if (!empty($received_signature) && hash_equals($expected_signature, $received_signature)) {
// পেমেন্ট বৈধ! আপনার ডাটাবেস আপডেট করুন
echo "Success";
} else {
// অবৈধ পেমেন্ট অনুরোধ
http_response_code(403);
echo "Invalid Signature";
}
?>