atbox/zarinpal

transaction request system for zarinpal

v1.1.3 2016-09-10 10:45 UTC

This package is not auto-updated.

Last update: 2024-11-04 14:12:38 UTC


README

Transaction request library for zarinpal

##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 :

'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:

Zarinpal::request("example.com/testVerify.php",1000,'testing');
Zarinpal::verify('OK',1000,$answer['Authority']);

##usage ###installation composer require atbox/zarinpal or

"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:

restAPI (recommended):

$test = new Zarinpal('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX');

or soap:

use Zarinpal\Drivers\Soap;
$test = new Zarinpal('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',new soap());

or nuSoap:

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):

Zarinpal::redirect(true);