DEV Community

MD. Feraj Mukatadir
MD. Feraj Mukatadir

Posted on

bkash এর পেমেন্ট গেটওয়ে তৈরী করার নিয়ম

Bkash Payment Gateway সেটআপ করতে চাইলে আপনাকে কিছু ধাপ অনুসরণ করতে হবে। নিচে আমি ধাপে ধাপে কীভাবে আপনি Bkash Payment Gateway ইন্টিগ্রেট করতে পারেন, তার একটি গাইড দিচ্ছি। এর জন্য আমরা Bkash's Merchant API ব্যবহার করবো।

১. Bkash API Integration এর জন্য প্রয়োজনীয় বিষয়সমূহ
Bkash Merchant Account: আপনার একটি Bkash Merchant Account থাকতে হবে। না থাকলে Bkash Merchant এর জন্য আবেদন করতে পারেন।
API Credentials: Merchant Account সেটআপ করার পরে Bkash আপনাকে API Username, API Password, App Key, এবং App Secret প্রদান করবে।
SSL Certificate: Bkash পেমেন্ট গেটওয়ের জন্য একটি SSL সার্টিফিকেট বাধ্যতামূলক।
Webhook URL: পেমেন্ট নোটিফিকেশন পেতে হলে আপনাকে একটি Webhook URL সেট করতে হবে।
২. পেমেন্ট গেটওয়ে ইন্টিগ্রেশন প্রসেস
ধাপ ১: Environment Setup
প্রথমে আপনার PHP environment বা অন্য কোনো সার্ভার-সাইড environment সেটআপ করুন।

composer.json ফাইল (যদি PHP ব্যবহার করেন)
json
Copy code
{
"require": {
"guzzlehttp/guzzle": "^7.0"
}
}
এরপর composer install রান করুন।

ধাপ ২: ফাইল এবং ডিরেক্টরি স্ট্রাকচার
plaintext
Copy code
project-root/
├── index.php
├── bkash/
│ ├── config.php
│ ├── token.php
│ ├── create_payment.php
│ ├── execute_payment.php
│ └── query_payment.php
└── success.php
ধাপ ৩: Bkash API Configuration (bkash/config.php)
php
Copy code
<?php
return [
'base_url' => 'https://checkout.sandbox.bka.sh/v1.2.0-beta',
'username' => 'YOUR_BKASH_USERNAME',
'password' => 'YOUR_BKASH_PASSWORD',
'app_key' => 'YOUR_APP_KEY',
'app_secret' => 'YOUR_APP_SECRET',
'callback_url' => 'https://fqrhost.com/success.php'
];
?>
ধাপ ৪: Access Token Generate (bkash/token.php)
php
Copy code
<?php
$config = include('config.php');

function generateToken() {
global $config;
$url = $config['base_url'] . '/checkout/token/grant';
$headers = [
'Content-Type:application/json',
'username:' . $config['username'],
'password:' . $config['password']
];

$data = [
    'app_key' => $config['app_key'],
    'app_secret' => $config['app_secret']
];

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($curl);
curl_close($curl);

$response = json_decode($result, true);
return $response['id_token'];
Enter fullscreen mode Exit fullscreen mode

}

$token = generateToken();
?>
ধাপ ৫: Create Payment (bkash/create_payment.php)
php
Copy code
<?php
include('token.php');

function createPayment($amount) {
global $config, $token;
$url = $config['base_url'] . '/checkout/payment/create';
$headers = [
'Content-Type:application/json',
'authorization:' . $token,
'x-app-key:' . $config['app_key']
];

$data = [
    'amount' => $amount,
    'currency' => 'BDT',
    'intent' => 'sale',
    'merchantInvoiceNumber' => 'INV-' . uniqid(),
    'callbackURL' => $config['callback_url']
];

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($curl);
curl_close($curl);

return json_decode($result, true);
Enter fullscreen mode Exit fullscreen mode

}

$response = createPayment(1000); // ১০০০ টাকা পেমেন্ট
header('Location: ' . $response['bkashURL']);
?>
ধাপ ৬: Execute Payment (bkash/execute_payment.php)
php
Copy code
<?php
include('token.php');

function executePayment($paymentID) {
global $config, $token;
$url = $config['base_url'] . '/checkout/payment/execute/' . $paymentID;
$headers = [
'Content-Type:application/json',
'authorization:' . $token,
'x-app-key:' . $config['app_key']
];

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($curl);
curl_close($curl);

return json_decode($result, true);
Enter fullscreen mode Exit fullscreen mode

}

if (isset($_GET['paymentID'])) {
$response = executePayment($_GET['paymentID']);
echo '

';
print_r($response);
echo '
';
}
?>
ধাপ ৭: Success Page (success.php)
php
Copy code
<?php
echo "Payment Successful!";
?>
৩. সিস্টেমের টেস্টিং
Bkash এর Sandbox Environment ব্যবহার করে আপনার সিস্টেমটি টেস্ট করতে পারেন।
Production Mode ব্যবহার করতে হলে Bkash থেকে আপনার API Key ও URL আপডেট করুন।
৪. Webhook সেটআপ (ঐচ্ছিক)
Bkash পেমেন্ট আপডেটের জন্য Webhook URL ব্যবহার করতে পারেন। এতে আপনাকে নোটিফিকেশন পাঠানো হবে পেমেন্টের তথ্যসহ।

buy domain hosting

Top comments (0)