transaction request system for zarinpal (Laravel 5.2 ready)

v2.0.4 2016-07-31 16:21 UTC

README

Build Status StyleCI Coverage Status

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 these two line of declaration to config/app.php:

'providers' => [
    ...
    Zarinpal\Laravel\ZarinpalServiceProvider::class
    ...
];
'aliases' => [
	...
    'Zarinpal' => Zarinpal\Laravel\Facade\Zarinpal::class,
];

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:

use Zarinpal;

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

##usage ###installation composer require laravelified-zarinpal/zarinpal or

"require": {
    ...
    "laravelified-zarinpal//zarinpal" : "^2",
    ...
},

###request

use Zarinpal;

$test = new Zarinpal('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX');
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;

$test = new Zarinpal('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX');
$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\SoapDriver;
$test = new Zarinpal('XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX',new soapDriver());

or nuSoap:

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