Ödeme Sistemleri


    × Bunları biliyor muydunuz?
"URL::base() ve URL::site() kullanımları farklıdır. Özellikle varlık dosyalarına yol verilirken URL::base(), [a] etiketi ile köprü oluştururken URL::site() kullanılmalıdır."


ZN Framework Payment kütüphanesi bir çok banka ile uyumlu sanal pos uygulaması oluşturmanıza yardımcı olur. Türkiye'de yer alan çoğu banka ile uyumlu bu kütüphane yurt dışı ödemeleri içinde geliştirilmeye devam etmektedir.

 

 

# Kurulum


Tüm ZN dağıtımları için terminal kurulum komutu.

↓ composer require znframework/package-payment

 

 

# Yöntemler


Gateway::request(string $provider) : object
Gateway::response(string $provider) : object

 

 

# Request


Ödeme isteğinin hangi sağlayıcı üzerinden gerçekleştirileceği belirtilir.

string $provider Ödeme işleminin hangi sağlayıcı ile gerçekleştirileceği.
Desteklenen Sağlayıcılar Nestpay, PayPal
return object

Kullanımı 

$nestpay = Gateway::request('Nestpay');
Nestpay İstek Yöntemleri
clientId(string $id) : this Gerekli Mağaza numarası.
storeKey(string $key) : this Gerekli Üye iş yeri anahtarı.
card
(
    string $number, 
    string $month, 
    string $year, 
    string $cvc

) : this
Gerekli Kart bilgileri. Yıl ve ay parametreleri 2 haneli olmalıdır. Paket[6.0.2.3][2021-01-18] sürümü ile beraber kontrol ve çevrimi otomatik olarak yapılmaktadır. Yani yılın 2 veya 4 hane gelmesi ile ayın tek veya çift hane gelmesi problem teşkil etmemektedir.
cardType(scalar $type) : this Gerekli Kart türü interger veya string değer verilebilir.
Kullanılabilir Seçenekler visa[1], mastercard[2]
orderId(string $id = NULL) : this Ön tanımlı Sipariş numarası.
amount(string $amount) : this Gerekli Ödeme tutarı.
currency(scalar $currency = 'TRY') : this
Ön tanımlı Para birimi.
randomKey(string $key = time()) : this Ön tanımlı İşlem anahtarı.
returnUrl
(
    string $success, 
    string $fail = NULL

) : this
Gerekli Dönüş URL adresi.
companyName(string $name) : this Gerekli değil Şirket adı.
installment(scalar $count) : this Gereki değil Taksit bilgisi.
processType(string $type = 'Auth') : this Ön tanımlı İşlem tipi.
send(string $bank) : string Gerekli Ödemenin gerçekleştirileceği banka.
Desteklenen Bankalar isbank, akbank, finansbank, halkbank, anadolubank, ziraatbank, tebtest

Kullanımları

Dosya: Controllers/Pay.php
<?php namespace Project\Controllers;

use Gateway;

