pratikislem/trinkpos-php
Composer 安装命令:
composer require pratikislem/trinkpos-php
包简介
TrinkPOS Sanal POS (Virtual POS) API client for PHP
README 文档
README
TrinkPOS Sanal POS (Virtual POS) API'si için resmi PHP istemci kütüphanesi.
Durum: v0.x — API yüzeyi WooCommerce eklentisi entegrasyonu tamamlanana kadar değişebilir. 1.0.0 ile SemVer garantisi başlar.
Gereksinimler
- PHP 8.1+
ext-curl,ext-json- Sıfır üçüncü parti runtime bağımlılığı
Kurulum
Composer (önerilen)
composer require pratikislem/trinkpos-php
Composer olmadan
Repoyu indirip bootstrap dosyasını dahil edin:
require '/path/to/trinkpos-php/TrinkposBootstrap.php'; TrinkposBootstrap::init();
Hızlı başlangıç
use Trinkpos\Enum\Currency; use Trinkpos\Enum\TransactionType; use Trinkpos\Options; use Trinkpos\Request\PaymentRequest; use Trinkpos\TrinkposClient; $client = new TrinkposClient(Options::sandbox('API_KEY', 'SECRET_KEY')); // Canlı ortam: Options::production('API_KEY', 'SECRET_KEY') $response = $client->payment(new PaymentRequest( transactionType: TransactionType::Auth, orderId: 'ORDER-12345', amount: 100.00, currency: Currency::TRY, cardNumber: '4000000000000001', cardHolderName: 'John Doe', expYear: 2030, expMonth: 12, cvv: '000', installment: 1, is3d: false, )); if ($response->isApproved()) { echo $response->transactionId(); }
Daha fazla örnek: samples/ — NonSecure satış, 3D akışı ve
tüm endpoint'leri gezen samples/sandbox-smoke.php.
3D Secure akışı
// 1) Başlat: is3d: true, okUrl/failUrl verin → müşteriyi yönlendirin. $response = $client->payment($request3d); header('Location: ' . $response->htmlUrl()); // 15 dakika geçerli // 2) Banka, ok_url/fail_url'e form POST'u yapar: $callback = \Trinkpos\ThreeD\CallbackResult::fromPost($_POST); // 3) ⚠️ Callback İMZASIZDIR — tek başına asla güvenmeyin. // Onay kararını daima sunucudan-sunucuya doğrulamayla verin: $verification = $client->verifyCallback($callback); if ($verification->isApproved() && $callback->amountMatches($orderAmount)) { // siparişi onayla }
Hata modeli
İki katman vardır; ikisini karıştırmayın:
| Durum | SDK davranışı |
|---|---|
| Ağ hatası (DNS, TLS, timeout) | TransportException fırlatılır |
| JSON olmayan yanıt | InvalidResponseException fırlatılır |
| 2xx dışı HTTP (400/401/409/422/…) | ApiException fırlatılır — errorCode / errorSubCode taşır |
| HTTP 200 içinde banka reddi | Exception fırlatılmaz — isApproved() false, gatewayCode() red kodunu verir |
use Trinkpos\Enum\ErrorSubCodes; use Trinkpos\Enum\GatewayCodes; use Trinkpos\Exception\ApiException; try { $response = $client->payment($request); if (!$response->isApproved()) { // Banka reddi: '51' yetersiz bakiye, '54' süresi dolmuş kart… $code = $response->gatewayCode(); // GatewayCodes sabitleriyle karşılaştırın $mesaj = $response->gatewayMessageTr(); // veya gatewayMessageEn() } } catch (ApiException $e) { if ($e->errorSubCode === ErrorSubCodes::DUPLICATE_ORDER_ID) { // sipariş no zaten kullanılmış } }
Desteklenen operasyonlar
| Metot | Endpoint |
|---|---|
payment(PaymentRequest) |
Satış — Auth/PreAuth × 3D/NonSecure × taksit |
capturePreAuthorization(CaptureRequest) |
Ön otorizasyon kapama |
refund(RefundRequest) |
İade (kısmi/tam, ertesi gün–30 gün) |
void(VoidRequest) |
Aynı gün iptal |
query(txId) / queryHistory(txId) |
İşlem durumu / geçmişi |
verifyCallback(CallbackResult) |
3D callback sunucu doğrulaması |
binQuery(bin) |
BIN sorgusu |
paymentOptionsWithAmounts(...) / paymentOptions() |
Taksit seçenekleri + komisyonlar |
transactions(...) |
İşlem listesi (filtreli, sayfalı) |
balance(...) / balanceSummary() |
Hakediş özeti / anlık bakiye |
settlements(...) / settlementPayouts(id) |
Hakediş kayıtları / ödeme detayları |
Sandbox
| Base URL | https://trinkpos-sandbox.pratikislem.com.tr |
| API Key | 00000000-0000-0000-0000-000000000000 |
| Secret | sandbox-secret-key-for-testing-purposes-only |
| Onay kartı | 4000 0000 0000 0001 |
| Red kartı | 4000 0000 0000 0002 |
| 3D OTP | 123456 |
make smoke # sandbox'a karşı uçtan uca duman testi
Geliştirme
make install # composer install make test # phpunit make lint # php -l
Lisans
MIT — bkz. LICENSE.
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-07-13