jagdish-j-p / sbi-pay
SBI支付服务的Laravel实现
v1.0.0
2022-07-01 15:24 UTC
Requires
- php: ^7.3 || ^8.0
- ext-json: *
- guzzlehttp/psr7: ^2.2
- laravel/framework: ^6.0 || ^7.0 || ^8.0 || ^9.0
Requires (Dev)
- laravel/legacy-factories: ^1.0
- mockery/mockery: ^1.4
- orchestra/testbench: ^4.0 || ^5.0 || ^6.0 || ^7.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-28 02:03:13 UTC
README
本包提供了SBI支付网关服务的Laravel实现。
成为赞助商
您的支持使我能够保持此包免费、更新和可维护。或者,您可以 传播这个消息!
重要说明
- 您的生产/预发布服务器IP和域名必须由SBI列入白名单才能开始集成。否则,他们的测试URL将无法访问。
安装
您可以通过composer安装此包
composer require jagdish-j-p/sbi-pay
然后运行发布命令以发布配置文件和其他支持的文件
php artisan sbi-pay:publish
这将生成以下文件
- 配置文件,带有默认设置,以便您覆盖
sbipay.php
- 将接收支付响应和任何主机到主机事件的控制器
app/Http/Controllers/SBIPay/Controller.php
- 公共目录中的资源。
- 带有默认HTML的视图文件,以便您覆盖
payment.blade.php
。注意不要更改表单的action URLsbi-pay.payment.auth.request
。
设置
- 将您的重定向URL和SBI提供的凭据添加到
.env
文件中。
SBIEPAY_ACCOUNT_IDENTIFIER=NEFT SBIEPAY_AGGREGATOR_ID=SBIEPAY SBIEPAY_MERCHANT_ID= SBIEPAY_MERCHANT_KEY= SBIEPAY_SUCCESS_PATH="sbi-pay/payment/success" SBIEPAY_FAIL_PATH="sbi-pay/payment/fail" SBIEPAY_SUCCESS_URL="${APP_URL}/${SBIEPAY_SUCCESS_PATH}" SBIEPAY_FAIL_URL="${APP_URL}/${SBIEPAY_FAIL_PATH}"
您可以通过更新配置文件来覆盖默认设置。
使用方法
- 您可以通过访问https://app.test/sbi-pay/initiate/payment查看Web集成的支付流程演示。您可以根据需要覆盖在
app/Http/Controllers/SBIPay/Controller.php
中定义的以下函数。
/** * @param Request $request * @param mixed $order_no * @param mixed $amount * @param mixed $remark * * @return string */ public function initiate(Request $request, $order_no = null, $amount = null, $remark = null) { return view('SBIPay::payment', compact(['order_no', 'amount', 'remark'])); }
您还可以使用自定义设计覆盖 payment.blade.php
以与您的布局集成。但不要更改HTML控件的 name
属性和表单的 action
URL。
- 在
app/Http/Controllers/SBIPay/Controller.php
中处理支付响应
/** * Handles payment success response * @param Request $request * * @return Response */ public function success(Request $request) { $response = $request->handle(); // Update your order status } /** * Handles payment fail response * @param Request $request * * @return string */ public function fail(Request $request) { $response = $request->handle(); // Update your order status return 'OK'; } /** * Handles server-to-server communication * @param Request $request * * @return string */ public function webhook(Request $request) { $response = $request->handle(); // Update your order status return 'OK'; }
- 查看交易状态
https://app.test/sbi-pay/transaction/status/$sbi_transaction_id/$merchant_order_no
- 从控制器检查交易状态或启动退款
use JagdishJP\SBIPay\Facades\SBIPay; /** * Returns status of transaction * * @param string $sbi_transaction_id sbi transaction id * @param string $merchant_order_no merchant order no * @return array */ $status = SBIPay::transactionStatus($sbi_transaction_id, $merchant_order_no); /** * Initiates refund for any transaction * * @param string $sbi_transaction_id sbi transaction id * @param string $refund_order_no refund order no * @param string $amount amount to refund partial/full * @param string $merchant_order_no merchant order no * @return array */ $banks = SBIPay::initiateRefund($sbi_transaction_id, $refund_order_no, $amount, $merchant_order_no);
变更日志
有关最近更改的更多信息,请参阅CHANGELOG
贡献
有关详细信息,请参阅CONTRIBUTING
安全
如果您发现任何安全问题,请通过电子邮件jagdish.j.ptl@gmail.com联系,而不是使用问题跟踪器。
鸣谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件