Laravel integration for first iraqi bank payment
- Authentication
- Payment Creation
- Checking payment status
- Payment Cancellation
You can install the package through Composer
composer require rawahamid/laravel-fib-integrationThen publish the config file of the package using the vendor publish command
php artisan vendor:publish --tag="fib"All that is left to do is to define four env configuration variables inside .env file
FIB_ENVIRONMENT="stage"
FIB_CALLBACK_URL="https://localhost:8000/fib-callback-url"
FIB_CLIENT_ID="client-id"
FIB_CLIENT_SECRET="client-secret"FIB_ENVIRONMENTThis value is the environment that you want to choose for FIB integration to your applicationFIB_CALLBACK_URLThe callback url that FIB will send a POST request to when status of the created payment changesFIB_CLIENT_IDThe account client id you use to authenticate the request determines whether the request is live mode or test modeFIB_CLIENT_SECRETThe account client secret you use to authenticate the request determines whether the request is live mode or test mode
use Rawahamid\FibIntegration\Payments\FibPayment;
$response = FibPayment::create(100);Response structure
{
"paymentId": "string",
"readableCode": "string",
"qrCode": "base64 string",
"validUntil": "datetime",
"personalAppLink": "link",
"businessAppLink": "link",
"corporateAppLink": "link"
}paymentIdA unique identifier of the payment, used later to check the status.readableCodeA payment code that the user can enter manually in case he cannot scan the QR code.qrCodeA base64-encoded data URL of the QR code image that the user can scan with the FIB mobile app.validUntilan ISO-8601-formatted date-time string, representing a moment in time when the payment expirespersonalAppLinkA link that the user can tap on his mobile phone to go to the corresponding payment screen in the FIB Personal appbusinessAppLinkA link that the user can tap on his mobile phone to go to the corresponding payment screen in the FIB Business appcorporateAppLinkA link that the user can tap on his mobile phone to go to the corresponding payment screen in the FIB Corporate app
use Rawahamid\FibIntegration\Payments\FibPayment;
$response = FibPayment::status('payment-uuid');Response structure will be:
{
"paymentId": "string",
"status": "string",
"validUntil": "string",
"amount": {
"amount": "number",
"currency": "string"
},
"decliningReason": "string",
"declinedAt": "string",
"paidBy": {
"name": "string",
"iban": "string"
}
}paymentIdA unique identifier of the payment, used later to check the status.statusone of these values:PAID|UNPAID|DECLINEDvalidUntilan ISO-8601-formatted date-time string, representing a moment in time when the payment expiresamountcontains payment amount and its currencydecliningReasoncan be nullable or one of these valuesSERVER_FAILURE|PAYMENT_EXPIRATION|PAYMENT_CANCELLATIONdeclinedAtdatetime that represents the time of payment declinepaidByis nullable object if the payment is still not paid but if paid will contain the name and iban of the user
use Rawahamid\FibIntegration\Payments\FibPayment;
$response = FibPayment::cancel('payment-uuid');response will be empty if success
In every request of these if the response is 500 mean the creation, status or cancellation request something wrong happened
The FIB Integration package is open source software licensed under the License MIT
Contributions are always welcome!
If you face any problem feel free to contact me :) rawahamid