Download the PHP package integrify/kapitalbank without Composer
On this page you can find all versions of the php package integrify/kapitalbank. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download integrify/kapitalbank
More information about integrify/kapitalbank
Files in integrify/kapitalbank
Package kapitalbank
Short Description Kapital Bank e-commerce şlüzü inteqrasiyası — sifariş, kart yaddaşı, clearing, geri qaytarma və saxlanılmış kartla ödəniş.
License MIT
Homepage https://integrify.mmzeynalli.dev
Informations about the package kapitalbank
Integrify Kapital Bank (PHP)
Kapital Bank e-commerce şlüzünün PHP inteqrasiyası — sifariş, kart yaddaşı, clearing, ləğv, geri qaytarma və saxlanılmış kartla ödəniş.
Composer: integrify/kapitalbank
Kod: https://github.com/integrify-sdk/integrify-php/tree/main/packages/kapitalbank
Sənədlər: https://integrify.mmzeynalli.dev/integrations/kapitalbank
Python qarşılığı: integrify-kapitalbank
[!IMPORTANT] EPoint-dən fərqli olaraq Kapital Bank uğursuz sorğuya 400-dən böyük status qaytarır, ona görə burada
isSuccessful()yoxdur: uğursuzluqRequestRejectedkimi qalxır və bankınerrorCode-unu daşıyır.
Kitabxananın yüklənməsi
Paket PSR-18 klienti və PSR-17 factory-si tələb edir:
Konfiqurasiya
| Dəyişən | Məcburi | Default | Təsvir |
|---|---|---|---|
KAPITAL_USERNAME |
✅ | — | Merchant istifadəçi adı |
KAPITAL_PASSWORD |
✅ | — | Merchant parolu |
KAPITAL_ENV |
❌ | test |
test və ya prod |
KAPITAL_INTERFACE_LANG |
❌ | az |
Ödəniş səhifəsinin dili |
KAPITAL_REDIRECT_URL |
❌ | — | Ödənişdən sonra qayıdılan URL |
| Mühit | Ünvan |
|---|---|
test |
https://txpgtst.kapitalbank.az |
prod |
https://e-commerce.kapitalbank.az |
[!WARNING]
KAPITAL_ENVstrict oxunur:prdkimi yazılış xətasıMissingConfigurationatır. Python kitabxanası belə halda xəbərdarlıq edib test mühitinə düşür, lakin bir xəbərdarlıq asanlıqla gözdən qaçır və nəticəsi real ödənişlərin test şlüzünə getməsidir — və ya əksi.
Adi ödəniş
Bank hazır link qaytarmır — redirectUrl() onu hppUrl, id və password-dan yığır.
Sonra vəziyyəti soruşun:
Tam məlumat üçün:
Sorğular
| Metod | Endpoint | Cavab |
|---|---|---|
createOrder() |
POST /api/order |
CreatedOrder |
saveCard() |
POST /api/order |
CreatedOrder |
payAndSaveCard() |
POST /api/order |
CreatedOrder |
orderWithSavedCard() |
POST /api/order |
CreatedOrder |
getOrderInformation() |
GET /api/order/{id} |
OrderInformation |
getDetailedOrderInformation() |
GET /api/order/{id} |
DetailedOrderInformation |
refundOrder() |
POST /api/order/{id}/exec-tran |
TransactionResult |
fullReverseOrder() |
POST /api/order/{id}/exec-tran |
TransactionResult |
clearingOrder() |
POST /api/order/{id}/exec-tran |
TransactionResult |
partialReverseOrder() |
POST /api/order/{id}/exec-tran |
TransactionResult |
linkCardToken() |
POST /api/order/{id}/set-src-token |
LinkedCardToken |
processPaymentWithSavedCard() |
POST /api/order/{id}/exec-tran |
TransactionResult |
Dörd tranzaksiya eyni yola gedir — fərq yalnız payload-dakı phase / type /
voidKind dəyərlərindədir:
| Metod | Payload |
|---|---|
refundOrder() |
{phase: Single, type: Refund, amount} |
fullReverseOrder() |
{phase: Auth, voidKind: Full} |
clearingOrder() |
{phase: Clearing, amount} |
partialReverseOrder() |
{phase: Single, voidKind: Partial, amount} |
Bloklama və silmə
saveCard() Order_DMS növüdür: məbləğ kartda bloklanır, silinmir.
Saxlanılmış kartla ödəniş
[!CAUTION]
payWithSavedCard()üç sorğudur və atomik deyil:orderWithSavedCard()→linkCardToken()→processPaymentWithSavedCard(). İkinci və ya üçüncü addım uğursuz olarsa, yaradılmış sifariş bankda qalır — exception-ı tutub həmin sifarişifullReverseOrder()ilə ləğv etmək sizin işinizdir. Addımlara ayrıca nəzarət lazımdırsa, metodları bir-bir çağırın.
Məbləğlər
Metodlar int|float|string qəbul edir, bank isə məbləği JSON sətri kimi gözləyir.
Pul üçün string və ya int tövsiyə olunur — float-un dəqiqlik itkisi və
eksponensial yazılış problemi barədə KapitalClient::amount()-a baxın.
Cavablarda da məbləğlər sətir saxlanılır: bank onları JSON ədədi kimi qaytarır,
float-a çevirmək isə qəpik dəqiqliyini itirə bilər.
Xətalar
| Exception | Nə vaxt |
|---|---|
MissingConfiguration |
Məcburi dəyişən yoxdur, və ya KAPITAL_ENV tanınmır |
InvalidRequest |
Məbləğ ədəd deyil, sonlu deyil, və ya eksponensial yazılışdadır |
RequestRejected |
Bank sorğunu rədd etdi (400-dən böyük status) |
ValidationFailed |
Cavab DTO-ya uyğun gəlmir |
RequestFailed |
Şəbəkə xətası — bankın rəddi deyil |
Hamısı Integrify\Exception\IntegrifyException-i implement edir. Şəbəkə xətası
RequestRejected-ə çevrilmir: ölmüş bağlantı ilə rədd edilmiş sorğu fərqli
problemlərdir və fərqli davranış tələb edir.
Status kodları
PmoResultCode::all() 72 tanınan kodu qaytarır.
Testlər
Sorğular {"order": {...}} və ya {"tran": {...}} zərfi ilə gedir; cavab da eyni
açardan oxunur.