Download the PHP package integrify/epoint without Composer
On this page you can find all versions of the php package integrify/epoint. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download integrify/epoint
More information about integrify/epoint
Files in integrify/epoint
Package epoint
Short Description EPoint ödəniş şlüzü inteqrasiyası — ödəniş, kart yaddaşı, payout, refund və bölünmüş ödənişlər.
License MIT
Homepage https://integrify.mmzeynalli.dev
Informations about the package epoint
Integrify EPoint (PHP)
EPoint ödəniş şlüzünün PHP inteqrasiyası — ödəniş, kart yaddaşı, payout, refund və bölünmüş ödənişlər.
Composer: integrify/epoint
Kod: https://github.com/integrify-sdk/integrify-php/tree/main/packages/epoint
Sənədlər: https://integrify.mmzeynalli.dev/integrations/epoint
Python qarşılığı: integrify-epoint
[!IMPORTANT] EPoint uğursuz ödəniş üçün də HTTP 200 qaytarır. Yəni
RequestFailedatılmaması ödənişin alındığı demək deyil — hər cavabdaisSuccessful()var və ona baxmaq məcburidir.RequestFailedyalnız şəbəkə problemi üçün atılır.
Kitabxananın yüklənməsi
Paket PSR-18 klienti və PSR-17 factory-si tələb edir (integrify/core onları virtual
paket kimi istəyir), ona görə tətbiqinizdə real implementasiya olmalıdır:
Konfiqurasiya
| Dəyişən | Məcburi | Default | Təsvir |
|---|---|---|---|
EPOINT_PUBLIC_KEY |
✅ | — | Hər payload-a düşən public key |
EPOINT_PRIVATE_KEY |
✅ | — | İmzalama açarı. Heç vaxt göndərilmir |
EPOINT_INTERFACE_LANG |
❌ | az |
Ödəniş səhifəsinin dili (az, en, ru) |
EPOINT_SUCCESS_REDIRECT_URL |
❌ | — | Uğurlu ödənişdən sonra yönləndirmə |
EPOINT_FAILED_REDIRECT_URL |
❌ | — | Uğursuz ödənişdən sonra yönləndirmə |
Diqqət: environment dəyişəni
EPOINT_FAILED_REDIRECT_URLadlanır, API-də gedən field isəerror_redirect_url. Adlar Python kitabxanası ilə eyni saxlanılıb ki, iki SDK bir.envfaylını paylaşa bilsin.
Ödəniş axını
Ödəniş iki mərhələlidir: pay() yalnız onu başladır.
Nəticə callback URL-inizə POST olunur:
[!WARNING] Callback URL-i internetdən əlçatandır: ona istənilən kəs sorğu ata bilər. İmza yoxlaması "bu datanı həqiqətən EPoint göndərdi" sualının yeganə cavabıdır, ona görə uyğunsuzluq
nulldeyil,SignatureMismatchilə bildirilir — yoxlamağı unutmaq mümkün olmasın.
Sorğular
| Metod | Endpoint | Cavab |
|---|---|---|
pay() |
POST /api/1/request |
RedirectUrl |
getTransactionStatus() |
POST /api/1/get-status |
TransactionStatusResult |
saveCard() |
POST /api/1/card-registration |
RedirectUrlWithCardId |
payWithSavedCard() |
POST /api/1/execute-pay |
PaymentResult |
payAndSaveCard() |
POST /api/1/card-registration-with-pay |
RedirectUrlWithCardId |
payout() |
POST /api/1/refund-request |
PaymentResult |
refund() |
POST /api/1/reverse |
MinimalResult |
splitPay() |
POST /api/1/split-request |
RedirectUrl |
splitPayWithSavedCard() |
POST /api/1/split-execute-pay |
SplitPaymentResult |
splitPayAndSaveCard() |
POST /api/1/split-card-registration-with-pay |
RedirectUrlWithCardId |
[!CAUTION] EPoint iki endpoint-i əksinə adlandırıb:
/api/1/refund-requestpayout-dur (pul sizdən müştəriyə),/api/1/reverseisə refund-dur (ödənişin geri qaytarılması). Metod adları niyyəti bildirir —payout()vərefund().
Saxlanılmış kartla ödəniş
Bölünmüş ödəniş
Geri qaytarma
Status sorğusu iki ayrı sual verir
Status sorğusunda error normal cavabdır — "soruşduğun tranzaksiya uğursuz olub",
yəni sorğunun özü uğurludur. İkisini bir-biri ilə dəyişmək uğursuz ödənişi uğurlu kimi
oxumaq deməkdir. Digər bütün cavablarda isSuccessful() sadəcə status === 'success'
yoxlayır.
Məbləğlər
Metodlar int|float|string qəbul edir, EPoint isə məbləği JSON sətri kimi gözləyir
("100", "10.50").
Pul üçün string və ya int tövsiyə olunur. float qəbul edilir, lakin:
0.1 + 0.2PHP-də0.30000000000000004-dür; bu paket onu"0.3"kimi göndərir (Python kitabxanası eyni girişdə tam"0.30000000000000004"göndərir);(string) 1e20PHP-də"1.0E+20"verir və EPoint eksponensial yazılışı qəbul etmir, ona görə çevirmə heç vaxt eksponensial nəticə vermir;'1e5'kimi sətirlərInvalidRequestilə rədd olunur, halbukiis_numeric()onları qəbul edir.
Status və kodlar
Enum-lar DTO property tipi kimi istifadə olunmur: EPoint sabah yeni status əlavə
etsə, validasiya sınmamalıdır. BankCode::all() 102 tanınan bank kodunu qaytarır.
Xətalar
| Exception | Nə vaxt |
|---|---|
MissingConfiguration |
EPOINT_PUBLIC_KEY/EPOINT_PRIVATE_KEY yoxdur |
InvalidRequest |
Məbləğ ədəd deyil, sonlu deyil, və ya eksponensial yazılışdadır |
SignatureMismatch |
Callback-in imzası uyğun gəlmir, və ya body formatı yanlışdır |
ValidationFailed |
Cavab (və ya callback datası) DTO-ya uyğun gəlmir |
RequestFailed |
Şəbəkə xətası, və ya HTTP >= 400 |
Hamısı Integrify\Exception\IntegrifyException-i implement edir.
Testlər
Testlər RecordingTransport inject edir — HTTP klienti heç vaxt mock olunmur:
Məftildə yalnız zərf gedir — {data, signature} — yəni payload base64-lənmiş JSON-dur.
Private key nə payload-da, nə header-də görünür.