jagdish-j-p/sbi-pay

v1.0.0 2022-07-01 15:24 UTC

This package is auto-updated.

Last update: 2024-09-28 02:03:13 UTC


README

本包提供了SBI支付网关服务的Laravel实现。

成为赞助商

您的支持使我能够保持此包免费、更新和可维护。或者,您可以 传播这个消息!

重要说明

  1. 您的生产/预发布服务器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 URL sbi-pay.payment.auth.request

设置

  1. 将您的重定向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}"

您可以通过更新配置文件来覆盖默认设置。

使用方法

  1. 您可以通过访问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。

  1. 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';
    }
  1. 查看交易状态
https://app.test/sbi-pay/transaction/status/$sbi_transaction_id/$merchant_order_no
  1. 从控制器检查交易状态或启动退款
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)。有关更多信息,请参阅许可文件