Entegrasyonlar
PHP

PHP SDK

lunixi/php-sdk, Lunixi için çerçeveden bağımsız PHP istemcisidir. Ed25519 istek imzalama, token alışverişi ve önbelleği, idempotency anahtarı ve para açısından güvenli yeniden deneme SDK'dadır. Laravel ve WordPress/WooCommerce entegrasyonları da bu SDK'nın üzerine kuruludur.

Kurulum

composer require lunixi/php-sdk

PHP 7.4 ve üzeri ile ext-sodium, ext-curl, ext-json ve ext-hash gerekir.

Paket: Packagist (opens in a new tab) · Kaynak kod: GitHub (opens in a new tab)

Laravel kullanıyorsanız .env yapılandırması, facade, webhook rotası ve Blade bileşeni sunan Laravel paketiyle başlayın; paket bu SDK'yı kendisi kurar.

İstemciyi oluşturma

use Lunixi\Sdk\LunixiClient;
 
$lunixi = LunixiClient::create([
    'baseUrl'     => 'https://api-gateway.lunixi.com',
    'keyId'       => getenv('LUNIXI_KEY_ID'),
    'privateKey'  => getenv('LUNIXI_PRIVATE_KEY_PEM'),
    'environment' => 'LIVE',
]);
SeçenekZorunluVarsayılan
baseUrlevet—
keyIdevet—
privateKeyevet—
environmenthayırLIVE (yalnız LIVE ya da TEST)
timeouthayır30 (saniye)
maxRetrieshayır2

privateKey, panelin verdiği PKCS#8 PEM biçimindeki özel anahtardır.

Anahtar çifti

use Lunixi\Sdk\Auth\Ed25519Signer;
 
$keys = Ed25519Signer::generateKeyPair();
// $keys['publicKey']  → panele kaydedin
// $keys['privateKey'] → yalnız kendi sunucunuzda saklayın

İstemciler

ÜrünErişim
Ödemeler$lunixi->payments()
Ödeme linkleri$lunixi->paymentLinks()
Abonelikler$lunixi->subscriptions()
Fraud$lunixi->fraud()
KYC$lunixi->kyc()
Sanction$lunixi->sanction()
Marketplace$lunixi->marketplace()
Identity$lunixi->identity()
Cüzdan$lunixi->wallet()
Banka hesapları$lunixi->bankConnect()
Referans veriler (adres kodları)$lunixi->reference()
Sigorta$lunixi->insurance()
Webhook doğrulama$lunixi->webhooks()

Ödeme işlemleri

use Lunixi\Sdk\Payment\CreateIntentRequest;
 
$intent = $lunixi->payments()->createIntent(
    (new CreateIntentRequest(1000, 'TRY', 'WC-1042'))->withCallbackUrl('https://shop.example/lunixi/return'),
    'checkout:WC-1042'
);
$paymentId = $intent->paymentId();
$script = $intent->checkoutFormContent(); // ödeme sayfanızda Checkout Formu'nu açar
 
$lunixi->payments()->capture($paymentId, 500, 'capture:WC-1042');            // kısmi capture
$lunixi->payments()->refund($paymentId, 300, 'return', 'refund:WC-1042-1');
 
$payment = $lunixi->payments()->get($paymentId);
if ($payment->isCaptured()) {
    // ...
}

Tutarlar para biriminin en küçük biriminde tam sayıdır (1000 = 10,00 TRY). capture ve refund'da tutar verilmezse işlem tutarın tamamı için yapılır. Para hareket ettiren her çağrıda işlem başına sabit bir idempotency anahtarı gönderin; aynı işlemi yeniden denerken aynı anahtarı kullanın.

Webhook doğrulama

use Lunixi\Sdk\Exception\WebhookVerificationException;
use Lunixi\Sdk\Webhook\WebhookVerifier;
 
try {
    $event = (new WebhookVerifier())->verify($rawBody, $requestHeaders, $endpointSecret);
} catch (WebhookVerificationException $e) {
    http_response_code(400);
    return; // doğrulanmamış bir yük üzerinde işlem yapmayın
}
 
// teslimat en az bir kezdir: $event->id() ile tekrarları ayıklayın
if ($event->matches('payment.*')) {
    // siparişi $event->data() ile güncelleyin
}

$rawBody gövdenin ham hâlidir. Doğrulama fail-closed çalışır ve varsayılan olarak 300 saniyelik zaman damgası penceresini denetler. → Webhook'lar

Hatalar

SDK istisnaları Lunixi\Sdk\Exception altındadır: API yanıtları için ApiException, token alınamadığında AuthenticationException, yerel yapılandırma ve istek kuralları için ConfigurationException, webhook için WebhookVerificationException. ConfigurationException ağa çıkılmadan atılır; istek gönderilmemiştir.

Ödeme yöntemleri, parçalı ödeme, senetle ödeme, ödeme linkleri, cüzdan, banka hesapları, sigorta ve sanction çağrılarının ayrıntısı ilgili ürün sayfalarındadır; oradaki PHP örnekleri bu SDK'yı kullanır.

İlgili