赛拉姆扎代赫 / pb-payment
用于处理伊朗银行系统互联网支付网关的Laravel包
v1.2
2023-01-03 13:40 UTC
Requires
- php: ^7.4|^8.0|^9.0
- ext-curl: *
- ext-json: *
- ext-soap: *
- doctrine/dbal: ^2.10
- illuminate/database: ~5.7|~6.0|~7.0|~8.0
- illuminate/http: ~5.7|~6.0|~7.0|~8.0
- illuminate/support: ~5.7|~6.0|~7.0|~8.0
- nesbot/carbon: *
Requires (Dev)
- fzaninotto/faker: ^1.4
- orchestra/testbench: ^5.0
- phpstan/phpstan: ^0.12.0@dev
- phpunit/phpunit: ^9.1
This package is auto-updated.
Last update: 2024-09-30 01:25:41 UTC
README
Laravel支付网关
用于处理伊朗银行系统互联网支付网关(IPGs)的Laravel包
接受Sadad (Melli)、Pay.ir、Zarinpal以及其他伊朗支付网关。只需使用PBPayment即可直接在您的网站上接收付款。
网关
要求
安装
-
通过
composer require命令将包添加到您的composer文件中$ composer require salamzadeh/pb-payment:^1.2.0
或手动将其添加到
composer.json"require": { "salamzadeh/pb-payment": "^1.2.0" }
-
PBPayment的服务提供者将自动使用Laravel的自动发现功能进行注册。
注意:对于Lumen,您必须手动将PBPayment服务提供者添加到
bootstrap/app.php$app->register( Salamzadeh\PBPayment\PBPaymentServiceProvider::class);
-
使用以下命令发布配置文件和迁移
php artisan vendor:publish --provider="Salamzadeh\PBPayment\PBPaymentServiceProvider" -
迁移发布后,您可以通过运行迁移来创建交易表
php artisan migrate
使用方法
新建付款
use Salamzadeh\PBPayment\PBPayment; // Default gateway $payment = PBPayment::create(); // Select one of available gateways $payment = PBPayment::create('sadad'); // Test gateway (Would not work on production environment) $payment = PBPayment::create('test'); // Or use your own gateway $payment = PBPayment::create(NewGateway::class); $payment->setUserId($user->id) ->setAmount($data['amount']) ->setCallbackUrl(route('bank.callback')) ->ready(); return $payment->redirect();
验证付款
use Salamzadeh\PBPayment\PBPayment; use Salamzadeh\PBPayment\Exceptions\PBPaymentException; try { $payment = PBPayment::detect()->confirm(); $trackingCode = $payment->getTrackingCode(); $statusText = $payment->getTransactionStatusText(); } catch (Salamzadeh\PBPayment\Exceptions\PBPaymentException $ex) { throw $ex; }
创建您自己的支付网关类
use Salamzadeh\PBPayment\Gateways\AbstractGateway; use Salamzadeh\PBPayment\Gateways\GatewayInterface; class NewGateway extends AbstractGateway implements GatewayInterface { public function getName(): string { return 'new-gateway'; } public function initialize(array $parameters = []): self { parent::initialize($parameters); return $this; } public function purchase(): void { // Send Purchase Request $reference_number = 'xxxx'; $this->transactionUpdate([ 'reference_number' => $reference_number, ]); } public function purchaseUri(): string { return 'http://new-gateway.com/token/xxxx'; } public function verify(): void { $this->transactionVerifyPending(); // Send Payment Verify Request $tracking_code = 'yyyy'; $this->transactionSucceed([ 'tracking_code' => $tracking_code ]); } }
从v1.x升级
待办事项
贡献
欢迎贡献!
支持
如果您认为发现了错误,请使用GitHub问题跟踪器报告,或者更好的方式是,分支库并提交拉取请求。
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。

