tohidplus / zarrinpal
用于连接(伊朗)Zarrinpal网关的Laravel包
v1.0.2
2018-10-15 19:15 UTC
This package is auto-updated.
Last update: 2024-09-14 18:31:40 UTC
README
Zarinpal的Laravel包
此包用于连接伊朗网站到Zarrinpal网关。
安装
- 运行以下命令
composer require tohidplus/zarrinpal
- 将以下代码添加到
config/app.php文件中的providers数组末尾。
'providers'=>[ Tohidplus\Zarrinpal\ZarrinpalServiceProvider::class, ];
- 将以下代码添加到
config/app.php文件中的aliases数组末尾。
'aliases' => [ 'Zarrinpal'=>Tohidplus\Zarrinpal\Facades\Zarrinpal::class, ];
- 运行以下命令
php artisan vendor:publish --provider=Tohidplus\Zarrinpal\ZarrinpalServiceProvider
- 迁移数据库
php artisan migrate
- 现在您可以在config目录中看到一个名为
zarrinpal.php的新配置文件已被添加。因此,打开此文件...
<?php return [ 'merchantId'=>'XXXXX XXXXX XXXXX', 'callBackUrl'=>'http://yourwebsite.com/verifyPayment', 'description'=>'Some text here', ];
添加您想要在交易完成后将用户重定向到银行的
注意:您可以将callbackUrl和description留空,并在下一部分解释的动态调用
setData方法时定义它。
方法
setData方法
在将用户重定向到网关之前,您必须使用此方法初始化字段,否则您将收到异常。
参数
- amount(必需)
- email(可选)
- mobile(可选)
- description(如果您在配置文件中未定义它,则必须在此设置)
- callBackUrl(如果您在配置文件中未定义它,则必须在此设置)
redirect方法
初始化字段后,您可以使用此方法将用户重定向到银行。
参数
- 它仅接受一个参数作为回调函数,如果重定向过程中出现错误,则回调函数将以状态代码作为参数被触发。
verify方法
此方法指示交易是否成功。
参数
- request是从银行获取的请求,您必须将其传递给
verify方法。 - success是当交易成功时将被触发的回调函数,并接受refId作为参数。
- error是当交易不成功时将被触发的回调函数。
完整示例
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Tohidplus\Zarrinpal\Facades\Zarrinpal; class PaymentController extends Controller { public function redirectUserToBank() { Zarrinpal::setData(100,'someone@example.com','09XXXXXXXXX','Some descripion','another/callback/url'); return Zarrinpal::redirect(function($status){ // Do something if there was a problem while redirection }); } public function verifyPayment(Request $request) { return Zarrinpal::verify($request, function ($refId){ // The transaction is successfull },function ($message,$status=null){ // The trasnsaction is unsuccessful // if message was canceled it means user has canceled transaction them self // if message was unsuccessful it means an error has occurred }); } }
交易日志
所有事件都保存在与
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Tohidplus\Zarrinpal\Models\ZarrinpalLog; class ZarrinpalLogController extends Controller { public function index() { $successfulTransactions = ZarrinpalLog::successful()->get(); $unsuccessfulTransactions = ZarrinpalLog::unsuccessful()->get(); $successfulTransactions = ZarrinpalLog::canceled()->get(); $pendingTransactions = ZarrinpalLog::pending()->get(); } }