e1sn555/kapitalbank 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

e1sn555/kapitalbank

最新稳定版本:0.1.1

Composer 安装命令:

composer require e1sn555/kapitalbank

包简介

Payment service for Kapitalbank

README 文档

README

Məlumat

Bu paket Laravel layihələrinizə Kapitalbankın ödəniş sistemini rahatlıqla bağlamağınıza köməklik edəcəkdoir.

Quraşdırma

composer require e1sn555/kapitalbank

Siz bu kodu layihənin olduğu qovluqda çalışdıraraq paketi layihəyə daxil edə bilərsiniz.

Laravel avto-yükləyicisi olmadan paketi tanıtmaq

Əgər siz paketi yükləmisinizsə, lakin yenədə layihə paketi görmürsə və ya siz onu manual olaraq tanıtdırmaq istəyirsinizsə paketin ServiceProvider'ini config/app.php daxilində müvafiq yerə yazmalısınız.

    Kapitalbank\KapitalbankServiceProvider::class

Əgər siz Facade istifadə etmək istəyirsinizsə onda aşağıdakı koduda daxil etməlisiniz.

    'Kapitalbank' => Kapitalbank\KapitalbankFacade::class 

Konfiqurasiya

Paketi konfiqurasiya etmək üçün əvvəlcə konfiq fayıllarını çağırmalısınız. Bunun üçün aşağıdakə sətri icra etməyiniz bəs edir.

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

Bu kodun icrasında sizin config qovluğunuza kapitalbank.php adlı yeni bir fayl gələcəkdir. Bu konfiq faylının daxili aşağıdakı kimidir.

    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' => ''
    ];

Siz burada merchant, certificate_pathkey_path yazılan xanaları məcburi şəkildə doldurmalısınız (Siz kapitalbank əməkdaşına key yaradıb verirsiz o isə sizə certificatemerchant_id təqdim edəcəkdir). approve_url, cancel_urldecline_url isə default callback vermək üçün nəzərdə tutulub. Əgər siz bunu default şəkildə vermək istəmirsinizsə sorğu zamanıda verə bilərsiniz.

Servisi kontrollerimizə tanıtmaq (Dependency Injection)

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

Servisi kontrollerin __construct() metodunda bu şəkildə təyin etməyiniz servisdən istifadə etməyiniz üçün kifayət edəcəkdir.

İstifadə qaydaları

Hazırda paketdən istifadə edərək purchase, refundpreAuth sorğularını istifadə edə bilərsiniz. Bu haqda daha çox məlumat almaq üçün https://pg.kapitalbank.az/docs saytını ziyarət edə bilərsiniz.

Purchase sorğusu

Bu sorğuda siz müştərinin hesabından pulu bir başa olaraq öz hesabınıza çəkəcəksiniz. Nümunə aşağıdakı kimidir:

    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();
    }
Refund sorğusu

Siz sorğu vasitəsilə pulu müştərinin hesabına qaytarırsız. Bu isə aşağıdakı kimi icra olunur:

    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();
    }
PreAuth sorğusu

Bu sorğunun əsas məqsədi müştərinin hesabında olan pulu bloklamaqdır. Yəni siz müştəri məhsulu sifariş etdiyi anda pulu bloklayır, məhsulu ona çatdırdığınız anda isə pulu öz hesabınıza keçirirsiz və ya anbarınızda məhsul tükənibsə həmin sifariş ləğv edir, pulu da blokdan açırsınız. PreAuth sorğusu buna görədə 3 hissədən ibarətdir: sifariş yaratma, sifarişi tamamlama, sifarişi ləğv etmə

Sifariş yaratma
    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();
    }

Gördüyünüz kimi bu sorğu ilə birinci sorğu arasındaki tək fərq order_type göndərməyimizdir. Qayıdan cavab da birinci sorğunun cavabı ilə eyni olacaqdır.

Sifarişi tamamlama
    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();
    }
Sifarişi ləğv etmək
    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();
    }
Taksitə görə aylaraq bölmək

Kapitalbank tərəfindən sizin üçün ayrılan ayları əvvəlcə müştəriyə seçdirməli daha sonra isə taksit sorğusu yaratmalısınız. Taksik sorğusu yaratmaq çox asandır, sadəcə description hissəsində TAKSIT=$ay kimi göndərəcəksiniz. Numünə aşağıdaki kimi olacaqdır:

    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();
    }

统计信息

  • 总下载量: 16
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 13
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 13
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-07-11

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固