pratikislem/trinkpos-php 问题修复 & 功能扩展

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

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

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.

CI

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ılmazisApproved() 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
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-07-13

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固