ProPay

ভূমিকা

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";
}
?>