vptrading / h5-telebirr-laravel
Laravel package for H5 telebirr api
Requires
- php: ^7.4 || ^8.0
README
Laravel Package For
Telebirr
Introduction
This Laravel package is a featherweight package to integrate Telebirr®.
Usage Guide
This is a private package, meaning there is no way to require it using composer.
Step One
Install the package using composer require vptrading/h5-telebirr-laravel
Step Two
Run the artisan command to publish the Vptrading/telebirr-laravel configuration file.
php artisan vendor:publish --provider="Vptrading\TelebirrLaravel\TelebirrServiceProvider"
After running that command you will see a telebirr.php
configuration file in your application's config
directory.
Step Four
Open the telebirr.php
configuration file and add the key's provided to you from Telebirr®
Usage
Buy
In order to send a buy request using Telebirr® all you have to do is import the Telebirr
class where you want to use it and call the buy
static method. The Telebirr::buy()
method accepts for parameters, these are: Item name, amount, return url and shortcode.
Example
use Vptrading\TelebirrLaravel\Telebirr;
$response = Telebirr::buy('iPhone', 999, 'https://domain.tld/return', 0000);
Note: The
ShortCode
is provided by Ethio Telecom
When calling that method it return a response
Response Example
{
"teleResponse": {
"code": 200,
"data": {
"toPayUrl": "https://app.ethiomobilemoney.et:2121/ammwebpay/#/?transactionNo=202202151208181493512480051392514"
},
"message": "Operation successful",
"dateTime": 1644916098027,
"path": null,
"errorDetails": [],
"extraData": []
},
"outTradeNo": "76c1aace47b3dc0a"
}
Note: Make sure to store the
outTradeNo
in your database so you can fetch that transaction when you receive the notification.
Using the toPayUrl you will be redirected to Ethio Telecom's Telebirr® site where the user will be able to pay using the Telebirr® mobile app or using SMS right there from the browser.
Notify
The next is being notified when a payment is successfull. After the user has paid the amount described, Telebirr® will send you a notification on the URL you specified in the telebirr.php
config file.
Example Notification String From Telebirr®
VBMDvN6H2U/AGbxocLQgZfJOR2rLLqTZ5pHm6295AZS4uFXR1YMPJlF+SCoJK0DLzZ2OlgGMsVPrwfJ1lmKHtOvnDGJLKrcpIG/J7RLf+tN672g+lT5o3tByvQBkjqualj91i7uNqCytNFfVN5azw7VV+OwXBMu5gnGhZPX5D4plBtOjyMWm8IYsM4uqy9V7Os+jPk7w3QBHSMB8jRRhVABT9xAzTPWC1J86xAIaTA1ehjHcbY9ziA1+P5kNQSULunOMhCA+fn0Y2HZyyFySW+dU+DHWnwf0mjGa/xF669CQttTqcmIg4QLu0TUzYjhHl1l5gbAxrwK//amHL5I2wpUhCeeSS5E4tq/TmoqVdJoZC0/gvu2Zta/9orfbzWz/xYeKefvkRaHVUid0fRu6x0xGnVe115OPCm79Y0dU43mxMVhmPza45qxGwcmsbGzs1drMiu2BJI664f0kt8lfZAUVwhIMAZbdB4MnP7gi1pnW3vBZLAtAvSCY45X/gl1sqo1X9Ypdg9jd5fCQp0b44NKI7JojYTXWrtsFWYxOAiLB9zh53Bah6WjHSnHauBbRU8eeE2Lt6Lv+QzXlu2uCjRveBH9mauNyt5XNwaU/BoSSNUZpJFRgmy7AsNkj2RoBfKyggdexik6FJbff3lBODJcWWBjol1H6qlkMp9RkJLU=
In order to decode this, the package provides a Notify::class
with notify
static method. All you need to do is put the notification string sent from Telebirr® in to that static method and it will be decoded.
Example
$decoded = Notify::notify('VBMDvN6H2U/AGbxocLQgZfJOR2rLLqTZ5pHm6295AZS4uFXR1YMPJlF+SCoJK0DLzZ2OlgGMsVPrwfJ1lmKHtOvnDGJLKrcpIG/J7RLf+tN672g+lT5o3tByvQBkjqualj91i7uNqCytNFfVN5azw7VV+OwXBMu5gnGhZPX5D4plBtOjyMWm8IYsM4uqy9V7Os+jPk7w3QBHSMB8jRRhVABT9xAzTPWC1J86xAIaTA1ehjHcbY9ziA1+P5kNQSULunOMhCA+fn0Y2HZyyFySW+dU+DHWnwf0mjGa/xF669CQttTqcmIg4QLu0TUzYjhHl1l5gbAxrwK//amHL5I2wpUhCeeSS5E4tq/TmoqVdJoZC0/gvu2Zta/9orfbzWz/xYeKefvkRaHVUid0fRu6x0xGnVe115OPCm79Y0dU43mxMVhmPza45qxGwcmsbGzs1drMiu2BJI664f0kt8lfZAUVwhIMAZbdB4MnP7gi1pnW3vBZLAtAvSCY45X/gl1sqo1X9Ypdg9jd5fCQp0b44NKI7JojYTXWrtsFWYxOAiLB9zh53Bah6WjHSnHauBbRU8eeE2Lt6Lv+QzXlu2uCjRveBH9mauNyt5XNwaU/BoSSNUZpJFRgmy7AsNkj2RoBfKyggdexik6FJbff3lBODJcWWBjol1H6qlkMp9RkJLU=);
Result
[
"msisdn" => "251912345678",
"outTradeNo" => "76c1aace47b3dc0a",
"totalAmount" => "999",
"tradeDate" => 1643891838000,
"tradeNo" => "202202151208181493512480051392514",
"tradeStatus" => 2,
"transactionNo" => "9B327LP01I",
]
The result is a key-value pair array with the unique outTradeNo
for you to query your database with.
🚀 And that's it. Do your thing and Give us a star if this package helped you. 🚀