e1sn555 / kapitalbank

为 Kapitalbank 提供支付服务

0.1.1 2022-07-14 06:00 UTC

This package is auto-updated.

Last update: 2024-09-29 06:14:52 UTC


README

信息

此包将帮助您轻松地将 Kapitalbank 的支付系统集成到 Laravel 项目中。

安装

composer require e1sn555/kapitalbank

您可以通过在项目文件夹中运行此代码来将包添加到项目中。

在没有 Laravel 自动加载器的情况下识别包

如果您已安装包但项目仍看不到该包,或者您希望手动识别该包,则需要在 config/app.php 中将包的 ServiceProvider 写入相应位置。

    Kapitalbank\KapitalbankServiceProvider::class

如果使用 Facade,则还需要添加以下代码。

    'Kapitalbank' => Kapitalbank\KapitalbankFacade::class 

配置

要配置包,首先需要调用配置文件。为此,执行以下命令即可。

    php artisan vendor:publish --provider=Kapitalbank\KapitalbankServiceProvider

执行此代码后,您的 config 文件夹中将会生成一个名为 kapitalbank.php 的新文件。此配置文件的内部结构如下。

    return [
        /**
         * Merchant id
         */
        'merchant' => '',
    
        /**
         * Certificate path
         */
        'certificate_path' => '',
    
        /**
         * Key path
         */
        'key_path' => '',
    
        /**
         * Approve callback url
         */
        'approve_url' => '',
    
        /**
         * Cancel callback url
         */
        'cancel_url' => '',
    
        /**
         * Decline callback url
         */
        'decline_url' => ''
    ];

在这里,您必须填写 merchantcertificate_pathkey_path 必填字段(您创建一个 key 并将其提供给 Kapitalbank 合作伙伴,他将向您提供 certificatemerchant_id)。approve_urlcancel_urldecline_url 是为提供默认回调而预留的。如果您不想使用默认值,可以在查询时提供。

将服务介绍给控制器(依赖注入)

    class OrderController {
        public function __construct(private Kapitalbank\Kapitalbank $kapitalbank) {}
    }

为了在控制器中使用此服务,您需要在 __construct() 方法中按照这种方式进行配置。

使用说明

目前,您可以使用此包执行 purchaserefundpreAuth 查询。有关更多信息,请访问 https://pg.kapitalbank.az/docs 网站。

购买查询

在此查询中,您将从客户账户中提取资金到您的账户。示例如下

    public function createOrder(Request $request)
    {
        $response = $this->kapitalbank->createOrder(amount: $request->amount, description: 'X ayaqqabı üçün ödəniş');
        
        if($response->failed()) {
            $response->errors(function ($response, $e) {
                //
            })
            // Servisə sorğu zamanı yarana biləcək xətaların ələ alınması
        }
        
        // Servisdən qayıdan cavabı ələ almaq. Qayıdan cavabları daha dəqiq bilmək üçün Kapitalbankın yuxarıda verilən rəsmi saytına göz ata bilərsiniz.
        $response->toArray();
    }
退款查询

您可以通过查询将资金退还到客户账户。以下是执行方式

    public function refund(Request $request)
    {
        $response = $this->kapitalbank->refund(amount: $request->amount, session_id: $request->session_id, order_id: $request->order_id, description: 'X ayaqqabının geri qaytarılması');
        
        if($response->failed()) {
            // Servisə sorğu zamanı yarana biləcək xətaların ələ alınması
        }
        
        // Servisdən qayıdan cavabı ələ almaq. Qayıdan cavabları daha dəqiq bilmək üçün Kapitalbankın yuxarıda verilən rəsmi saytına göz ata bilərsiniz.
        $response->toArray();
    }
预授权查询

此查询的主要目的是锁定客户账户中的资金。即当客户下单时,您锁定资金,当您将产品送达客户时,您将资金转入您的账户,或者当库存耗尽时,您将取消订单并解除锁定资金。预授权查询由三个部分组成:创建订单完成订单取消订单

创建订单
    public function createOrder(Request $request)
    {
        $response = $this->kapitalbank->createOrder(amount: $request->amount, description: 'X ayaqqabı üçün preAuth sorğusu yaratmaq', order_type: 'PreAuth');
        
        if($response->failed()) {
            // Servisə sorğu zamanı yarana biləcək xətaların ələ alınması
        }
        
        // Servisdən qayıdan cavabı ələ almaq. Qayıdan cavabları daha dəqiq bilmək üçün Kapitalbankın yuxarıda verilən rəsmi saytına göz ata bilərsiniz.
        $response->toArray();
    }

如您所见,此查询与第一个查询之间的唯一区别是发送 order_type。返回的响应也将与第一个查询的响应相同。

完成订单
    public function completePreAuth(Request $request)
    {
        $response = $this->kapitalbank->completePreAuth(amount: $request->amount, description: 'X ayaqqabı üçün preAuth sorğusunu tamamlamaq', order_id: $request->order_id, session_id: $request->session_id);
        
        if($response->failed()) {
            // Servisə sorğu zamanı yarana biləcək xətaların ələ alınması
        }
        
        // Servisdən qayıdan cavabı ələ almaq. Qayıdan cavabları daha dəqiq bilmək üçün Kapitalbankın yuxarıda verilən rəsmi saytına göz ata bilərsiniz.
        $response->toArray();
    }
取消订单
    public function cancelPreAuth(Request $request)
    {
        $response = $this->kapitalbank->cancelPreAuth(order_id: $request->order_id, session_id: $request->session_id, description: 'X ayaqqabı üçün preAuth sorğusunu ləğv etmək');
        
        if($response->failed()) {
            // Servisə sorğu zamanı yarana biləcək xətaların ələ alınması
        }
        
        // Servisdən qayıdan cavabı ələ almaq. Qayıdan cavabları daha dəqiq bilmək üçün Kapitalbankın yuxarıda verilən rəsmi saytına göz ata bilərsiniz.
        $response->toArray();
    }
分期付款

Kapitalbank 为您预留了月份,您需要先让客户选择月份,然后创建分期付款查询。创建分期付款查询很简单,只需在 description 部分发送 TAKSIT=$月 即可。示例如下

    public function createOrder(Request $request)
    {
        $response = $this->kapitalbank->createOrder(amount: $request->amount, description: "TAKSIT=$request->month");
        
        if($response->failed()) {
            // Servisə sorğu zamanı yarana biləcək xətaların ələ alınması
        }
        
        // Servisdən qayıdan cavabı ələ almaq. Qayıdan cavabları daha dəqiq bilmək üçün Kapitalbankın yuxarıda verilən rəsmi saytına göz ata bilərsiniz.
        $response->toArray();
    }