class Pay extends Controller
{
    public function main()
    {
        $nestpay = Gateway::request('Nestpay');

        echo $nestpay->clientId('190200000')
                     ->storeKey('123456')
                     ->cardType('visa')
                     ->card('4546711234567894', '12', '26', '000')
                     ->amount('10.00')
                     ->returnUrl('Pay/response', 'Pay/cancel')
                     ->send('test');
    }
}
Bilgi: Ödeme 3d_pay modeline göre yapılmaktadır.
PayPal İstek Yöntemleri
clientId(string $clientId) : this Gerekli Satıcının yani ödeme alıcısının e-posta adresi veya hesap kimliği.
amount(string $amount) : this Gerekli Fiyat bilgisi.
returnUrl
(
    string $notify,
    string $success,
    string $cancel = NULL
) : this
Gerekli Dönüş URL adresi
notify Ödeme işlemi doğrulama işlemlerinin gerçekleşeceği adres.
success Ödeme işleminin başarılı olması durumunda yönlendirileceği adres.
cancel Alıcının iptal işlemi gerçekleşmesi durumunda yönlendirileceği adres.
currency(string $currency = 'USD') : this
Ön tanımlı Ödemenin hangi para birimi ile gerçekleştirileceği. 
orderId(string $name) : this Gerekli değil Alınan ürünün adı. İster ürün adı istenirse sipariş numarası olarak kullanılabilir.
item
(
    string $name,
    string $number = NULL,
    string $amount = NULL,
    string $quantity = NULL
) : this
Gerekli değil Siparişe ait ürün veya ürünlerin bilgisi. Bu yöntemi birden fazla kez kullanarak farklı ürün bilgilerini de tanımlayabilirsiniz.
name(string $first, string $last)
Gerekli değil Alıcının adı soyadı bilgisi.
buyer(string $email, string $id) Gerekli değil Alıcının e-posta ve hesap kimliği.
seller(string $email, string $id) Gerekli değil Satıcının e-posta ve hesap kimliği.
locale(string $locale = 'US') Gerekli değil Ödeme işlemi için açılan sayfanın dil ayarı.
__call(string $key, string $value) Gerekli değil Listede olmayan PayPal değişkenlerini yöntem olarak kullanabilirsiniz. Örnek: ->item_name('Item Name')
send(string $type = 'paypal') Gerekli Eğer test ekranında çalışma yapılacaksa bu parametre test olarak ayarlanmalıdır.
Kullanılabilir Seçenekler paypal, test

Kullanımları

Dosya: Controllers/Pay.php
<?php namespace Project\Controllers;

use Gateway;

class Pay extends Controller
{
    public function main()
    {
        $paypal = Gateway::request('PayPal');

        echo $paypal->clientId('[email protected]')
                    ->amount('10.00')
                    ->returnUrl('Pay/notify', 'Pay/success', 'Pay/cancel')
                    ->send('test');
    }
}

 

 

# Response


Ödeme isteği gönderilen hangi sağlayıcı üzerinden sonuçların alınacağı belirtilir.

string $provider Ödeme işlemi sonucunun hangi sağlayıcı üzerinden alınacağıdır.
Desteklenen Sağlayıcılar Nestpay, PayPal
return object

Kullanımı 

$nestpay = Gateway::response('Nestpay');
Nestpay Yanıt Yöntemleri
isApproved() : bool İşlemin onaylanıp onaylanmadığını kontrol etmek için kullanılır.
error() : bool Ödeme işleminde herhangi bir hata oluşması durumunda hatanın içeriğini gösterir.
isValidHash() : bool Parametre şifrelemesinin doğru olup olmadığını kontrol eder.
is3D() : bool Ödeme isteğinin 3D ile yapılıp yapılmadığını kontrol eder.

Kullanımları

Dosya: Controllers/Pay.php
<?php namespace Project\Controllers;

use Gateway;

class Pay extends Controller
{
    public function response()
    {
        $nestpay = Gateway::response('Nestpay');

        if( $nestpay->isValidHash() && $nestpay->isApproved() )
        {
            echo 'İşlem başarılı.';
        }
        else
        {
            echo $nestpay->error();
        }
    }

    public function cancel()
    {
        # İptal sayfası
    }
}
PayPal Yanıt Yöntemleri
isApproved() : bool İşlemin onaylanıp onaylanmadığını kontrol etmek için kullanılır.
error() : bool Ödeme işleminde herhangi bir hata oluşması durumunda hatanın içeriğini gösterir.
isValidHash() : bool Parametre şifrelemesinin doğru olup olmadığını kontrol eder.

Kullanımları

Dosya: Controllers/Pay.php
<?php namespace Project\Controllers;

use Gateway;

class Pay extends Controller
{
    # Bu yöntem arkaplanda çalışır
    public function notify()
    {
        $paypal = Gateway::response('PayPal');

        if( $paypal->isValidHash() && $paypal->isApproved() )
        {
            # Gerçekleştirilecek işlemler
        }
    }

    public function success()
    {
        # Başarım sayfası
    }

    public function cancel()
    {
        # İptal sayfası
    }
}