Laravel Zain is Zain DSP API integration with Laravel, made to simplify the process and API calls and let developers focus on other integration parts and logic. See also Laravel Sudani.
- PHP >=
7.4.x
- Laravel >=
7.x
composer require alkhatibdev/laravel-zain
php artisan vendor:publish --tag=laravel-zain-config
A laravel-zain.php
config file will be published on your configs
directory, with the following content:
<?php
return [
'base_url' => env('ZAIN_SERVER_BASE_API_URL'),
'product_code' => env('ZAIN_PRODUCT_CODE'),
'username' => env('ZAIN_USERNAME'),
'password' => env('ZAIN_PASSWORD'),
'remember_token' => env('ZAIN_REMEMBER_TOKEN', false),
'enable_logging' => false,
];
Don't forget to set all these variable on your .env
file
ZAIN_SERVER_BASE_API_URL=https://test.zaindsp.com:3030/api/v1/json/
ZAIN_PRODUCT_CODE=xxxxxx
ZAIN_USERNAME=xxxxx
ZAIN_PASSWORD=xxxxx
ZAIN_REMEMBER_TOKEN=false
use AlkhatibDev\LaravelZain\Facades\Zain;
// Initiate payment request
$response = Zain::initiate($phone)
When initiate
payment request successfully sent, a SMS with OTP
code will be send to the $phone
number, and $response
will contain a subscribe_request_id
and you should save it to the next step verify
.
$response = Zain::verify($otp, $requestId)
$response = Zain::checkSubscription($phone)
$response = Zain::unsubscribe($phone)
// cacheToken($response['token'])
Out of the box the package will login automatically and get the token
and use it for each action initiate
, verify
..etc per request.
If you want to cache the token and use it for furthor requests, you can request token
like this:
$token = Zain::token()
And you can cache it and use it for each request for the next 24 hours.
If you set ZAIN_REMEMBER_TOKEN=true
token will be expired after 30 days.
Example of using cached token:
// $token = getCachedToken()
$response = Zain::withToken($token)->initiate($phone)
$response = Zain::withToken($token)->verify($phone)
...
You can enable logging from package config file
'enable_logging' => true,
-
Laravel Sudani SPay API Integration
Laravel Zain is open-sourced software licensed under the MIT license.