jagdish-j-p/billdesk

用于集成 BillDesk 支付网关的 Laravel 包

v1.0.1 2022-06-04 11:28 UTC

This package is auto-updated.

Last update: 2024-09-03 16:07:26 UTC


README

此仓库已开发,以集成 Laravel 中的 BillDesk 支付网关。

此仓库目前正在开发中。可能会有一些异常。

安装

您可以通过 composer 安装此包

composer require jagdish-j-p/billdesk

然后运行发布命令以发布配置文件、支持控制器和视图

php artisan billdesk:publish

这将生成以下文件

  • 默认设置供您覆盖的配置文件 billdesk.php
  • 将接收支付响应和任何主机到主机事件的控制器 Http/Controllers/Billdesk/Controller.php
  • 公共目录中的资产。
  • 默认 HTML 视图文件供您覆盖 payment.blade.php。注意不要更改表单操作 URL billdesk.payment.auth.request

设置

  1. 将您的响应 URL 以及您的商户 ID、安全 ID 和校验和密钥添加到 .env 文件中。
BILLDESK_RESPONSE_URL=https://app.test/billdesk/payments/callback
BILLDESK_RESPONSE_PATH=billdesk/payments/callback
BILLDESK_WEBHOOK_URL=https://app.test/billdesk/payments/webhook
BILLDESK_WEBHOOK_PATH=billdesk/payments/webhook

BILLDESK_MERCHANT_ID=
BILLDESK_SECURITY_ID=
BILLDESK_CHECKSUM_KEY=
BILLDESK_UAT_PREFIX="test-prefix"
  1. 运行迁移以添加事务表
php artisan migrate

用法

  1. 您可以访问 http://app.test/billdesk/initiate/payment 以查看 Web 集成支付流程演示。

  2. Http/Controllers/Billdesk/Controller.php 中处理支付响应

    /**
     * This will be called after the user approve the payment
     * on the bank side
     *
     * @param Request $request
     * @return Response
     */
    public function callback(Request $request)
    {
        $response = $request->handle();

        if ($response['response_format'] == 'JSON')
            return response()->json(['response' => $response, 'billdesk_response' => $request->all()]);
        dd($response, $request); // Remove this line and modify as per your needs.
        // Update your order status
    }

    /**
     * This will handle any direct call from BillDesk
     *
     * @param Request $request
     * @return string
     */
    public function webhook(Request $request)
    {
        $response = $request->handle();

        // Update your order status

        return 'OK';
    }

	
  1. 使用命令检查所有挂起事务的状态
php artisan billdesk:payment-status
  1. 使用命令检查特定事务的状态,通过逗号分隔的订单参考 ID。
php artisan billdesk:payment-status reference_id1,reference_id2,reference_id3
  1. 从控制器中检查事务状态
use JagdishJP/Billdesk/Billdesk;

/**
 * Returns status of transaction
 * 
 * @param string $reference_id reference order id
 * @return array
 */
$status = Billdesk::getTransactionStatus($reference_id);

您还可以通过自定义设计覆盖 payment.blade.php 以与您的布局集成,但不要更改 HTML 控件的 name 属性和表单的 action URL。

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

贡献

欢迎贡献者,并将给予全面认可。

安全性

如果您发现任何与安全相关的问题,请通过电子邮件 jagdish.j.ptl@gmail.com 而不是使用问题跟踪器。

鸣谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件

Packagify

此包使用 Packagify 生成。