PHPackages                             yakupeyisan/codeigniter4-tr-virtualpos - 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. yakupeyisan/codeigniter4-tr-virtualpos

ActiveLibrary[Payment Processing](/categories/payments)

yakupeyisan/codeigniter4-tr-virtualpos
======================================

Türkiye'deki tüm bankalarla çalışan CodeIgniter 4 Sanal Pos paketi

1.0.1(5mo ago)00MITPHPPHP ^8.1

Since Dec 1Pushed 1mo agoCompare

[ Source](https://github.com/yakupeyisan/codeigniter4-tr-virtualpos)[ Packagist](https://packagist.org/packages/yakupeyisan/codeigniter4-tr-virtualpos)[ RSS](/packages/yakupeyisan-codeigniter4-tr-virtualpos/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

CodeIgniter 4 Türkiye Sanal Pos Paketi
======================================

[](#codeigniter-4-türkiye-sanal-pos-paketi)

Türkiye'deki tüm bankalarla çalışan kapsamlı CodeIgniter 4 sanal pos paketi. NestPay, İyzico, PayTR, Paymes ve BKM Express gibi popüler ödeme sağlayıcılarını destekler.

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

[](#özellikler)

- ✅ **NestPay** - İş Bankası, Garanti, Akbank, Yapı Kredi
- ✅ **Get724** - NestPay (EST): İş Bankası, Akbank, Finansbank, Denizbank, Kuveytturk, Halkbank, Anadolubank, ING Bank, Citibank, Cardplus, Ziraat Bankası | Vakıfbank
- ✅ **İyzico** - Popüler ödeme gateway'i
- ✅ **PayTR** - Hızlı ve güvenli ödeme
- ✅ **Paymes** - Modern ödeme çözümü
- ✅ **BKM Express** - BKM altyapısı
- ✅ 3D Secure desteği
- ✅ Taksit seçenekleri
- ✅ İptal ve iade işlemleri
- ✅ .env dosyası ile kolay yapılandırma
- ✅ Test ve production modları

Kurulum
-------

[](#kurulum)

```
composer require yakupeyisan/codeigniter4-tr-virtualpos
```

Yapılandırma
------------

[](#yapılandırma)

### 1. Config Dosyasını Kopyalayın

[](#1-config-dosyasını-kopyalayın)

Config dosyasını CodeIgniter 4'ün config klasörüne kopyalayın:

```
cp vendor/yakupeyisan/codeigniter4-tr-virtualpos/src/Config/VirtualPos.php app/Config/VirtualPos.php
```

### 2. .env Dosyasına Ayarları Ekleyin

[](#2-env-dosyasına-ayarları-ekleyin)

`.env` dosyanıza aşağıdaki ayarları ekleyin:

```
# Sanal Pos Genel Ayarları
VIRTUALPOS_PROVIDER=nestpay
VIRTUALPOS_TEST_MODE=true
VIRTUALPOS_CURRENCY=TRY
VIRTUALPOS_LANGUAGE=tr
VIRTUALPOS_TIMEOUT=30

# Callback URL'leri
VIRTUALPOS_SUCCESS_URL=https://yoursite.com/payment/success
VIRTUALPOS_FAIL_URL=https://yoursite.com/payment/fail
VIRTUALPOS_CALLBACK_URL=https://yoursite.com/payment/callback

# NestPay Ayarları (İş Bankası, Garanti, Akbank, Yapı Kredi)
NESTPAY_CLIENT_ID=your_client_id
NESTPAY_STORE_KEY=your_store_key
NESTPAY_STORE_TYPE=3d
NESTPAY_BANK=isbank

# İyzico Ayarları
IYZICO_API_KEY=your_api_key
IYZICO_SECRET_KEY=your_secret_key

# PayTR Ayarları
PAYTR_MERCHANT_ID=your_merchant_id
PAYTR_MERCHANT_KEY=your_merchant_key
PAYTR_MERCHANT_SALT=your_merchant_salt

# Paymes Ayarları
PAYMES_API_KEY=your_api_key
PAYMES_SECRET_KEY=your_secret_key
PAYMES_MERCHANT_ID=your_merchant_id

# BKM Express Ayarları
BKM_MERCHANT_ID=your_merchant_id
BKM_API_KEY=your_api_key
BKM_SECRET_KEY=your_secret_key

# Get724 Ayarları
GET724_CLIENT_ID=your_client_id
GET724_STORE_KEY=your_store_key
GET724_STORE_TYPE=3d
GET724_BANK=isbank
# Banka seçenekleri: isbank, akbank, finansbank, denizbank, kuveytturk,
# halkbank, anadolubank, ingbank, citibank, cardplus, ziraat, vakifbank
```

Kullanım
--------

[](#kullanım)

### Temel Ödeme İşlemi

[](#temel-ödeme-i̇şlemi)

```
use Yakupeyisan\CodeIgniter4\VirtualPos\VirtualPos;
use Yakupeyisan\CodeIgniter4\VirtualPos\Models\PaymentRequest;

// VirtualPos instance oluştur (varsayılan hesap ile)
$virtualPos = new VirtualPos();

// Ödeme isteği oluştur
$request = new PaymentRequest(
    orderId: 'ORDER-' . time(),
    amount: 100.00,
    cardNumber: '5406670000000001',
    cardHolderName: 'John Doe',
    cardExpiryMonth: '12',
    cardExpiryYear: '25',
    cardCvv: '123'
);

// Müşteri bilgileri
$request->setCustomer(
    name: 'John Doe',
    email: 'john@example.com',
    phone: '5551234567'
);

// Fatura adresi
$request->setBillingAddress(
    address: 'Test Mahallesi, Test Sokak No:1',
    city: 'İstanbul',
    country: 'TR',
    zipCode: '34000'
);

// 3D Secure ödeme başlat
$response = $virtualPos->pay3D($request);

if ($response->status === 'pending') {
    // HTML içeriği göster (3D Secure formu)
    echo $response->htmlContent;
}
```

### Callback İşleme (3D Secure Sonrası)

[](#callback-i̇şleme-3d-secure-sonrası)

```
use Yakupeyisan\CodeIgniter4\VirtualPos\VirtualPos;

$virtualPos = new VirtualPos();

// Callback verilerini al
$callbackData = $this->request->getPost();

// Callback'i işle
$response = $virtualPos->handleCallback($callbackData);

if ($response->success) {
    // Ödeme başarılı
    echo "Ödeme başarılı! Transaction ID: " . $response->transactionId;
} else {
    // Ödeme başarısız
    echo "Ödeme başarısız: " . $response->errorMessage;
}
```

### Ödeme Durumu Sorgulama

[](#ödeme-durumu-sorgulama)

```
$response = $virtualPos->status('ORDER-1234567890');

if ($response->success) {
    echo "Ödeme durumu: " . $response->status;
}
```

### İptal İşlemi

[](#i̇ptal-i̇şlemi)

```
$response = $virtualPos->cancel('ORDER-1234567890');

if ($response->success) {
    echo "İptal işlemi başarılı";
}
```

### İade İşlemi

[](#i̇ade-i̇şlemi)

```
$response = $virtualPos->refund(
    orderId: 'ORDER-1234567890',
    amount: 50.00,
    transactionId: 'TXN-1234567890'
);

if ($response->success) {
    echo "İade işlemi başarılı";
}
```

### Taksit Seçeneklerini Getirme

[](#taksit-seçeneklerini-getirme)

```
$installments = $virtualPos->getInstallments(1000.00);

foreach ($installments as $installment) {
    echo "Taksit: " . $installment['installment'] . " - Faiz: " . $installment['interest'];
}
```

Provider'lar
------------

[](#providerlar)

### NestPay

[](#nestpay)

NestPay, İş Bankası, Garanti, Akbank ve Yapı Kredi için ortak altyapı sağlar.

```
VIRTUALPOS_PROVIDER=nestpay
NESTPAY_CLIENT_ID=your_client_id
NESTPAY_STORE_KEY=your_store_key
NESTPAY_STORE_TYPE=3d
NESTPAY_BANK=isbank
```

Desteklenen bankalar:

- `isbank` - İş Bankası
- `garanti` - Garanti BBVA
- `akbank` - Akbank
- `yapikredi` - Yapı Kredi

### İyzico

[](#i̇yzico)

```
VIRTUALPOS_PROVIDER=iyzico
IYZICO_API_KEY=your_api_key
IYZICO_SECRET_KEY=your_secret_key
```

### PayTR

[](#paytr)

```
VIRTUALPOS_PROVIDER=paytr
PAYTR_MERCHANT_ID=your_merchant_id
PAYTR_MERCHANT_KEY=your_merchant_key
PAYTR_MERCHANT_SALT=your_merchant_salt
```

### Paymes

[](#paymes)

```
VIRTUALPOS_PROVIDER=paymes
PAYMES_API_KEY=your_api_key
PAYMES_SECRET_KEY=your_secret_key
PAYMES_MERCHANT_ID=your_merchant_id
```

### BKM Express

[](#bkm-express)

```
VIRTUALPOS_PROVIDER=bkm
BKM_MERCHANT_ID=your_merchant_id
BKM_API_KEY=your_api_key
BKM_SECRET_KEY=your_secret_key
```

### Get724

[](#get724)

Get724, NestPay (EST) altyapısını kullanan birçok bankayı ve Vakıfbank'ı destekler.

```
VIRTUALPOS_PROVIDER=get724
GET724_CLIENT_ID=your_client_id
GET724_STORE_KEY=your_store_key
GET724_STORE_TYPE=3d
GET724_BANK=isbank
```

Desteklenen bankalar (NestPay EST):

- `isbank` - İş Bankası
- `akbank` - Akbank
- `finansbank` - QNB Finansbank
- `denizbank` - Denizbank
- `kuveytturk` - Kuveyt Türk
- `halkbank` - Halkbank
- `anadolubank` - Anadolubank
- `ingbank` - ING Bank
- `citibank` - Citibank
- `cardplus` - Cardplus
- `ziraat` - Ziraat Bankası

Desteklenen bankalar (Özel entegrasyon):

- `vakifbank` - Vakıfbank

Çoklu Hesap Desteği
-------------------

[](#çoklu-hesap-desteği)

Aynı banka için birden fazla hesap tanımlayabilir ve kullanabilirsiniz. Örneğin, Ziraat Bankası A hesabı ve Ziraat Bankası B hesabı.

### Config Dosyasında Hesap Tanımlama

[](#config-dosyasında-hesap-tanımlama)

```
// app/Config/VirtualPos.php
public array $get724 = [
    'defaultAccount' => 'ziraat_a',
    'accounts' => [
        'ziraat_a' => [
            'clientId' => 'ziraat_a_client_id',
            'storeKey' => 'ziraat_a_store_key',
            'storeType' => '3d',
            'bank' => 'ziraat',
        ],
        'ziraat_b' => [
            'clientId' => 'ziraat_b_client_id',
            'storeKey' => 'ziraat_b_store_key',
            'storeType' => '3d',
            'bank' => 'ziraat',
        ],
    ],
];
```

### Belirli Bir Hesap ile Ödeme

[](#belirli-bir-hesap-ile-ödeme)

```
// Ziraat A hesabı ile (varsayılan)
$virtualPos = new VirtualPos();
$response = $virtualPos->pay3D($request);

// Ziraat B hesabı ile
$virtualPos = new VirtualPos(null, 'ziraat_b');
$response = $virtualPos->pay3D($request);

// veya withAccount metodu ile
$virtualPos = new VirtualPos();
$virtualPosZiraatB = $virtualPos->withAccount('ziraat_b');
$response = $virtualPosZiraatB->pay3D($request);
```

Detaylı bilgi için [MULTI\_ACCOUNT.md](MULTI_ACCOUNT.md) dosyasına bakın.

Controller Örneği
-----------------

[](#controller-örneği)

```
