zarinpal-composer-library
Transaction request library for zarinpal, (*1)
laravel ready
this package is going to work with all kinds of projects, but for laravel i add provider to make it as easy as possible.
just add :, (*2)
'providers' => array(
...
'Zarinpal\Laravel\ZarinpalServiceProvider'
...
)
to providers list in "config/app.php". and run
'php artisan vendor:publish --provider="Zarinpal\Laravel\ZarinpalServiceProvider"
'
to add config file to laravel configs directory config it and you are good to go
now you can access the zarinpal lib like this:, (*3)
Zarinpal::request("example.com/testVerify.php",1000,'testing');
Zarinpal::verify('OK',1000,$answer['Authority']);
usage
installation
composer require atbox/zarinpal
or, (*4)
"require": {
...
"atbox/zarinpal" : "1.*",
...
},
request
use Zarinpal\Drivers\Soap;
use Zarinpal\Zarinpal;
$test = new Zarinpal('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',new soap());
echo json_encode($answer = $test->request("example.com/testVerify.php",1000,'testing'));
if(isset($answer['Authority'])) {
file_put_contents('Authority',$answer['Authority']);
$test->redirect();
}
//it will redirect to zarinpal to do the transaction or fail and just echo the errors.
//$answer['Authority'] must save somewhere to do the verification
verify
use Zarinpal\Drivers\Soap;
use Zarinpal\Zarinpal;
$test = new Zarinpal('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',new soap());
$answer['Authority'] = file_get_contents('Authority');
echo json_encode($test->verify('OK',1000,$answer['Authority']));
//'Status'(index) going to be 'success', 'error' or 'canceled'
change driver
driver can be changed between restAPI , soap and NuSoap with using:, (*5)
restAPI (recommended):, (*6)
$test = new Zarinpal('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX');
or soap:, (*7)
use Zarinpal\Drivers\Soap;
$test = new Zarinpal('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',new soap());
or nuSoap:, (*8)
use Zarinpal\Drivers\NuSoap;
$test = new Zarinpal('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',new NuSoap());
Zaringate
for redirect user to Zaringate instead of Zarinpal gateway, pass true as first parameter of redirect method (as default user will redirect to Zarinpal gateway with this method):, (*9)
Zarinpal::redirect(true);