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-sdkPHP 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çenek | Zorunlu | Varsayılan |
|---|---|---|
baseUrl | evet | — |
keyId | evet | — |
privateKey | evet | — |
environment | hayır | LIVE (yalnız LIVE ya da TEST) |
timeout | hayır | 30 (saniye) |
maxRetries | hayır | 2 |
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ün | Eriş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
- Laravel — bu SDK üzerine Laravel paketi
- Kimlik Doğrulama — anahtar, imza ve token ömrü
- Hata Yönetimi — yanıt zarfı ve hata kodları