sha443/bml-connect
is a laravel package for Bank of Maldives Connect API v2.0.
- Requires PHP 7.3 or higher
- Laravel 5.5 or higher
production
orsandbox
API key [get from BML Merchant Portal]
composer require sha443/bml-connect
Don't forget to run
composer dump-autoload
Set BML_CLIENT_SECRET
and BML_CLIENT_ID
in the .env
file
If you want to get a sandbox
client:
use SHA443\BMLConnect\Client;
$client = new Client("sandbox");
If you want to get a production
client:
use SHA443\BMLConnect\Client;
$client = new Client(); // passing 'production' is optional
//or
$client = new Client("production");
If you want to pass additional GuzzleHTTP options:
use SHA443\BMLConnect\Client;
$options = ['headers' => ['foo' => 'bar']];
$client = new Client('sandbox', $options);
- Create transaction with a specific payment method
- Create transaction without a specific payment method
- Get a transaction details
- List all transactions (with pagination)
- Verify signature
use SHA443\BMLConnect\Client;
$client = new Client();
$json = [
"provider" => "bml_epos", // Payment method enabled for your merchant account such as bcmc, alipay, card, bml_epos
"currency" => "MVR",
"amount" => 1000, // 10.00 MVR, transaction amount should be an integer ([in Laari](https://en.wikipedia.org/wiki/Maldivian_laari))
"localId" => "Test_001", // your reference id
"redirectUrl" => "https://example.com/order/123" // Optional redirect after payment completion
];
$transaction = $client->transactions->create($json);
return redirect($transaction["url"]); // Go to transaction payment page
Create transaction without a payment method that will redirect to the payment method selection screen
use SHA443\BMLConnect\Client;
$client = new Client();
$json = [
"currency" => "MVR",
"amount" => 1000, // 10.00 MVR, transaction amount should be an integer ([in Laari](https://en.wikipedia.org/wiki/Maldivian_laari))
"localId" => "Test_001", // your reference id
"redirectUrl" => "https://example.com/order/987" // Optional redirect after payment completion
];
$transaction = $client->transactions->create($json);
return redirect($transaction["url"]); // Go to transaction payment page
You'll get a response from BML as transactionId=xxxxx&state=CONFIRMED&signature=xxx
use SHA443\BMLConnect\Client;
use SHA443\BMLConnect\Models\Transaction;
use SHA443\BMLConnect\Traits\Signature;
$client = new Client();
$json = [
"currency" => "MVR",
"amount" => 1000
];
$transaction = (new Transaction())->fromArray($json);
$verified = (new Signature($transaction))->verify($signature);
Developer: Shahidul Islam Email: shahidcseku@gmail.com, shahidul.islam@villacollege.edu.mv
Any bug report/feature request is welcomed.
This package is built on bml-connect-php but does not rely on it. It's a modified laravel friendly-package distributed under MIT License.