PHPackages                             w3/yapikredi-pos - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. w3/yapikredi-pos

ActiveLibrary[Payment Processing](/categories/payments)

w3/yapikredi-pos
================

Yapı Kredi Bank Virtual POS Integration for PHP

04PHP

Since Jun 18Pushed 10mo agoCompare

[ Source](https://github.com/erdikoroglu/YapiKrediPos)[ Packagist](https://packagist.org/packages/w3/yapikredi-pos)[ RSS](/packages/w3-yapikredi-pos/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Yapı Kredi Bankası Sanal POS PHP Entegrasyonu
=============================================

[](#yapı-kredi-bankası-sanal-pos-php-entegrasyonu)

Bu paket, Yapı Kredi Bankası'nın Sanal POS sistemi ile kolay kullanımlı bir entegrasyon sağlar ve [entegrasyon dokümantasyonunda](https://m.yapikredipos.com.tr/_assets/pdf/sanal-pos-entegrasyon-dokumanlari/POSNET_3D_Secure_Entegrasyonu_2.1.pdf) belirtildiği gibi 3D Secure 2.1 protokolünü uygular.

Kurulum
-------

[](#kurulum)

Paketi composer aracılığıyla kurabilirsiniz:

```
composer require w3/yapikredi-pos
```

Kullanım
--------

[](#kullanım)

### Temel Yapılandırma

[](#temel-yapılandırma)

```
use W3\YapiKrediPos\YapiKrediPos;

// Yapı Kredi POS istemcisini başlatın
$pos = new YapiKrediPos(
    'YOUR_MERCHANT_ID',    // Yapı Kredi Bankası tarafından sağlanan Üye İşyeri ID
    'YOUR_TERMINAL_ID',    // Yapı Kredi Bankası tarafından sağlanan Terminal ID
    'YOUR_POSNET_ID',      // Yapı Kredi Bankası tarafından sağlanan POS Net ID
    'YOUR_MERCHANT_KEY',   // Güvenli iletişim için üye işyeri anahtarı
    'test'                 // Ortam: 'test' veya 'production'
);
```

### Laravel Entegrasyonu

[](#laravel-entegrasyonu)

Bu paket Laravel entegrasyonu ile birlikte gelir. Paketi kurduktan sonra, yapılandırma dosyasını yayınlayın:

```
php artisan vendor:publish --provider="W3\YapiKrediPos\Laravel\YapiKrediPosServiceProvider" --tag="config"
```

Bu, Laravel uygulamanızda bir `config/yapikredi-pos.php` dosyası oluşturacaktır. `.env` dosyanızda aşağıdaki ortam değişkenlerini ayarlayarak paketi yapılandırabilirsiniz:

```
YAPIKREDI_MERCHANT_ID=your_merchant_id
YAPIKREDI_TERMINAL_ID=your_terminal_id
YAPIKREDI_POSNET_ID=your_posnet_id
YAPIKREDI_MERCHANT_KEY=your_merchant_key
YAPIKREDI_ENVIRONMENT=test

```

Daha sonra paketi Laravel uygulamanızda kullanabilirsiniz:

```
// Bağımlılık enjeksiyonu kullanarak
public function checkout(YapiKrediPos $pos)
{
    // $pos örneğini kullanın
}

// Facade kullanarak
use YapiKrediPos;

public function checkout()
{
    $response = YapiKrediPos::threeDSecureAuth()
        ->setOrderId(uniqid('order_'))
        // ... diğer parametreler
        ->send();
}

// Servis konteyneri kullanarak
$pos = app('yapikredi-pos');
```

### 3D Secure Ödeme Akışı

[](#3d-secure-ödeme-akışı)

#### Adım 1: 3D Secure Kimlik Doğrulamasını Başlatın

[](#adım-1-3d-secure-kimlik-doğrulamasını-başlatın)

```
// Bu işlem için benzersiz bir sipariş ID'si oluşturun
$orderId = uniqid('order_');

// 3D Secure kimlik doğrulamasını başlatın
$response = $pos->threeDSecureAuth()
    ->setOrderId($orderId)
    ->setCardNumber('4506349116608409')  // Test kart numarası
    ->setExpiryMonth('12')
    ->setExpiryYear('30')
    ->setCvv('000')
    ->setAmount(100.50)                  // TL cinsinden tutar
    ->setCurrency('TL')                  // Para birimi kodu
    ->setInstallment(0)                  // 0 tek ödeme için, veya taksit sayısı
    ->setReturnUrl('https://your-website.com/payment/callback')
    ->send();

// Kimlik doğrulama isteğinin başarılı olup olmadığını kontrol edin
if ($response->isSuccessful()) {
    // Sipariş ID'sini daha sonra kullanmak üzere oturumda veya veritabanında saklayın
    $_SESSION['order_id'] = $orderId;

    // 3D Secure yönlendirmesi için HTML formunu alın
    echo $response->getRedirectForm('Ödemeye Devam Et');

    // Veya formu manuel olarak oluşturabilirsiniz:
    // echo '';
    // echo '';
    // echo 'Ödemeye Devam Et';
    // echo '';
} else {
    // Kimlik doğrulama hatasını işleyin
    echo 'Hata: ' . $response->getErrorMessage();
}
```

#### Adım 2: 3D Secure Geri Dönüşünü İşleyin

[](#adım-2-3d-secure-geri-dönüşünü-i̇şleyin)

```
// Geri dönüş URL işleyicinizde:

// Bankanın yanıtından 3D Secure verilerini alın
$threeDSecureData = $_POST['data'] ?? '';

// Sipariş ID'sini oturumdan veya veritabanından alın
$orderId = $_SESSION['order_id'] ?? '';

// Ödemeyi tamamlayın
try {
    $response = $pos->threeDSecurePayment()
        ->setOrderId($orderId)
        ->setThreeDSecureData($threeDSecureData)
        ->setAmount(100.50)              // Kimlik doğrulamada kullanılan tutarla eşleşmelidir
        ->setCurrency('TL')              // Kimlik doğrulamada kullanılan para birimiyle eşleşmelidir
        ->setInstallment(0)              // Kimlik doğrulamada kullanılan taksit sayısıyla eşleşmelidir
        ->send();

    // Ödemenin başarılı olup olmadığını kontrol edin
    if ($response->isSuccessful()) {
        // Ödeme başarılı
        echo 'Ödeme başarılı!';
        echo 'İşlem ID: ' . $response->getTransactionId();
        echo 'Yetkilendirme Kodu: ' . $response->getAuthCode();
    } else {
        // Ödeme başarısız
        echo 'Ödeme başarısız: ' . $response->getErrorMessage();
    }
} catch (\W3\YapiKrediPos\Exception\PaymentException $e) {
    // Ödeme istisnasını işleyin
    echo 'Ödeme hatası: ' . $e->getMessage();
    echo 'Hata kodu: ' . $e->getErrorCode();
} catch (\W3\YapiKrediPos\Exception\ConnectionException $e) {
    // Bağlantı istisnasını işleyin
    echo 'Bağlantı hatası: ' . $e->getMessage();
} catch (\W3\YapiKrediPos\Exception\ValidationException $e) {
    // Doğrulama istisnasını işleyin
    echo 'Doğrulama hatası: ' . $e->getMessage();
}
```

### Hata Yönetimi

[](#hata-yönetimi)

Paket, farklı hata senaryoları için farklı türde istisnalar fırlatır:

- `ValidationException`: İstek parametreleri geçersiz olduğunda fırlatılır
- `ConnectionException`: Yapı Kredi POS API'sine bağlanırken bir hata olduğunda fırlatılır
- `PaymentException`: Ödeme reddedildiğinde veya başarısız olduğunda fırlatılır
- `YapiKrediPosException`: Diğer tüm hatalar için temel istisna sınıfı

Özellikler
----------

[](#özellikler)

- Yapı Kredi Bankası'nın POSNET sistemi ile 3D Secure 2.1 entegrasyonu
- Hem 3D hem de 3D olmayan işlemler için destek
- Kolay yapılandırma ve kurulum
- Kapsamlı hata yönetimi
- Laravel ve diğer PHP çerçeveleriyle uyumlu

Gereksinimler
-------------

[](#gereksinimler)

- PHP 7.4 veya daha yüksek
- ext-curl
- ext-json
- ext-simplexml

Lisans
------

[](#lisans)

MIT Lisansı (MIT). Daha fazla bilgi için lütfen [Lisans Dosyasına](LICENSE.md) bakın.

Katkıda Bulunanlar
------------------

[](#katkıda-bulunanlar)

- [W3](mailto:info@w3.net.tr)

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity14

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/3550edcf348a703c1ccec0952e3b9ca29e64382b224d0a5d4d154d7967f16f11?d=identicon)[erdikoroglu](/maintainers/erdikoroglu)

---

Top Contributors

[![erdikoroglu](https://avatars.githubusercontent.com/u/49500198?v=4)](https://github.com/erdikoroglu "erdikoroglu (1 commits)")

### Embed Badge

![Health badge](/badges/w3-yapikredi-pos/health.svg)

```
[![Health](https://phpackages.com/badges/w3-yapikredi-pos/health.svg)](https://phpackages.com/packages/w3-yapikredi-pos)
```

###  Alternatives

[omnipay/paypal

PayPal gateway for Omnipay payment processing library

3156.8M53](/packages/omnipay-paypal)[eduardokum/laravel-boleto

Biblioteca com boletos para o laravel

626351.9k2](/packages/eduardokum-laravel-boleto)[tbbc/money-bundle

This is a Symfony bundle that integrates moneyphp/money library (Fowler pattern): https://github.com/moneyphp/money.

1961.9M](/packages/tbbc-money-bundle)[2checkout/2checkout-php

2Checkout PHP Library

83740.3k2](/packages/2checkout-2checkout-php)[smhg/sepa-qr-data

Generate QR code data for SEPA payments

61717.2k5](/packages/smhg-sepa-qr-data)[omnipay/dummy

Dummy driver for the Omnipay payment processing library

271.2M33](/packages/omnipay-dummy)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
